services: app: build: context: . dockerfile: Dockerfile restart: unless-stopped depends_on: postgres: condition: service_healthy environment: NODE_ENV: production PORT: 3000 HOSTNAME: 0.0.0.0 DATABASE_URL: postgresql://formbuilder:${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD}@postgres:5432/formbuilder AUTH_SECRET: ${AUTH_SECRET:?set AUTH_SECRET} AUTH_URL: ${AUTH_URL:?set AUTH_URL} PUBLIC_BASE_URL: ${AUTH_URL} PUBLIC_FORM_URL: ${PUBLIC_FORM_URL:?set PUBLIC_FORM_URL} OIDC_ISSUER: ${OIDC_ISSUER:?set OIDC_ISSUER} OIDC_CLIENT_ID: ${OIDC_CLIENT_ID:?set OIDC_CLIENT_ID} OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET:?set OIDC_CLIENT_SECRET} OIDC_PROVIDER_NAME: ${OIDC_PROVIDER_NAME:-Authentik} AUTH_BOOTSTRAP_ADMINS: ${AUTH_BOOTSTRAP_ADMINS:-} RATE_LIMIT_DRIVER: ${RATE_LIMIT_DRIVER:-memory} REDIS_URL: ${REDIS_URL:-} EMAIL_DRIVER: ${EMAIL_DRIVER:-none} EMAIL_FROM: ${EMAIL_FROM:-Forms } RESEND_API_KEY: ${RESEND_API_KEY:-} SMTP_URL: ${SMTP_URL:-} STORAGE_DRIVER: ${STORAGE_DRIVER:-local} UPLOAD_DIR: ${UPLOAD_DIR:-uploads} S3_BUCKET: ${S3_BUCKET:-} S3_REGION: ${S3_REGION:-} S3_ENDPOINT: ${S3_ENDPOINT:-} S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-} S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-} HCAPTCHA_SITE_KEY: ${HCAPTCHA_SITE_KEY:-} HCAPTCHA_SECRET: ${HCAPTCHA_SECRET:-} CRON_SECRET: ${CRON_SECRET:-} ports: - "${APP_PORT:-3080}:3000" volumes: - uploads:/app/uploads postgres: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_DB: formbuilder POSTGRES_USER: formbuilder POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD} volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U formbuilder -d formbuilder"] interval: 10s timeout: 5s retries: 5 volumes: postgres_data: uploads: