Configuration
Copy .env.example to .env for local development. Do not commit .env or production secrets.
Required settings
| Variable | Purpose |
|---|---|
APP_DATABASE_URL | PostgreSQL connection URL |
APP_SESSION_SECRET | Session-signing secret with at least 32 bytes |
APP_RESEND_FROM_EMAIL | Sender address used for magic links |
APP_BASE_URL | HTTP or HTTPS base URL used to build magic links |
Generate a session secret with:
openssl rand -base64 32
Set APP_RESEND_API_KEY to send production magic-link emails through Resend. Without it, CloudSeed uses its mock email sender and logs magic links for local development.
Optional application settings
| Variable | Purpose |
|---|---|
APP_PORT | HTTP port; defaults to 5000 |
APP_SESSION_CLEANUP_INTERVAL_HOURS | Expired-session cleanup interval; 0 disables cleanup |
APP_DB_MAX_CONNECTIONS | PostgreSQL pool limit |
APP_WORKER_CONCURRENCY | Number of background job workers |
APP_JOB_MAX_RETRIES | Maximum background job retries |
APP_JOB_RETRY_BACKOFF_SECONDS | Initial retry backoff |
RUST_LOG | Tracing filter, such as info or cloudseed=debug |
OpenTelemetry
Logs always go to standard output. To export logs and metrics over OTLP, configure:
APP_OTEL_ENABLEDAPP_OTEL_ENDPOINTAPP_OTEL_SERVICE_NAMEAPP_OTEL_SERVICE_VERSIONAPP_OTEL_ENVIRONMENT
Standard OTEL_EXPORTER_OTLP_ENDPOINT and OTEL_SERVICE_NAME variables are also supported.