version: '3' networks: proxy: external: true services: zammad-elasticsearch: container_name: zammad-elasticsearch mem_limit: 6g healthcheck: test: curl -s http://localhost:9200 --output /dev/null || exit 1 interval: 60s timeout: 10s retries: 30 zammad-nginx: container_name: zammad-nginx env_file: stack.env healthcheck: test: curl --fail http://localhost:8080 || exit 1 interval: 60s retries: 30 start_period: 20s timeout: 10s labels: - "traefik.enable=true" - "traefik.docker.network=proxy" - "traefik.http.routers.zammad.rule=Host(`${ZAMMAD_DOMAIN}`)" - "traefik.http.routers.zammad.entrypoints=websecure" - "traefik.http.routers.zammad.tls.certresolver=letsencrypt" - "traefik.http.services.zammad.loadbalancer.server.port=8080" networks: - proxy - default zammad-postgresql: container_name: zammad-postgresql env_file: stack.env healthcheck: test: ["CMD-SHELL", "pg_isready"] interval: 60s timeout: 10s retries: 30 zammad-init: container_name: zammad-init environment: - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASS} env_file: stack.env zammad-memcached: container_name: zammad-memcached zammad-railsserver: container_name: zammad-railsserver env_file: stack.env volumes: - ${APP_DATA}/zammad/config/database.yml:/opt/zammad/config/database.yml zammad-redis: container_name: zammad-redis healthcheck: test: ["CMD-SHELL", "redis-cli ping | grep PONG"] interval: 60s timeout: 30s retries: 10 zammad-scheduler: container_name: zammad-scheduler zammad-websocket: container_name: zammad-websocket