🐛 Oopsie

Server Configuration

The Oopsie server is configured via environment variables.

Core settings

VariableDefaultDescription
APP_ENVprodSymfony environment
APP_SECRETApplication secret (change in production)
DATABASE_URLPostgreSQL connection string

JWT authentication

VariableDescription
JWT_SECRET_KEYPath to private key PEM file
JWT_PUBLIC_KEYPath to public key PEM file
JWT_PASSPHRASEPassphrase for the JWT keys

JWT keys are auto-generated on first startup if not present.

Storage

VariableDefaultDescription
STORAGE_ADAPTERlocallocal or s3
STORAGE_LOCAL_PATH/data/attachmentsLocal storage directory
STORAGE_S3_BUCKETS3 bucket name
STORAGE_S3_REGIONS3 region
STORAGE_S3_KEYS3 access key
STORAGE_S3_SECRETS3 secret key
STORAGE_S3_ENDPOINTCustom S3 endpoint (for compatible services)

Reverse proxy (Caddy)

Caddy handles HTTPS termination and subdomain routing. Configure via environment variables:

VariableDefaultDescription
API_DOMAINhttp://api.localhostAPI subdomain. Use https://api.example.com for auto HTTPS
DASHBOARD_DOMAINhttp://app.localhostDashboard subdomain. Use https://app.example.com for auto HTTPS

When using https:// domains, Caddy automatically obtains and renews TLS certificates via Let's Encrypt.

Dashboard

VariableDefaultDescription
NEXT_PUBLIC_API_URLhttp://api.localhost/api/v1API URL used by the dashboard (injected at runtime)

Other

VariableDefaultDescription
CORS_ALLOW_ORIGIN*CORS allowed origins (regex). Set to match your dashboard domain in production
OOPSIE_VERSION1.0.0Current version (for update check)

© 2026 Oopsie. Built by Yoan Bernabeu

Edit on GitHub