Files
forms/docker-compose.yml

63 lines
2.0 KiB
YAML

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 <forms@example.com>}
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: