From 60b82f6fb4bd2aaf81332c133ccb1acc02706e32 Mon Sep 17 00:00:00 2001 From: Darren Clarke Date: Mon, 10 Jul 2023 10:13:06 +0000 Subject: [PATCH] Zammad docker and Link structure updates --- .../{ => (login)}/login/_components/Login.tsx | 2 +- apps/link/app/{ => (login)}/login/page.tsx | 0 .../app/{ => (main)}/_components/Home.tsx | 2 +- .../_components/InternalLayout.tsx | 0 .../app/{ => (main)}/_components/Sidebar.tsx | 0 .../_components/StyledDataGrid.tsx | 0 .../_components/ZammadWrapper.tsx | 0 .../_components/LabelStudioWrapper.tsx | 0 .../{ => (main)}/admin/label-studio/page.tsx | 0 .../[...path]/_components/MetamigoWrapper.tsx | 0 .../admin/metamigo/[...path]/page.tsx | 0 .../app/{ => (main)}/admin/zammad/page.tsx | 2 +- .../api/auth/[...nextauth]/route.ts | 0 .../app/{ => (main)}/api/v1/users/route.ts | 0 apps/link/app/{ => (main)}/knowledge/page.tsx | 2 +- apps/link/app/(main)/layout.tsx | 15 +++++ .../[view]/_components/LeafcutterWrapper.tsx | 0 .../{ => (main)}/leafcutter/[view]/page.tsx | 0 .../link/app/{ => (main)}/leafcutter/page.tsx | 0 .../[overview]/_components/TicketList.tsx | 0 .../[overview]/_components/ZammadOverview.tsx | 0 .../overview/[overview]/error.tsx | 0 .../{ => (main)}/overview/[overview]/page.tsx | 0 apps/link/app/{ => (main)}/page.tsx | 2 +- apps/link/app/{ => (main)}/profile/page.tsx | 2 +- .../app/(main)/setup/_components/Setup.tsx | 14 +++++ apps/link/app/(main)/setup/page.tsx | 10 ++++ .../_components/ArticleCreateDialog.tsx | 0 .../[id]/@detail/_components/TicketDetail.tsx | 0 .../tickets/[id]/@detail/page.tsx | 0 .../[id]/@edit/_components/TicketEdit.tsx | 0 .../{ => (main)}/tickets/[id]/@edit/page.tsx | 0 .../app/{ => (main)}/tickets/[id]/error.tsx | 0 .../app/{ => (main)}/tickets/[id]/layout.tsx | 0 .../{ => (main)}/tickets/[id]/not-found.tsx | 0 .../app/{ => (main)}/tickets/[id]/notpage.tsx | 0 apps/link/app/layout.tsx | 5 +- docker-compose.zammad.yml | 58 +++++++++++++------ docker/zammad/Dockerfile | 16 ++--- 39 files changed, 94 insertions(+), 36 deletions(-) rename apps/link/app/{ => (login)}/login/_components/Login.tsx (97%) rename apps/link/app/{ => (login)}/login/page.tsx (100%) rename apps/link/app/{ => (main)}/_components/Home.tsx (65%) rename apps/link/app/{ => (main)}/_components/InternalLayout.tsx (100%) rename apps/link/app/{ => (main)}/_components/Sidebar.tsx (100%) rename apps/link/app/{ => (main)}/_components/StyledDataGrid.tsx (100%) rename apps/link/app/{ => (main)}/_components/ZammadWrapper.tsx (100%) rename apps/link/app/{ => (main)}/admin/label-studio/_components/LabelStudioWrapper.tsx (100%) rename apps/link/app/{ => (main)}/admin/label-studio/page.tsx (100%) rename apps/link/app/{ => (main)}/admin/metamigo/[...path]/_components/MetamigoWrapper.tsx (100%) rename apps/link/app/{ => (main)}/admin/metamigo/[...path]/page.tsx (100%) rename apps/link/app/{ => (main)}/admin/zammad/page.tsx (72%) rename apps/link/app/{ => (main)}/api/auth/[...nextauth]/route.ts (100%) rename apps/link/app/{ => (main)}/api/v1/users/route.ts (100%) rename apps/link/app/{ => (main)}/knowledge/page.tsx (73%) create mode 100644 apps/link/app/(main)/layout.tsx rename apps/link/app/{ => (main)}/leafcutter/[view]/_components/LeafcutterWrapper.tsx (100%) rename apps/link/app/{ => (main)}/leafcutter/[view]/page.tsx (100%) rename apps/link/app/{ => (main)}/leafcutter/page.tsx (100%) rename apps/link/app/{ => (main)}/overview/[overview]/_components/TicketList.tsx (100%) rename apps/link/app/{ => (main)}/overview/[overview]/_components/ZammadOverview.tsx (100%) rename apps/link/app/{ => (main)}/overview/[overview]/error.tsx (100%) rename apps/link/app/{ => (main)}/overview/[overview]/page.tsx (100%) rename apps/link/app/{ => (main)}/page.tsx (75%) rename apps/link/app/{ => (main)}/profile/page.tsx (72%) create mode 100644 apps/link/app/(main)/setup/_components/Setup.tsx create mode 100644 apps/link/app/(main)/setup/page.tsx rename apps/link/app/{ => (main)}/tickets/[id]/@detail/_components/ArticleCreateDialog.tsx (100%) rename apps/link/app/{ => (main)}/tickets/[id]/@detail/_components/TicketDetail.tsx (100%) rename apps/link/app/{ => (main)}/tickets/[id]/@detail/page.tsx (100%) rename apps/link/app/{ => (main)}/tickets/[id]/@edit/_components/TicketEdit.tsx (100%) rename apps/link/app/{ => (main)}/tickets/[id]/@edit/page.tsx (100%) rename apps/link/app/{ => (main)}/tickets/[id]/error.tsx (100%) rename apps/link/app/{ => (main)}/tickets/[id]/layout.tsx (100%) rename apps/link/app/{ => (main)}/tickets/[id]/not-found.tsx (100%) rename apps/link/app/{ => (main)}/tickets/[id]/notpage.tsx (100%) diff --git a/apps/link/app/login/_components/Login.tsx b/apps/link/app/(login)/login/_components/Login.tsx similarity index 97% rename from apps/link/app/login/_components/Login.tsx rename to apps/link/app/(login)/login/_components/Login.tsx index a69d876..bacd448 100644 --- a/apps/link/app/login/_components/Login.tsx +++ b/apps/link/app/(login)/login/_components/Login.tsx @@ -47,7 +47,7 @@ export const Login: FC = ({ session }) => { sx={buttonStyles} onClick={() => signIn("google", { - callbackUrl: `${origin}/proxy/zammad/auth/sso`, + callbackUrl: `${origin}/setup`, }) } > diff --git a/apps/link/app/login/page.tsx b/apps/link/app/(login)/login/page.tsx similarity index 100% rename from apps/link/app/login/page.tsx rename to apps/link/app/(login)/login/page.tsx diff --git a/apps/link/app/_components/Home.tsx b/apps/link/app/(main)/_components/Home.tsx similarity index 65% rename from apps/link/app/_components/Home.tsx rename to apps/link/app/(main)/_components/Home.tsx index 5b52c0b..082069e 100644 --- a/apps/link/app/_components/Home.tsx +++ b/apps/link/app/(main)/_components/Home.tsx @@ -1,6 +1,6 @@ "use client"; import { FC } from "react"; -import { ZammadWrapper } from "@/app/_components/ZammadWrapper"; +import { ZammadWrapper } from "./ZammadWrapper"; export const Home: FC = () => ; diff --git a/apps/link/app/_components/InternalLayout.tsx b/apps/link/app/(main)/_components/InternalLayout.tsx similarity index 100% rename from apps/link/app/_components/InternalLayout.tsx rename to apps/link/app/(main)/_components/InternalLayout.tsx diff --git a/apps/link/app/_components/Sidebar.tsx b/apps/link/app/(main)/_components/Sidebar.tsx similarity index 100% rename from apps/link/app/_components/Sidebar.tsx rename to apps/link/app/(main)/_components/Sidebar.tsx diff --git a/apps/link/app/_components/StyledDataGrid.tsx b/apps/link/app/(main)/_components/StyledDataGrid.tsx similarity index 100% rename from apps/link/app/_components/StyledDataGrid.tsx rename to apps/link/app/(main)/_components/StyledDataGrid.tsx diff --git a/apps/link/app/_components/ZammadWrapper.tsx b/apps/link/app/(main)/_components/ZammadWrapper.tsx similarity index 100% rename from apps/link/app/_components/ZammadWrapper.tsx rename to apps/link/app/(main)/_components/ZammadWrapper.tsx diff --git a/apps/link/app/admin/label-studio/_components/LabelStudioWrapper.tsx b/apps/link/app/(main)/admin/label-studio/_components/LabelStudioWrapper.tsx similarity index 100% rename from apps/link/app/admin/label-studio/_components/LabelStudioWrapper.tsx rename to apps/link/app/(main)/admin/label-studio/_components/LabelStudioWrapper.tsx diff --git a/apps/link/app/admin/label-studio/page.tsx b/apps/link/app/(main)/admin/label-studio/page.tsx similarity index 100% rename from apps/link/app/admin/label-studio/page.tsx rename to apps/link/app/(main)/admin/label-studio/page.tsx diff --git a/apps/link/app/admin/metamigo/[...path]/_components/MetamigoWrapper.tsx b/apps/link/app/(main)/admin/metamigo/[...path]/_components/MetamigoWrapper.tsx similarity index 100% rename from apps/link/app/admin/metamigo/[...path]/_components/MetamigoWrapper.tsx rename to apps/link/app/(main)/admin/metamigo/[...path]/_components/MetamigoWrapper.tsx diff --git a/apps/link/app/admin/metamigo/[...path]/page.tsx b/apps/link/app/(main)/admin/metamigo/[...path]/page.tsx similarity index 100% rename from apps/link/app/admin/metamigo/[...path]/page.tsx rename to apps/link/app/(main)/admin/metamigo/[...path]/page.tsx diff --git a/apps/link/app/admin/zammad/page.tsx b/apps/link/app/(main)/admin/zammad/page.tsx similarity index 72% rename from apps/link/app/admin/zammad/page.tsx rename to apps/link/app/(main)/admin/zammad/page.tsx index f502363..45a3d5f 100644 --- a/apps/link/app/admin/zammad/page.tsx +++ b/apps/link/app/(main)/admin/zammad/page.tsx @@ -1,5 +1,5 @@ import { Metadata } from "next"; -import { ZammadWrapper } from "@/app/_components/ZammadWrapper"; +import { ZammadWrapper } from "@/app/(main)/_components/ZammadWrapper"; export const metadata: Metadata = { title: "Zammad", diff --git a/apps/link/app/api/auth/[...nextauth]/route.ts b/apps/link/app/(main)/api/auth/[...nextauth]/route.ts similarity index 100% rename from apps/link/app/api/auth/[...nextauth]/route.ts rename to apps/link/app/(main)/api/auth/[...nextauth]/route.ts diff --git a/apps/link/app/api/v1/users/route.ts b/apps/link/app/(main)/api/v1/users/route.ts similarity index 100% rename from apps/link/app/api/v1/users/route.ts rename to apps/link/app/(main)/api/v1/users/route.ts diff --git a/apps/link/app/knowledge/page.tsx b/apps/link/app/(main)/knowledge/page.tsx similarity index 73% rename from apps/link/app/knowledge/page.tsx rename to apps/link/app/(main)/knowledge/page.tsx index 84ff162..fcb636d 100644 --- a/apps/link/app/knowledge/page.tsx +++ b/apps/link/app/(main)/knowledge/page.tsx @@ -1,5 +1,5 @@ import { Metadata } from "next"; -import { ZammadWrapper } from "@/app/_components/ZammadWrapper"; +import { ZammadWrapper } from "@/app/(main)/_components/ZammadWrapper"; export const metadata: Metadata = { title: "Knowledge Base", diff --git a/apps/link/app/(main)/layout.tsx b/apps/link/app/(main)/layout.tsx new file mode 100644 index 0000000..78df056 --- /dev/null +++ b/apps/link/app/(main)/layout.tsx @@ -0,0 +1,15 @@ +import { ReactNode } from "react"; +import { Metadata } from "next"; +import { InternalLayout } from "./_components/InternalLayout"; + +export const metadata: Metadata = { + title: "Link", +}; + +type LayoutProps = { + children: ReactNode; +}; + +export default function Layout({ children }: LayoutProps) { + return {children}; +} diff --git a/apps/link/app/leafcutter/[view]/_components/LeafcutterWrapper.tsx b/apps/link/app/(main)/leafcutter/[view]/_components/LeafcutterWrapper.tsx similarity index 100% rename from apps/link/app/leafcutter/[view]/_components/LeafcutterWrapper.tsx rename to apps/link/app/(main)/leafcutter/[view]/_components/LeafcutterWrapper.tsx diff --git a/apps/link/app/leafcutter/[view]/page.tsx b/apps/link/app/(main)/leafcutter/[view]/page.tsx similarity index 100% rename from apps/link/app/leafcutter/[view]/page.tsx rename to apps/link/app/(main)/leafcutter/[view]/page.tsx diff --git a/apps/link/app/leafcutter/page.tsx b/apps/link/app/(main)/leafcutter/page.tsx similarity index 100% rename from apps/link/app/leafcutter/page.tsx rename to apps/link/app/(main)/leafcutter/page.tsx diff --git a/apps/link/app/overview/[overview]/_components/TicketList.tsx b/apps/link/app/(main)/overview/[overview]/_components/TicketList.tsx similarity index 100% rename from apps/link/app/overview/[overview]/_components/TicketList.tsx rename to apps/link/app/(main)/overview/[overview]/_components/TicketList.tsx diff --git a/apps/link/app/overview/[overview]/_components/ZammadOverview.tsx b/apps/link/app/(main)/overview/[overview]/_components/ZammadOverview.tsx similarity index 100% rename from apps/link/app/overview/[overview]/_components/ZammadOverview.tsx rename to apps/link/app/(main)/overview/[overview]/_components/ZammadOverview.tsx diff --git a/apps/link/app/overview/[overview]/error.tsx b/apps/link/app/(main)/overview/[overview]/error.tsx similarity index 100% rename from apps/link/app/overview/[overview]/error.tsx rename to apps/link/app/(main)/overview/[overview]/error.tsx diff --git a/apps/link/app/overview/[overview]/page.tsx b/apps/link/app/(main)/overview/[overview]/page.tsx similarity index 100% rename from apps/link/app/overview/[overview]/page.tsx rename to apps/link/app/(main)/overview/[overview]/page.tsx diff --git a/apps/link/app/page.tsx b/apps/link/app/(main)/page.tsx similarity index 75% rename from apps/link/app/page.tsx rename to apps/link/app/(main)/page.tsx index 4c692bb..4611ed2 100644 --- a/apps/link/app/page.tsx +++ b/apps/link/app/(main)/page.tsx @@ -1,5 +1,5 @@ import { Metadata } from "next"; -import { Home } from "@/app/_components/Home"; +import { Home } from "./_components/Home"; export const metadata: Metadata = { title: "Link", diff --git a/apps/link/app/profile/page.tsx b/apps/link/app/(main)/profile/page.tsx similarity index 72% rename from apps/link/app/profile/page.tsx rename to apps/link/app/(main)/profile/page.tsx index 72d08e2..8fab8c5 100644 --- a/apps/link/app/profile/page.tsx +++ b/apps/link/app/(main)/profile/page.tsx @@ -1,5 +1,5 @@ import { Metadata } from "next"; -import { ZammadWrapper } from "@/app/_components/ZammadWrapper"; +import { ZammadWrapper } from "@/app/(main)/_components/ZammadWrapper"; export const metadata: Metadata = { title: "Profile", diff --git a/apps/link/app/(main)/setup/_components/Setup.tsx b/apps/link/app/(main)/setup/_components/Setup.tsx new file mode 100644 index 0000000..f3f011e --- /dev/null +++ b/apps/link/app/(main)/setup/_components/Setup.tsx @@ -0,0 +1,14 @@ +"use client"; + +import { FC, useLayoutEffect } from "react"; +import { useRouter } from "next/navigation"; +import { ZammadWrapper } from "app/(main)/_components/ZammadWrapper"; + +export const Setup: FC = () => { + const router = useRouter(); + useLayoutEffect(() => { + setTimeout(() => router.push("/"), 4000); + }, [router]); + + return ; +}; diff --git a/apps/link/app/(main)/setup/page.tsx b/apps/link/app/(main)/setup/page.tsx new file mode 100644 index 0000000..b3d2636 --- /dev/null +++ b/apps/link/app/(main)/setup/page.tsx @@ -0,0 +1,10 @@ +import { Metadata } from "next"; +import { Setup } from "./_components/Setup"; + +export const metadata: Metadata = { + title: "Link", +}; + +export default function Page() { + return ; +} diff --git a/apps/link/app/tickets/[id]/@detail/_components/ArticleCreateDialog.tsx b/apps/link/app/(main)/tickets/[id]/@detail/_components/ArticleCreateDialog.tsx similarity index 100% rename from apps/link/app/tickets/[id]/@detail/_components/ArticleCreateDialog.tsx rename to apps/link/app/(main)/tickets/[id]/@detail/_components/ArticleCreateDialog.tsx diff --git a/apps/link/app/tickets/[id]/@detail/_components/TicketDetail.tsx b/apps/link/app/(main)/tickets/[id]/@detail/_components/TicketDetail.tsx similarity index 100% rename from apps/link/app/tickets/[id]/@detail/_components/TicketDetail.tsx rename to apps/link/app/(main)/tickets/[id]/@detail/_components/TicketDetail.tsx diff --git a/apps/link/app/tickets/[id]/@detail/page.tsx b/apps/link/app/(main)/tickets/[id]/@detail/page.tsx similarity index 100% rename from apps/link/app/tickets/[id]/@detail/page.tsx rename to apps/link/app/(main)/tickets/[id]/@detail/page.tsx diff --git a/apps/link/app/tickets/[id]/@edit/_components/TicketEdit.tsx b/apps/link/app/(main)/tickets/[id]/@edit/_components/TicketEdit.tsx similarity index 100% rename from apps/link/app/tickets/[id]/@edit/_components/TicketEdit.tsx rename to apps/link/app/(main)/tickets/[id]/@edit/_components/TicketEdit.tsx diff --git a/apps/link/app/tickets/[id]/@edit/page.tsx b/apps/link/app/(main)/tickets/[id]/@edit/page.tsx similarity index 100% rename from apps/link/app/tickets/[id]/@edit/page.tsx rename to apps/link/app/(main)/tickets/[id]/@edit/page.tsx diff --git a/apps/link/app/tickets/[id]/error.tsx b/apps/link/app/(main)/tickets/[id]/error.tsx similarity index 100% rename from apps/link/app/tickets/[id]/error.tsx rename to apps/link/app/(main)/tickets/[id]/error.tsx diff --git a/apps/link/app/tickets/[id]/layout.tsx b/apps/link/app/(main)/tickets/[id]/layout.tsx similarity index 100% rename from apps/link/app/tickets/[id]/layout.tsx rename to apps/link/app/(main)/tickets/[id]/layout.tsx diff --git a/apps/link/app/tickets/[id]/not-found.tsx b/apps/link/app/(main)/tickets/[id]/not-found.tsx similarity index 100% rename from apps/link/app/tickets/[id]/not-found.tsx rename to apps/link/app/(main)/tickets/[id]/not-found.tsx diff --git a/apps/link/app/tickets/[id]/notpage.tsx b/apps/link/app/(main)/tickets/[id]/notpage.tsx similarity index 100% rename from apps/link/app/tickets/[id]/notpage.tsx rename to apps/link/app/(main)/tickets/[id]/notpage.tsx diff --git a/apps/link/app/layout.tsx b/apps/link/app/layout.tsx index 205c044..3ec699b 100644 --- a/apps/link/app/layout.tsx +++ b/apps/link/app/layout.tsx @@ -9,7 +9,6 @@ import "@fontsource/playfair-display/900.css"; // import getConfig from "next/config"; // import { LicenseInfo } from "@mui/x-data-grid-pro"; import { MultiProvider } from "./_components/MultiProvider"; -import { InternalLayout } from "./_components/InternalLayout"; export const metadata: Metadata = { title: "Link", @@ -26,9 +25,7 @@ export default function Layout({ children }: LayoutProps) { return ( - - {children} - + {children} ); diff --git a/docker-compose.zammad.yml b/docker-compose.zammad.yml index eb59d15..72062b5 100644 --- a/docker-compose.zammad.yml +++ b/docker-compose.zammad.yml @@ -1,12 +1,18 @@ version: "3.4" -x-global-vars: &common-global-variables +x-global-vars: + &common-global-variables TZ: Etc/UTC -x-zammad-vars: &common-zammad-variables +x-zammad-vars: + &common-zammad-variables MEMCACHE_SERVERS: "zammad-memcached:11211" REDIS_URL: "redis://zammad-redis:6379" - ENABLE_EXPERIMENTAL_MOBILE_FRONTEND: "true" + POSTGRESQL_HOST: "zammad-postgresql" + POSTGRESQL_PORT: "5432" + POSTGRESQL_USER: "zammad" + POSTGRESQL_PASS: ${ZAMMAD_DATABASE_PASSWORD} + POSTGRESQL_DB: "zammad_production" services: zammad-elasticsearch: @@ -25,18 +31,20 @@ services: zammad-init: platform: linux/x86_64 container_name: zammad-init - command: ["zammad-init"] + command: [ "zammad-init" ] depends_on: - zammad-postgresql environment: - <<: [*common-zammad-variables, *common-global-variables] + <<: [ *common-zammad-variables, *common-global-variables ] POSTGRESQL_USER: zammad POSTGRESQL_PASS: ${ZAMMAD_DATABASE_PASSWORD} build: ./docker/zammad image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION} restart: on-failure + user: 0:0 volumes: - - zammad-data:/opt/zammad + - zammad-config-nginx:/etc/nginx/sites-enabled + - zammad-var:/opt/zammad/var zammad-memcached: container_name: zammad-memcached @@ -50,7 +58,7 @@ services: zammad-nginx: platform: linux/x86_64 container_name: zammad-nginx - command: ["zammad-nginx"] + command: [ "zammad-nginx" ] expose: - "8080" ports: @@ -66,12 +74,13 @@ services: VIRTUAL_HOST: ${ZAMMAD_VIRTUAL_HOST} VIRTUAL_PORT: 8080 volumes: - - zammad-data:/opt/zammad + - zammad-config-nginx:/etc/nginx/sites-enabled:ro + - zammad-var:/opt/zammad/var:ro zammad-postgresql: container_name: zammad-postgresql environment: - <<: *common-global-variables + <<: [ *common-global-variables, *common-zammad-variables ] POSTGRES_USER: zammad POSTGRES_PASSWORD: ${ZAMMAD_DATABASE_PASSWORD} build: ./docker/postgresql @@ -85,18 +94,19 @@ services: zammad-railsserver: platform: linux/x86_64 container_name: zammad-railsserver - command: ["zammad-railsserver"] + command: [ "zammad-railsserver" ] depends_on: - zammad-memcached - zammad-postgresql - zammad-redis environment: - <<: [*common-global-variables, *common-zammad-variables] + <<: [ *common-global-variables, *common-zammad-variables ] build: ./docker/zammad image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION} restart: ${RESTART} volumes: - - zammad-data:/opt/zammad + - zammad-var:/opt/zammad/var + - zammad-storage:/opt/zammad/storage zammad-redis: container_name: zammad-redis @@ -105,43 +115,53 @@ services: restart: ${RESTART} environment: <<: *common-global-variables + volumes: + - redis-data:/data zammad-scheduler: platform: linux/x86_64 container_name: zammad-scheduler - command: ["zammad-scheduler"] + command: [ "zammad-scheduler" ] depends_on: - zammad-memcached - zammad-railsserver - zammad-redis environment: - <<: [*common-global-variables, *common-zammad-variables] + <<: [ *common-global-variables, *common-zammad-variables ] build: ./docker/zammad image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION} restart: ${RESTART} volumes: - - zammad-data:/opt/zammad + - zammad-var:/opt/zammad/var + - zammad-storage:/opt/zammad/storage zammad-websocket: platform: linux/x86_64 container_name: zammad-websocket - command: ["zammad-websocket"] + command: [ "zammad-websocket" ] depends_on: - zammad-memcached - zammad-railsserver - zammad-redis environment: - <<: [*common-global-variables, *common-zammad-variables] + <<: [ *common-global-variables, *common-zammad-variables ] build: ./docker/zammad image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION} restart: ${RESTART} volumes: - - zammad-data:/opt/zammad + - zammad-var:/opt/zammad/var + - zammad-storage:/opt/zammad/storage volumes: elasticsearch-data: driver: local postgresql-data: driver: local - zammad-data: + redis-data: + driver: local + zammad-config-nginx: + driver: local + zammad-var: + driver: local + zammad-storage: driver: local diff --git a/docker/zammad/Dockerfile b/docker/zammad/Dockerfile index 155ebd7..fd76170 100644 --- a/docker/zammad/Dockerfile +++ b/docker/zammad/Dockerfile @@ -1,8 +1,9 @@ -FROM zammad/zammad-docker-compose:6.0.0 AS builder +ARG ZAMMAD_VERSION=6.0.0-32 +FROM zammad/zammad-docker-compose:${ZAMMAD_VERSION} AS builder RUN mkdir -p /opt/zammad/contrib/link/addons -COPY addons ${ZAMMAD_TMP_DIR}/contrib/link/addons -COPY setup.rb ${ZAMMAD_TMP_DIR}/contrib/link/setup.rb -RUN sed -i '/proxy_set_header X-Forwarded-User "";/d' ${ZAMMAD_TMP_DIR}/contrib/nginx/zammad.conf; +COPY addons ${ZAMMAD_DIR}/contrib/link/addons +COPY setup.rb ${ZAMMAD_DIR}/contrib/link/setup.rb +RUN sed -i '/proxy_set_header X-Forwarded-User "";/d' ${ZAMMAD_DIR}/contrib/nginx/zammad.conf; USER root RUN set -ex; \ @@ -17,7 +18,7 @@ RUN git clone -b "${SEQUOIA_GIT_TAG}" --single-branch --depth 1 "${SEQUOIA_PROJE WORKDIR ${SEQUOIA_DIR} RUN export PATH=~/.cargo/bin:$PATH && cargo build -p sequoia-openpgp-ffi; -WORKDIR ${ZAMMAD_TMP_DIR} +WORKDIR ${ZAMMAD_DIR} RUN echo "gem 'ruby_openpgp', git: 'https://github.com/throneless-tech/ruby_openpgp', branch: 'signing-and-userids'" >> Gemfile.local RUN echo "gem 'rails-observers'" >> Gemfile.local RUN bundle install --without test development mysql @@ -31,13 +32,14 @@ RUN sed -i '/^[[:space:]]*# create install ready file/ i\ FROM node:16.18.0-slim as node -FROM zammad/zammad-docker-compose:6.0.0 +FROM zammad/zammad-docker-compose:${ZAMMAD_VERSION} USER ${ZAMMAD_USER} ENV SEQUOIA_DIR=/usr/lib/sequoia ENV LD_LIBRARY_PATH=${SEQUOIA_DIR}/target/debug +ENV ZAMMAD_READY_FILE=${ZAMMAD_DIR}/var/zammad.ready COPY --from=node /opt /opt COPY --from=node /usr/local/bin /usr/local/bin -COPY --from=builder ${ZAMMAD_TMP_DIR} ${ZAMMAD_TMP_DIR} +COPY --from=builder ${ZAMMAD_DIR} ${ZAMMAD_DIR} COPY --from=builder ${SEQUOIA_DIR} ${SEQUOIA_DIR} COPY --from=builder /usr/local/bundle /usr/local/bundle COPY --from=builder /docker-entrypoint.sh /docker-entrypoint.sh