Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 64 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@ This project is deployed in accordance to the [DargStack template](https://githu

1. [secrets](#secrets)

2. [services](#services)
2. [x-shared](#x-shared)

3. [volumes](#volumes)
3. [services](#services)

4. [volumes](#volumes)


## secrets
Expand Down Expand Up @@ -159,6 +161,14 @@ This project is deployed in accordance to the [DargStack template](https://githu
The captcha provider's application key.


## x-shared


- ### `zammad-service`

shared environment, image, volumes


## services


Expand Down Expand Up @@ -262,6 +272,42 @@ This project is deployed in accordance to the [DargStack template](https://githu

You can access the main project's frontend at [localhost](https://localhost/).

- ### `zammad-backup`

Zammad backup.

- ### `zammad-elasticsearch`

Zammad Elastisearch.

- ### `zammad-init`

Zammad initialization.

- ### `zammad-memcached`

Zammad memcached.

- ### `zammad-nginx`

You can access the Zammad frontend at [zammad.localhost](https://zammad.localhost/).

- ### `zammad-railsserver`

Zammad railsserver.

- ### `zammad-redis`

Zammad redis.

- ### `zammad-scheduler`

Zammad scheduler.

- ### `zammad-websocket`

Zammad websocket.


## volumes

Expand Down Expand Up @@ -306,4 +352,20 @@ This project is deployed in accordance to the [DargStack template](https://githu

The message queue's data.

- ### `zammad-backup`

Zammad's backup data

- ### `zammad-elasticsearch-data`

Zammad's elastisearch data

- ### `zammad-redis-data`

Zammad's redis data

- ### `zammad-storage`

Zammad's storage data


22 changes: 12 additions & 10 deletions src/development/certificates/mkcert.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,15 @@ done

create "root"
create "traefik" \
`# adminer` "adminer.localhost" \
`# grafana` "grafana.localhost" \
`# minio` "minio.localhost" \
`# portainer` "portainer.localhost" \
`# postgraphile` "postgraphile.localhost" \
`# prometheus` "prometheus.localhost" \
`# redpanda` "redpanda.localhost" \
`# traefik` "traefik.localhost" \
`# tusd` "tusd.localhost" \
`# vibetype` "localhost" "www.localhost" "127.0.0.1" "0.0.0.0"
Comment on lines -32 to -41
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to delete the comments

"adminer.localhost" \
"grafana.localhost" \
"minio.localhost" \
"portainer.localhost" \
"postgraphile.localhost" \
"prometheus.localhost" \
"redpanda.localhost" \
"traefik.localhost" \
"tusd.localhost" \
"zammad.localhost" \
"localhost" "www.localhost" "127.0.0.1" "0.0.0.0"

157 changes: 154 additions & 3 deletions src/development/stack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
# Vibetype
# https://github.com/maevsi/vibetype/
---

#version: "3.7"

secrets:
grafana_admin_email:
# The observation dashboard's admin email.
Expand Down Expand Up @@ -100,6 +103,69 @@ secrets:
vibetype_turnstile-key:
# The captcha provider's application key.
file: ./secrets/vibetype/turnstile-key.secret

x-shared:
zammad-service: &zammad-service
# shared environment, image, volumes
environment: &zammad-environment
MEMCACHE_SERVERS: ${MEMCACHE_SERVERS:-zammad-memcached:11211}
POSTGRESQL_DB: zammad
POSTGRESQL_HOST: postgres
POSTGRESQL_USER: zammad
POSTGRESQL_PASS: zammad
POSTGRESQL_PORT: 5432
POSTGRESQL_OPTIONS: ${POSTGRESQL_OPTIONS:-?pool=50}
POSTGRESQL_DB_CREATE: "false"
REDIS_URL: ${REDIS_URL:-redis://zammad-redis:6379}
S3_URL:
# Backup settings
BACKUP_DIR: "${BACKUP_DIR:-/var/tmp/zammad}"
BACKUP_TIME: "${BACKUP_TIME:-03:00}"
HOLD_DAYS: "${HOLD_DAYS:-10}"
TZ: "${TZ:-Europe/Berlin}"
# Allow passing in these variables via .env:
AUTOWIZARD_JSON:
AUTOWIZARD_RELATIVE_PATH:
ELASTICSEARCH_ENABLED:
ELASTICSEARCH_SCHEMA:
ELASTICSEARCH_HOST:
ELASTICSEARCH_PORT:
ELASTICSEARCH_USER: ${ELASTICSEARCH_USER:-elastic}
ELASTICSEARCH_PASS: ${ELASTICSEARCH_PASS:-zammad}
ELASTICSEARCH_NAMESPACE:
ELASTICSEARCH_REINDEX:
NGINX_PORT: 8080
NGINX_CLIENT_MAX_BODY_SIZE:
NGINX_SERVER_NAME: zammad.${STACK_DOMAIN}
NGINX_SERVER_SCHEME: https
RAILS_TRUSTED_PROXIES:
ZAMMAD_HTTP_TYPE:
ZAMMAD_FQDN:
ZAMMAD_WEB_CONCURRENCY:
ZAMMAD_PROCESS_SESSIONS_JOBS_WORKERS:
ZAMMAD_PROCESS_SCHEDULED_JOBS_WORKERS:
ZAMMAD_PROCESS_DELAYED_JOBS_WORKERS:
ZAMMAD_RAILSSERVER_HOST: zammad-railsserver
ZAMMAD_WEBSOCKET_HOST: zammad-websocket
# ZAMMAD_SESSION_JOBS_CONCURRENT is deprecated, please use ZAMMAD_PROCESS_SESSIONS_JOBS_WORKERS instead.
ZAMMAD_SESSION_JOBS_CONCURRENT:
# Variables used by ngingx-proxy container for reverse proxy creations
# for docs refer to https://github.com/nginx-proxy/nginx-proxy
VIRTUAL_HOST:
VIRTUAL_PORT:
# Variables used by acme-companion for retrieval of LetsEncrypt certificate
# for docs refer to https://github.com/nginx-proxy/acme-companion
LETSENCRYPT_HOST:
LETSENCRYPT_EMAIL:

image: ${IMAGE_REPO:-ghcr.io/zammad/zammad}:${VERSION:-6.5.0-89}
volumes:
- zammad-storage:/opt/zammad/storage
depends_on:
- zammad-memcached
- postgresql
- zammad-redis

services:
adminer:
# You can access the database's frontend at [adminer.localhost](https://adminer.localhost/).
Expand Down Expand Up @@ -325,7 +391,7 @@ services:
POSTGRES_DB_FILE: /run/secrets/postgres_db
POSTGRES_PASSWORD_FILE: /run/secrets/postgres_password
POSTGRES_USER_FILE: /run/secrets/postgres_user
image: postgis/postgis:17-3.5-alpine
image: imresamu/postgis:17-3.5.2-alpine3.21
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be reverted

ports: #DARGSTACK-REMOVE
- 5432:5432 #DARGSTACK-REMOVE
secrets:
Expand Down Expand Up @@ -374,6 +440,7 @@ services:
- postgres_user
volumes:
- ../../../reccoom/:/srv/app/

redpanda:
# You can access the event streaming platform's ui as described under `redpanda-console`.
command:
Expand Down Expand Up @@ -553,8 +620,80 @@ services:
- ${PNPM_STORE_DIR}:/srv/.pnpm-store/ #DARGSTACK-REMOVE
- ./certificates/:/srv/certificates/ #DARGSTACK-REMOVE
- ../../../vibetype/:/srv/app/ #DARGSTACK-REMOVE
- ./configurations/postgraphile/jwtRS256.key.pub:/run/environment-variables/NUXT_PUBLIC_VIO_AUTH_JWT_PUBLIC_KEY:ro
version: "3.7"
- ./configurations/postgraphile/jwtRS256.key.pub:/run/environment-variables/NUXT_PUB1LIC_VIO_AUTH_JWT_PUBLIC_KEY:ro

zammad-backup:
# Zammad backup.
<<: *zammad-service
command: ["zammad-backup"]
volumes:
- zammad-backup:/var/tmp/zammad
- zammad-storage:/opt/zammad/storage:ro
user: 0:0

zammad-elasticsearch:
# Zammad Elastisearch.
image: bitnami/elasticsearch:${ELASTICSEARCH_VERSION:-8.18.0}
volumes:
- zammad-elasticsearch-data:/bitnami/elasticsearch/data
environment:
# Enable authorization without HTTPS. For external access with
# SSL termination, use solutions like nginx-proxy-manager.
ELASTICSEARCH_ENABLE_SECURITY: 'true'
ELASTICSEARCH_SKIP_TRANSPORT_TLS: 'true'
ELASTICSEARCH_ENABLE_REST_TLS: 'false'
# ELASTICSEARCH_USER is hardcoded to 'elastic' in the container.
ELASTICSEARCH_PASSWORD: ${ELASTICSEARCH_PASS:-zammad}

zammad-init:
# Zammad initialization.
<<: *zammad-service
command: ["zammad-init"]
depends_on:
- postgresql
user: 0:0

zammad-memcached:
# Zammad memcached.
command: memcached -m 256M
image: memcached:${MEMCACHE_VERSION:-1.6.38-alpine}

zammad-nginx:
# You can access the Zammad frontend at [zammad.localhost](https://zammad.localhost/).
<<: *zammad-service
deploy:
labels:
- traefik.enable=true
- traefik.http.routers.zammad.entryPoints=web
- traefik.http.routers.zammad.middlewares=redirectscheme #DARGSTACK-REMOVE
- traefik.http.routers.zammad.rule=Host(`zammad.${STACK_DOMAIN}`)
- traefik.http.routers.zammad_secure.entryPoints=web-secure
- traefik.http.routers.zammad_secure.rule=Host(`zammad.${STACK_DOMAIN}`)
- traefik.http.routers.zammad_secure.tls.options=mintls13@file #DARGSTACK-REMOVE
- traefik.http.services.zammad.loadbalancer.server.port=8080
command: ["zammad-nginx"]

zammad-railsserver:
# Zammad railsserver.
<<: *zammad-service
command: ["zammad-railsserver"]

zammad-redis:
# Zammad redis.
image: redis:${REDIS_VERSION:-7.4.3-alpine}
volumes:
- zammad-redis-data:/data

zammad-scheduler:
# Zammad scheduler.
<<: *zammad-service
command: ["zammad-scheduler"]

zammad-websocket:
# Zammad websocket.
<<: *zammad-service
command: ["zammad-websocket"]

volumes:
debezium_kafka_configuration:
# The change data capture's configuration.
Expand Down Expand Up @@ -583,3 +722,15 @@ volumes:
redpanda_data:
# The message queue's data.
{}
zammad-elasticsearch-data:
# Zammad's elastisearch data
{}
zammad-redis-data:
# Zammad's redis data
{}
zammad-backup:
# Zammad's backup data
{}
zammad-storage:
# Zammad's storage data
{}