services: db: image: postgres:18 environment: POSTGRES_DB: axolotl POSTGRES_USER: axolotl POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD} volumes: - postgres-data:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -U axolotl -d axolotl"] interval: 5s timeout: 5s retries: 20 server: build: . environment: APP_ENV: production DATABASE_URL: ${DOCKER_DATABASE_URL:?set DOCKER_DATABASE_URL} ADMIN_TOKEN: ${ADMIN_TOKEN:?set ADMIN_TOKEN} WEBHOOK_SECRET: ${WEBHOOK_SECRET:?set WEBHOOK_SECRET} PUBLIC_BASE_URL: ${PUBLIC_BASE_URL:-https://update.axlmc.org} DIST_PUBLIC_BASE_URL: ${DIST_PUBLIC_BASE_URL:-} DIST_SERVER: ${DIST_SERVER:-} DIST_CLOUDFLARE_ONLY: ${DIST_CLOUDFLARE_ONLY:-true} DIST_ORIGIN_SECRET: ${DIST_ORIGIN_SECRET:-} GITHUB_ARTIFACT_DOWNLOAD_TIMEOUT_SECONDS: ${GITHUB_ARTIFACT_DOWNLOAD_TIMEOUT_SECONDS:-1800} TRUSTED_PROXY_CIDRS: ${TRUSTED_PROXY_CIDRS:-} ANALYTICS_ENABLED: ${ANALYTICS_ENABLED:-true} ANALYTICS_INCLUDE_STATS_REQUESTS: ${ANALYTICS_INCLUDE_STATS_REQUESTS:-false} STATS_QUERY_TIMEOUT_SECONDS: ${STATS_QUERY_TIMEOUT_SECONDS:-15} # To use MMDB files, also mount their directory read-only below. ANALYTICS_GEOIP_CITY_DB: ${ANALYTICS_GEOIP_CITY_DB:-} ANALYTICS_GEOIP_ASN_DB: ${ANALYTICS_GEOIP_ASN_DB:-} ANALYTICS_QQWRY_DB: ${ANALYTICS_QQWRY_DB:-} ANALYTICS_GEOIP_API_URL: ${ANALYTICS_GEOIP_API_URL:-} ports: - "127.0.0.1:8082:8082" volumes: # Keep the existing volume name so upgrades retain manifests and packages. - manifests:/srv/app/dist depends_on: db: condition: service_healthy stop_grace_period: 45s volumes: postgres-data: manifests: