# ============================================================================== # AI Weekly Synth - Environment Configuration # ============================================================================== # Copy this file to .env and fill in the values. # NEVER commit .env to version control. # ============================================================================== # --- Database --- # Connection string for Postgres. In docker-compose, the hostname is "db". DATABASE_URL=postgres://ai_synth:CHANGE_ME@db:5432/ai_synth POSTGRES_PASSWORD=CHANGE_ME # --- Security --- # 256-bit key for encrypting user LLM API keys at rest (64 hex characters). # Generate with: openssl rand -hex 32 MASTER_ENCRYPTION_KEY= # --- Application --- # Public URL where the app is accessible (no trailing slash). # Used for magic link URLs, CORS origin, and cookie domain. APP_URL=https://synth.example.com # Port for the backend HTTP server (inside the container). PORT=8080 # Port for the backend HTTP server (outside the container). EXT_PORT=8005 # Logging level. Options: error, warn, info, debug, trace. # Format: "level" or "level,crate=level" RUST_LOG=info,ai_synth_backend=debug # Path to the built SolidJS frontend files. # Default: ../frontend/dist (for local dev) or ./static (in Docker) # STATIC_DIR=../frontend/dist # --- Email (Resend) --- # Sign up at https://resend.com and create an API key. RESEND_API_KEY=re_CHANGE_ME # Sender address. Must be a verified domain in Resend. EMAIL_FROM=AI Weekly Synth # --- Captcha (Cloudflare Turnstile) --- # Sign up at https://dash.cloudflare.com/turnstile TURNSTILE_SECRET_KEY=0x4AAAAAAA_CHANGE_ME TURNSTILE_SITE_KEY=0x4BBBBBB_CHANGE_ME # --- Generation --- # Maximum time (in minutes) allowed for a synthesis generation before timeout. # Default: 30 # GENERATION_TIMEOUT_MINUTES=30