Zammad docker and Link structure updates
This commit is contained in:
parent
2a37297ae1
commit
60b82f6fb4
39 changed files with 94 additions and 36 deletions
|
|
@ -47,7 +47,7 @@ export const Login: FC<LoginProps> = ({ session }) => {
|
||||||
sx={buttonStyles}
|
sx={buttonStyles}
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
signIn("google", {
|
signIn("google", {
|
||||||
callbackUrl: `${origin}/proxy/zammad/auth/sso`,
|
callbackUrl: `${origin}/setup`,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { FC } from "react";
|
import { FC } from "react";
|
||||||
import { ZammadWrapper } from "@/app/_components/ZammadWrapper";
|
import { ZammadWrapper } from "./ZammadWrapper";
|
||||||
|
|
||||||
export const Home: FC = () => <ZammadWrapper path="/#dashboard" hideSidebar />;
|
export const Home: FC = () => <ZammadWrapper path="/#dashboard" hideSidebar />;
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { Metadata } from "next";
|
import { Metadata } from "next";
|
||||||
import { ZammadWrapper } from "@/app/_components/ZammadWrapper";
|
import { ZammadWrapper } from "@/app/(main)/_components/ZammadWrapper";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Zammad",
|
title: "Zammad",
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { Metadata } from "next";
|
import { Metadata } from "next";
|
||||||
import { ZammadWrapper } from "@/app/_components/ZammadWrapper";
|
import { ZammadWrapper } from "@/app/(main)/_components/ZammadWrapper";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Knowledge Base",
|
title: "Knowledge Base",
|
||||||
15
apps/link/app/(main)/layout.tsx
Normal file
15
apps/link/app/(main)/layout.tsx
Normal file
|
|
@ -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 <InternalLayout>{children}</InternalLayout>;
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { Metadata } from "next";
|
import { Metadata } from "next";
|
||||||
import { Home } from "@/app/_components/Home";
|
import { Home } from "./_components/Home";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Link",
|
title: "Link",
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { Metadata } from "next";
|
import { Metadata } from "next";
|
||||||
import { ZammadWrapper } from "@/app/_components/ZammadWrapper";
|
import { ZammadWrapper } from "@/app/(main)/_components/ZammadWrapper";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Profile",
|
title: "Profile",
|
||||||
14
apps/link/app/(main)/setup/_components/Setup.tsx
Normal file
14
apps/link/app/(main)/setup/_components/Setup.tsx
Normal file
|
|
@ -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 <ZammadWrapper path="/auth/sso" hideSidebar={false} />;
|
||||||
|
};
|
||||||
10
apps/link/app/(main)/setup/page.tsx
Normal file
10
apps/link/app/(main)/setup/page.tsx
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
import { Metadata } from "next";
|
||||||
|
import { Setup } from "./_components/Setup";
|
||||||
|
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: "Link",
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function Page() {
|
||||||
|
return <Setup />;
|
||||||
|
}
|
||||||
|
|
@ -9,7 +9,6 @@ import "@fontsource/playfair-display/900.css";
|
||||||
// import getConfig from "next/config";
|
// import getConfig from "next/config";
|
||||||
// import { LicenseInfo } from "@mui/x-data-grid-pro";
|
// import { LicenseInfo } from "@mui/x-data-grid-pro";
|
||||||
import { MultiProvider } from "./_components/MultiProvider";
|
import { MultiProvider } from "./_components/MultiProvider";
|
||||||
import { InternalLayout } from "./_components/InternalLayout";
|
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Link",
|
title: "Link",
|
||||||
|
|
@ -26,9 +25,7 @@ export default function Layout({ children }: LayoutProps) {
|
||||||
return (
|
return (
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<body>
|
<body>
|
||||||
<MultiProvider>
|
<MultiProvider>{children}</MultiProvider>
|
||||||
<InternalLayout>{children}</InternalLayout>
|
|
||||||
</MultiProvider>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,18 @@
|
||||||
version: "3.4"
|
version: "3.4"
|
||||||
|
|
||||||
x-global-vars: &common-global-variables
|
x-global-vars:
|
||||||
|
&common-global-variables
|
||||||
TZ: Etc/UTC
|
TZ: Etc/UTC
|
||||||
|
|
||||||
x-zammad-vars: &common-zammad-variables
|
x-zammad-vars:
|
||||||
|
&common-zammad-variables
|
||||||
MEMCACHE_SERVERS: "zammad-memcached:11211"
|
MEMCACHE_SERVERS: "zammad-memcached:11211"
|
||||||
REDIS_URL: "redis://zammad-redis:6379"
|
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:
|
services:
|
||||||
zammad-elasticsearch:
|
zammad-elasticsearch:
|
||||||
|
|
@ -25,18 +31,20 @@ services:
|
||||||
zammad-init:
|
zammad-init:
|
||||||
platform: linux/x86_64
|
platform: linux/x86_64
|
||||||
container_name: zammad-init
|
container_name: zammad-init
|
||||||
command: ["zammad-init"]
|
command: [ "zammad-init" ]
|
||||||
depends_on:
|
depends_on:
|
||||||
- zammad-postgresql
|
- zammad-postgresql
|
||||||
environment:
|
environment:
|
||||||
<<: [*common-zammad-variables, *common-global-variables]
|
<<: [ *common-zammad-variables, *common-global-variables ]
|
||||||
POSTGRESQL_USER: zammad
|
POSTGRESQL_USER: zammad
|
||||||
POSTGRESQL_PASS: ${ZAMMAD_DATABASE_PASSWORD}
|
POSTGRESQL_PASS: ${ZAMMAD_DATABASE_PASSWORD}
|
||||||
build: ./docker/zammad
|
build: ./docker/zammad
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
|
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
|
||||||
restart: on-failure
|
restart: on-failure
|
||||||
|
user: 0:0
|
||||||
volumes:
|
volumes:
|
||||||
- zammad-data:/opt/zammad
|
- zammad-config-nginx:/etc/nginx/sites-enabled
|
||||||
|
- zammad-var:/opt/zammad/var
|
||||||
|
|
||||||
zammad-memcached:
|
zammad-memcached:
|
||||||
container_name: zammad-memcached
|
container_name: zammad-memcached
|
||||||
|
|
@ -50,7 +58,7 @@ services:
|
||||||
zammad-nginx:
|
zammad-nginx:
|
||||||
platform: linux/x86_64
|
platform: linux/x86_64
|
||||||
container_name: zammad-nginx
|
container_name: zammad-nginx
|
||||||
command: ["zammad-nginx"]
|
command: [ "zammad-nginx" ]
|
||||||
expose:
|
expose:
|
||||||
- "8080"
|
- "8080"
|
||||||
ports:
|
ports:
|
||||||
|
|
@ -66,12 +74,13 @@ services:
|
||||||
VIRTUAL_HOST: ${ZAMMAD_VIRTUAL_HOST}
|
VIRTUAL_HOST: ${ZAMMAD_VIRTUAL_HOST}
|
||||||
VIRTUAL_PORT: 8080
|
VIRTUAL_PORT: 8080
|
||||||
volumes:
|
volumes:
|
||||||
- zammad-data:/opt/zammad
|
- zammad-config-nginx:/etc/nginx/sites-enabled:ro
|
||||||
|
- zammad-var:/opt/zammad/var:ro
|
||||||
|
|
||||||
zammad-postgresql:
|
zammad-postgresql:
|
||||||
container_name: zammad-postgresql
|
container_name: zammad-postgresql
|
||||||
environment:
|
environment:
|
||||||
<<: *common-global-variables
|
<<: [ *common-global-variables, *common-zammad-variables ]
|
||||||
POSTGRES_USER: zammad
|
POSTGRES_USER: zammad
|
||||||
POSTGRES_PASSWORD: ${ZAMMAD_DATABASE_PASSWORD}
|
POSTGRES_PASSWORD: ${ZAMMAD_DATABASE_PASSWORD}
|
||||||
build: ./docker/postgresql
|
build: ./docker/postgresql
|
||||||
|
|
@ -85,18 +94,19 @@ services:
|
||||||
zammad-railsserver:
|
zammad-railsserver:
|
||||||
platform: linux/x86_64
|
platform: linux/x86_64
|
||||||
container_name: zammad-railsserver
|
container_name: zammad-railsserver
|
||||||
command: ["zammad-railsserver"]
|
command: [ "zammad-railsserver" ]
|
||||||
depends_on:
|
depends_on:
|
||||||
- zammad-memcached
|
- zammad-memcached
|
||||||
- zammad-postgresql
|
- zammad-postgresql
|
||||||
- zammad-redis
|
- zammad-redis
|
||||||
environment:
|
environment:
|
||||||
<<: [*common-global-variables, *common-zammad-variables]
|
<<: [ *common-global-variables, *common-zammad-variables ]
|
||||||
build: ./docker/zammad
|
build: ./docker/zammad
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
|
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
volumes:
|
volumes:
|
||||||
- zammad-data:/opt/zammad
|
- zammad-var:/opt/zammad/var
|
||||||
|
- zammad-storage:/opt/zammad/storage
|
||||||
|
|
||||||
zammad-redis:
|
zammad-redis:
|
||||||
container_name: zammad-redis
|
container_name: zammad-redis
|
||||||
|
|
@ -105,43 +115,53 @@ services:
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
environment:
|
environment:
|
||||||
<<: *common-global-variables
|
<<: *common-global-variables
|
||||||
|
volumes:
|
||||||
|
- redis-data:/data
|
||||||
|
|
||||||
zammad-scheduler:
|
zammad-scheduler:
|
||||||
platform: linux/x86_64
|
platform: linux/x86_64
|
||||||
container_name: zammad-scheduler
|
container_name: zammad-scheduler
|
||||||
command: ["zammad-scheduler"]
|
command: [ "zammad-scheduler" ]
|
||||||
depends_on:
|
depends_on:
|
||||||
- zammad-memcached
|
- zammad-memcached
|
||||||
- zammad-railsserver
|
- zammad-railsserver
|
||||||
- zammad-redis
|
- zammad-redis
|
||||||
environment:
|
environment:
|
||||||
<<: [*common-global-variables, *common-zammad-variables]
|
<<: [ *common-global-variables, *common-zammad-variables ]
|
||||||
build: ./docker/zammad
|
build: ./docker/zammad
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
|
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
volumes:
|
volumes:
|
||||||
- zammad-data:/opt/zammad
|
- zammad-var:/opt/zammad/var
|
||||||
|
- zammad-storage:/opt/zammad/storage
|
||||||
|
|
||||||
zammad-websocket:
|
zammad-websocket:
|
||||||
platform: linux/x86_64
|
platform: linux/x86_64
|
||||||
container_name: zammad-websocket
|
container_name: zammad-websocket
|
||||||
command: ["zammad-websocket"]
|
command: [ "zammad-websocket" ]
|
||||||
depends_on:
|
depends_on:
|
||||||
- zammad-memcached
|
- zammad-memcached
|
||||||
- zammad-railsserver
|
- zammad-railsserver
|
||||||
- zammad-redis
|
- zammad-redis
|
||||||
environment:
|
environment:
|
||||||
<<: [*common-global-variables, *common-zammad-variables]
|
<<: [ *common-global-variables, *common-zammad-variables ]
|
||||||
build: ./docker/zammad
|
build: ./docker/zammad
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
|
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
volumes:
|
volumes:
|
||||||
- zammad-data:/opt/zammad
|
- zammad-var:/opt/zammad/var
|
||||||
|
- zammad-storage:/opt/zammad/storage
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
elasticsearch-data:
|
elasticsearch-data:
|
||||||
driver: local
|
driver: local
|
||||||
postgresql-data:
|
postgresql-data:
|
||||||
driver: local
|
driver: local
|
||||||
zammad-data:
|
redis-data:
|
||||||
|
driver: local
|
||||||
|
zammad-config-nginx:
|
||||||
|
driver: local
|
||||||
|
zammad-var:
|
||||||
|
driver: local
|
||||||
|
zammad-storage:
|
||||||
driver: local
|
driver: local
|
||||||
|
|
|
||||||
|
|
@ -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
|
RUN mkdir -p /opt/zammad/contrib/link/addons
|
||||||
COPY addons ${ZAMMAD_TMP_DIR}/contrib/link/addons
|
COPY addons ${ZAMMAD_DIR}/contrib/link/addons
|
||||||
COPY setup.rb ${ZAMMAD_TMP_DIR}/contrib/link/setup.rb
|
COPY setup.rb ${ZAMMAD_DIR}/contrib/link/setup.rb
|
||||||
RUN sed -i '/proxy_set_header X-Forwarded-User "";/d' ${ZAMMAD_TMP_DIR}/contrib/nginx/zammad.conf;
|
RUN sed -i '/proxy_set_header X-Forwarded-User "";/d' ${ZAMMAD_DIR}/contrib/nginx/zammad.conf;
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
|
|
@ -17,7 +18,7 @@ RUN git clone -b "${SEQUOIA_GIT_TAG}" --single-branch --depth 1 "${SEQUOIA_PROJE
|
||||||
WORKDIR ${SEQUOIA_DIR}
|
WORKDIR ${SEQUOIA_DIR}
|
||||||
RUN export PATH=~/.cargo/bin:$PATH && cargo build -p sequoia-openpgp-ffi;
|
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 'ruby_openpgp', git: 'https://github.com/throneless-tech/ruby_openpgp', branch: 'signing-and-userids'" >> Gemfile.local
|
||||||
RUN echo "gem 'rails-observers'" >> Gemfile.local
|
RUN echo "gem 'rails-observers'" >> Gemfile.local
|
||||||
RUN bundle install --without test development mysql
|
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 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}
|
USER ${ZAMMAD_USER}
|
||||||
ENV SEQUOIA_DIR=/usr/lib/sequoia
|
ENV SEQUOIA_DIR=/usr/lib/sequoia
|
||||||
ENV LD_LIBRARY_PATH=${SEQUOIA_DIR}/target/debug
|
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 /opt /opt
|
||||||
COPY --from=node /usr/local/bin /usr/local/bin
|
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 ${SEQUOIA_DIR} ${SEQUOIA_DIR}
|
||||||
COPY --from=builder /usr/local/bundle /usr/local/bundle
|
COPY --from=builder /usr/local/bundle /usr/local/bundle
|
||||||
COPY --from=builder /docker-entrypoint.sh /docker-entrypoint.sh
|
COPY --from=builder /docker-entrypoint.sh /docker-entrypoint.sh
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue