services: db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_USER:-lovetax} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?password required} POSTGRES_DB: ${POSTGRES_DB:-lovetax} volumes: ['pgdata:/var/lib/postgresql/data'] healthcheck: test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER:-lovetax}'] interval: 10s timeout: 5s retries: 6 web: build: . restart: unless-stopped depends_on: db: { condition: service_healthy } environment: DATABASE_URL: postgres://${POSTGRES_USER:-lovetax}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB:-lovetax} AUTH_SECRET: ${AUTH_SECRET:?secret required} AUTH_URL: ${AUTH_URL:?required} APP_URL: ${APP_URL:?required} SMTP_HOST: ${SMTP_HOST:?required} SMTP_PORT: ${SMTP_PORT:-587} SMTP_USER: ${SMTP_USER:-} SMTP_PASS: ${SMTP_PASS:-} SMTP_FROM: ${SMTP_FROM:-LoveTax } SEED_ADMIN_EMAIL: ${SEED_ADMIN_EMAIL:-} SEED_ADMIN_PASSWORD: ${SEED_ADMIN_PASSWORD:-} TRUST_PROXY: ${TRUST_PROXY:-true} NODE_ENV: production ports: ['${PORT:-30001}:30001'] volumes: pgdata: