| # PostgreSQL connection string | |
| # Local dev (docker-compose): postgresql://postgres:password@localhost:5432/pram | |
| DATABASE_URL= | |
| # Redis β required for AI generation job queue | |
| # Local dev (docker-compose): redis://localhost:6379 | |
| REDIS_URL=redis://localhost:6379 | |
| # Auth β random strings, minimum 32 characters | |
| BETTER_AUTH_SECRET= | |
| # Local dev: http://localhost:3000 | |
| # Production: public URL of the API server (must match VITE_SERVER_URL on the web app) | |
| # Example: https://api.example.com | |
| BETTER_AUTH_URL=http://localhost:3000 | |
| # Local dev: http://localhost:3001 | |
| # Production: public URL of the web app (used for CORS + Better Auth trustedOrigins) | |
| # Example: https://app.example.com | |
| CORS_ORIGIN=http://localhost:3001 | |
| # Encrypts user AI API keys at rest β minimum 32 characters | |
| API_KEY_ENCRYPTION_KEY= | |
| # SMTP β required for email verification and password reset | |
| SMTP_HOST= | |
| SMTP_PORT=587 | |
| SMTP_USER= | |
| SMTP_PASS= | |
| SMTP_FROM= | |
| # Optional: platform-wide AI fallback (users normally configure keys in Settings UI) | |
| # PLATFORM_AI_API_KEY= | |
| # PLATFORM_AI_BASE_URL= | |
| # PLATFORM_AI_MODEL= | |
| CLOUDFLARE_TURNSTILE_SECRET_KEY= |