# compose.yml # Compose base name: ${COMPOSE_PROJECT_NAME:-suitecoffee} services: app: depends_on: db: condition: service_healthy tenants: condition: service_healthy healthcheck: test: ["CMD-SHELL", "curl -fsS http://localhost:${APP_PORT}/health || exit 1"] interval: 10s timeout: 3s retries: 10 start_period: 20s restart: unless-stopped # auth: # depends_on: # db: # condition: service_healthy # ak: # condition: service_started # healthcheck: # test: ["CMD-SHELL", "curl -fsS http://localhost:${AUTH_PORT}/health || exit 1"] # interval: 10s # timeout: 3s # retries: 10 # start_period: 15s # restart: unless-stopped db: image: postgres:16 environment: TZ: America/Montevideo healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"] interval: 5s timeout: 3s retries: 20 start_period: 10s restart: unless-stopped tenants: image: postgres:16 environment: TZ: America/Montevideo healthcheck: test: ["CMD-SHELL", "pg_isready -U ${TENANTS_DB_USER} -d ${TENANTS_DB_NAME}"] interval: 5s timeout: 3s retries: 20 start_period: 10s restart: unless-stopped ak-db: image: postgres:16-alpine healthcheck: test: ["CMD-SHELL", "pg_isready -d ${AK_PG_DB} -U ${AK_PG_USER} || exit 1"] interval: 30s retries: 5 start_period: 20s timeout: 5s restart: unless-stopped ak-redis: image: redis:7-alpine healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 30s timeout: 5s retries: 5 start_period: 10s restart: unless-stopped ak: image: ghcr.io/goauthentik/server:latest depends_on: ak-db: condition: service_healthy ak-redis: condition: service_healthy restart: unless-stopped ak-worker: image: ghcr.io/goauthentik/server:latest depends_on: ak-db: condition: service_healthy ak-redis: condition: service_healthy restart: unless-stopped