Runtime settings are read from .env. Never commit a file containing real credentials.
Core services
| Variable | Purpose |
|---|---|
DATABASE_URL |
PostgreSQL connection used by Prisma |
AUTH_SECRET |
long, random Auth.js signing secret |
AUTH_URL |
public application URL |
AUTH_TRUST_HOST |
trust the reverse proxy host header |
REDIS_URL |
Redis connection for BullMQ and rate limits |
RATE_LIMIT_DISABLED |
disable rate limits in controlled tests only |
Object storage
| Variable | Purpose |
|---|---|
STORAGE_DRIVER |
storage driver, currently s3 |
S3_ENDPOINT |
internal S3 or MinIO endpoint |
S3_PUBLIC_BASE_URL |
endpoint reachable by browsers |
S3_REGION |
S3 region |
S3_BUCKET |
media bucket |
S3_ACCESS_KEY_ID / S3_SECRET_ACCESS_KEY |
service credentials |
S3_FORCE_PATH_STYLE |
required by some MinIO deployments |
Internal and public S3 endpoints may differ. Signed URLs returned to browsers must use a routable HTTPS address.
Uploads and bootstrap
| Variable | Example | Purpose |
|---|---|---|
UPLOAD_MAX_BYTES |
1073741824 | maximum upload size |
UPLOAD_URL_TTL_SECONDS |
900 | upload URL lifetime |
DOWNLOAD_URL_TTL_SECONDS |
300 | download URL lifetime |
SEED_MODE |
prod |
disable demo data in production |
BOOTSTRAP_ADMIN_EMAIL |
— | first platform administrator |
BOOTSTRAP_ADMIN_PASSWORD |
— | initial password |
Remove bootstrap variables after creating the account and rotate its password. LOG_LEVEL controls verbosity. use structured JSON in production and LOG_PRETTY=true only for readable development output.