# compose.yml # Compose base name: ${COMPOSE_PROJECT_NAME:-suitecoffee} services: app: depends_on: dbCore: condition: service_healthy dbTenants: 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 plugins: depends_on: app: condition: service_healthy auth: condition: service_healthy healthcheck: test: ["CMD-SHELL", "curl -fsS http://localhost:${PLUGINS_PORT}/health || exit 1"] interval: 10s timeout: 3s retries: 10 start_period: 20s restart: unless-stopped auth: depends_on: dbCore: condition: service_healthy ak: condition: service_healthy healthcheck: test: ["CMD-SHELL", "curl -fsS http://localhost:${AUTH_PORT}/health || exit 1"] interval: 10s timeout: 3s retries: 10 start_period: 20s restart: unless-stopped dbCore: image: postgres:16 environment: TZ: America/Montevideo healthcheck: test: ["CMD-SHELL", "pg_isready -U ${CORE_DB_USER} -d ${CORE_DB_NAME}"] interval: 5s timeout: 3s retries: 20 start_period: 10s restart: unless-stopped dbTenants: 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