33# Vibetype
44# https://github.com/maevsi/vibetype/
55---
6+ x-shared :
7+ zammad-service :
8+ &zammad-service # You can access the helpdesk at [zammad.app.localhost](https://zammad.app.localhost/).
9+ environment : &zammad-environment
10+ ELASTICSEARCH_HOST : elasticsearch
11+ ELASTICSEARCH_USER : elastic
12+ MEMCACHE_SERVERS : memcached:11211
13+ POSTGRESQL_DB_CREATE : " false"
14+ POSTGRESQL_DB : zammad
15+ POSTGRESQL_HOST : postgres
16+ REDIS_URL : redis://redis:6379
17+ image : ghcr.io/zammad/zammad:6.5.2-90
18+ secrets :
19+ - source : elasticsearch_password
20+ target : /run/environment-variables/ELASTICSEARCH_PASS
21+ - source : postgres_role_service_zammad_username
22+ target : /run/environment-variables/POSTGRESQL_USER
23+ - source : postgres_role_service_zammad_password
24+ target : /run/environment-variables/POSTGRESQL_PASS
25+ volumes :
26+ - zammad_data:/opt/zammad/storage
27+ - ../production/configurations/zammad/docker-entrypoint.sh:/opt/zammad/bin/docker-entrypoint:ro
628secrets :
29+ elasticsearch_password :
30+ # The search engine's password for the default user.
31+ file : ./secrets/elasticsearch/password.secret
732 grafana_admin_email :
833 # The observation dashboard's admin email.
934 file : ./secrets/grafana/admin_email.secret
@@ -166,6 +191,19 @@ services:
166191 - postgres_user
167192 volumes :
168193 - ../production/configurations/debezium-postgres-connector/entrypoint.sh:/entrypoint.sh:ro
194+ elasticsearch :
195+ # You cannot access the search engine via a web interface.
196+ environment :
197+ discovery.type : single-node
198+ ELASTIC_PASSWORD_FILE : /run/secrets/elasticsearch_password
199+ image : elasticsearch:8.19.11
200+ secrets :
201+ - source : elasticsearch_password
202+ uid : " 1000"
203+ gid : " 1000"
204+ mode : 0o400
205+ volumes :
206+ - elasticsearch_data:/usr/share/elasticsearch/data
169207 geoip :
170208 # You cannot access the ip geolocator via a web interface.
171209 image : ghcr.io/observabilitystack/geoip-api:2026-02
@@ -220,6 +258,10 @@ services:
220258 volumes :
221259 - ../production/backups/postgres/:/backups/
222260 - ./configurations/jobber/.jobber:/home/jobberuser/.jobber:ro
261+ memcached :
262+ # You cannot access the caching system via a web interface.
263+ image : memcached:1.6.40-alpine
264+ # command: memcached -m 256M
223265 minio : # DARGSTACK-REMOVE
224266 # You can access the s3 console at [minio.app.localhost](https://minio.app.localhost/).
225267 # You can access the s3 api service at [s3.app.localhost](https://s3.app.localhost/) if you want to access via cli from outside the stack.
@@ -404,6 +446,11 @@ services:
404446 - postgres_user
405447 volumes :
406448 - reccoom_postgres_data:/var/lib/postgresql/
449+ redis :
450+ # You cannot access the caching system via a web interface.
451+ image : redis:7.4.7-alpine
452+ volumes :
453+ - redis_data:/data
407454 redpanda :
408455 # You can access the event streaming platform's ui as described under `redpanda-console`.
409456 command :
@@ -573,6 +620,48 @@ services:
573620 - ../../../vibetype/:/srv/app/ # DARGSTACK-REMOVE
574621 - vibetype_data:/srv/app/node_modules # DARGSTACK-REMOVE
575622 - ./configurations/postgraphile/jwtRS256.key.pub:/run/environment-variables/NUXT_PUBLIC_VIO_AUTH_JWT_PUBLIC_KEY:ro
623+ zammad-backup :
624+ # You cannot access the helpdesk backup service via a web interface.
625+ << : *zammad-service
626+ command : ["zammad-backup"]
627+ user : 0:0
628+ volumes :
629+ - zammad-backup_data:/var/tmp/zammad
630+ - zammad_data:/opt/zammad/storage:ro
631+ - ../production/configurations/zammad/docker-entrypoint.sh:/docker-entrypoint.sh:ro
632+ zammad-init :
633+ # You cannot access the helpdesk initialization service via a web interface.
634+ << : *zammad-service
635+ command : ["zammad-init"]
636+ # depends_on:
637+ # - zammad-postgresql
638+ user : 0:0
639+ zammad-nginx :
640+ # You can access the helpdesk at [zammad.app.localhost](https://zammad.app.localhost/).
641+ << : *zammad-service
642+ command : ["zammad-nginx"]
643+ deploy :
644+ labels :
645+ - traefik.enable=true
646+ - traefik.http.routers.zammad.entryPoints=web
647+ - traefik.http.routers.zammad.middlewares=redirectscheme # DARGSTACK-REMOVE
648+ - traefik.http.routers.zammad.rule=Host(`zammad.${STACK_DOMAIN}`)
649+ - traefik.http.routers.zammad_secure.entryPoints=web-secure
650+ - traefik.http.routers.zammad_secure.rule=Host(`zammad.${STACK_DOMAIN}`)
651+ - traefik.http.routers.zammad_secure.tls.options=mintls13@file # DARGSTACK-REMOVE
652+ - traefik.http.services.zammad.loadbalancer.server.port=8080
653+ zammad-railsserver :
654+ # You cannot access the helpdesk application server directly.
655+ << : *zammad-service
656+ command : ["zammad-railsserver"]
657+ zammad-scheduler :
658+ # You cannot access the helpdesk scheduler directly.
659+ << : *zammad-service
660+ command : ["zammad-scheduler"]
661+ zammad-websocket :
662+ # You cannot access the helpdesk websocket server directly.
663+ << : *zammad-service
664+ command : ["zammad-websocket"]
576665version : " 3.7"
577666volumes :
578667 debezium_kafka_configuration :
@@ -584,14 +673,17 @@ volumes:
584673 debezium_kafka_logs :
585674 # The change data capture's logs.
586675 {}
676+ elasticsearch_data :
677+ # The search engine's data.
678+ {}
587679 grafana_data :
588680 # The observation dashboard's data.
589681 {}
590682 minio_data :
591683 # The s3 server's data.
592684 {}
593685 pnpm_data :
594- # The node package manager's data.
686+ # The node package manager's data.
595687 {}
596688 portainer_data :
597689 # The container manager's data.
@@ -605,9 +697,18 @@ volumes:
605697 reccoom_postgres_data :
606698 # The recommendation database's data.
607699 {}
700+ redis_data :
701+ # The caching system's data.
702+ {}
608703 redpanda_data :
609704 # The message queue's data.
610705 {}
611706 vibetype_data :
612707 # The frontend's data.
613708 {}
709+ zammad-backup_data :
710+ # The helpdesk backup's data.
711+ {}
712+ zammad_data :
713+ # The helpdesk's data.
714+ {}
0 commit comments