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_SCHEMA : https
12+ ELASTICSEARCH_USER : elastic
13+ MEMCACHE_SERVERS : memcached:11211
14+ POSTGRESQL_DB_CREATE : " false"
15+ POSTGRESQL_DB : zammad
16+ POSTGRESQL_HOST : postgres
17+ POSTGRESQL_OPTIONS : ?pool=50
18+ REDIS_URL : redis://redis:6379
19+ image : ghcr.io/zammad/zammad:6.5.2-90
20+ secrets :
21+ - source : elasticsearch_password
22+ target : /run/environment-variables/ELASTICSEARCH_PASS
23+ - source : postgres_role_service_zammad_username
24+ target : /run/environment-variables/POSTGRESQL_USER
25+ - source : postgres_role_service_zammad_password
26+ target : /run/environment-variables/POSTGRESQL_PASS
27+ volumes :
28+ - zammad_data:/opt/zammad/storage
29+ - ../production/configurations/zammad/docker-entrypoint.sh:/docker-entrypoint.sh:ro
630secrets :
31+ elasticsearch_password :
32+ # The search engine's password for the default user.
33+ file : ./secrets/elasticsearch/password.secret
734 grafana_admin_email :
835 # The observation dashboard's admin email.
936 file : ./secrets/grafana/admin_email.secret
@@ -166,6 +193,20 @@ services:
166193 - postgres_user
167194 volumes :
168195 - ../production/configurations/debezium-postgres-connector/entrypoint.sh:/entrypoint.sh:ro
196+ elasticsearch :
197+ # You cannot access the search engine via a web interface.
198+ environment :
199+ discovery.type : single-node
200+ network.publish_host : elasticsearch
201+ ELASTIC_PASSWORD_FILE : /run/secrets/elasticsearch_password
202+ image : elasticsearch:8.19.11
203+ secrets :
204+ - source : elasticsearch_password
205+ uid : " 1000"
206+ gid : " 1000"
207+ mode : 0o400
208+ volumes :
209+ - elasticsearch_data:/usr/share/elasticsearch/data
169210 geoip :
170211 # You cannot access the ip geolocator via a web interface.
171212 image : ghcr.io/observabilitystack/geoip-api:2026-02
@@ -220,6 +261,10 @@ services:
220261 volumes :
221262 - ../production/backups/postgres/:/backups/
222263 - ./configurations/jobber/.jobber:/home/jobberuser/.jobber:ro
264+ memcached :
265+ # You cannot access the caching system via a web interface.
266+ image : memcached:1.6.40-alpine
267+ # command: memcached -m 256M
223268 minio : # DARGSTACK-REMOVE
224269 # You can access the s3 console at [minio.app.localhost](https://minio.app.localhost/).
225270 # 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 +449,11 @@ services:
404449 - postgres_user
405450 volumes :
406451 - reccoom_postgres_data:/var/lib/postgresql/
452+ redis :
453+ # You cannot access the caching system via a web interface.
454+ image : redis:7.4.7-alpine
455+ volumes :
456+ - redis_data:/data
407457 redpanda :
408458 # You can access the event streaming platform's ui as described under `redpanda-console`.
409459 command :
@@ -573,6 +623,48 @@ services:
573623 - ../../../vibetype/:/srv/app/ # DARGSTACK-REMOVE
574624 - vibetype_data:/srv/app/node_modules # DARGSTACK-REMOVE
575625 - ./configurations/postgraphile/jwtRS256.key.pub:/run/environment-variables/NUXT_PUBLIC_VIO_AUTH_JWT_PUBLIC_KEY:ro
626+ zammad-backup :
627+ # You cannot access the helpdesk backup service via a web interface.
628+ << : *zammad-service
629+ command : ["zammad-backup"]
630+ user : 0:0
631+ volumes :
632+ - zammad-backup_data:/var/tmp/zammad
633+ - zammad_data:/opt/zammad/storage:ro
634+ - ../production/configurations/zammad/docker-entrypoint.sh:/docker-entrypoint.sh:ro
635+ zammad-init :
636+ # You cannot access the helpdesk initialization service via a web interface.
637+ << : *zammad-service
638+ command : ["zammad-init"]
639+ # depends_on:
640+ # - zammad-postgresql
641+ user : 0:0
642+ zammad-nginx :
643+ # You can access the helpdesk at [zammad.app.localhost](https://zammad.app.localhost/).
644+ << : *zammad-service
645+ command : ["zammad-nginx"]
646+ deploy :
647+ labels :
648+ - traefik.enable=true
649+ - traefik.http.routers.zammad.entryPoints=web
650+ - traefik.http.routers.zammad.middlewares=redirectscheme # DARGSTACK-REMOVE
651+ - traefik.http.routers.zammad.rule=Host(`zammad.${STACK_DOMAIN}`)
652+ - traefik.http.routers.zammad_secure.entryPoints=web-secure
653+ - traefik.http.routers.zammad_secure.rule=Host(`zammad.${STACK_DOMAIN}`)
654+ - traefik.http.routers.zammad_secure.tls.options=mintls13@file # DARGSTACK-REMOVE
655+ - traefik.http.services.zammad.loadbalancer.server.port=8080
656+ zammad-railsserver :
657+ # You cannot access the helpdesk application server directly.
658+ << : *zammad-service
659+ command : ["zammad-railsserver"]
660+ zammad-scheduler :
661+ # You cannot access the helpdesk scheduler directly.
662+ << : *zammad-service
663+ command : ["zammad-scheduler"]
664+ zammad-websocket :
665+ # You cannot access the helpdesk websocket server directly.
666+ << : *zammad-service
667+ command : ["zammad-websocket"]
576668version : " 3.7"
577669volumes :
578670 debezium_kafka_configuration :
@@ -584,14 +676,17 @@ volumes:
584676 debezium_kafka_logs :
585677 # The change data capture's logs.
586678 {}
679+ elasticsearch_data :
680+ # The search engine's data.
681+ {}
587682 grafana_data :
588683 # The observation dashboard's data.
589684 {}
590685 minio_data :
591686 # The s3 server's data.
592687 {}
593688 pnpm_data :
594- # The node package manager's data.
689+ # The node package manager's data.
595690 {}
596691 portainer_data :
597692 # The container manager's data.
@@ -605,9 +700,18 @@ volumes:
605700 reccoom_postgres_data :
606701 # The recommendation database's data.
607702 {}
703+ redis_data :
704+ # The caching system's data.
705+ {}
608706 redpanda_data :
609707 # The message queue's data.
610708 {}
611709 vibetype_data :
612710 # The frontend's data.
613711 {}
712+ zammad-backup_data :
713+ # The helpdesk backup's data.
714+ {}
715+ zammad_data :
716+ # The helpdesk's data.
717+ {}
0 commit comments