version: '3' networks: proxy: external: true services: zammad-backup: container_name: zammad-backup environment: - BACKUP_TIME=23:00 - HOLD_DAYS=1 image: postgres:${POSTGRES_VERSION} volumes: - ${APP_DATA}/zammad/scripts/backup.sh:/usr/local/bin/backup.sh:ro 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 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 healthcheck: test: ["CMD-SHELL", "pg_isready"] interval: 60s timeout: 10s retries: 30 zammad-init: container_name: zammad-init environment: - POSTGRESQL_PASS=${POSTGRES_PASS} zammad-memcached: container_name: zammad-memcached zammad-railsserver: container_name: zammad-railsserver environment: - POSTGRESQL_PASS=${POSTGRES_PASS} 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 environment: - POSTGRESQL_PASS=${POSTGRES_PASS} zammad-websocket: container_name: zammad-websocket environment: - POSTGRESQL_PASS=${POSTGRES_PASS}