# Server APP_ENV=development PORT=8080 # MongoDB (content) MONGO_URI=mongodb://user:pass@localhost:27017/spsays?authSource=admin MONGO_DB=spsays # PostgreSQL (users, relations) POSTGRES_URI=postgres://user:pass@localhost:5432/spsays?sslmode=disable # Typesense TYPESENSE_URL=https://search.prabhupadasays.org TYPESENSE_API_KEY= # DragonflyDB / Redis REDIS_URI=redis://localhost:6379 # Cloudflare R2 (avatar uploads via presigned URLs) # R2 endpoint is auto-built as https://.r2.cloudflarestorage.com R2_ACCOUNT_ID= R2_ACCESS_KEY_ID= R2_SECRET_ACCESS_KEY= R2_BUCKET= # Public base URL where bucket objects are served (custom domain or pub-XXX.r2.dev) R2_PUBLIC_URL= # SMTP (password-reset + email-verification + /feedback admin notifications) SMTP_HOST= SMTP_PORT=587 SMTP_USERNAME= SMTP_PASSWORD= SMTP_FROM="Prabhupāda Says " # Comma-separated recipients for /feedback admin notifications. Empty # disables the email fan-out (feedback rows still persist and show on # the /stats page either way). FEEDBACK_ADMIN_EMAILS= # Push Notifications FCM_CREDENTIALS_FILE= APNS_KEY_FILE= APNS_KEY_ID= APNS_TEAM_ID= APNS_BUNDLE_ID= # JWT JWT_SECRET=change-me-in-production JWT_EXPIRATION=168h # Cookie domain — empty in dev (uses request host), ".prabhupadasays.org" in prod COOKIE_DOMAIN= COOKIE_SECURE=false # Frontend (CORS + email link base) FRONTEND_URL=http://localhost:3000 GOOGLE_OAUTH_CLIENT_ID= GOOGLE_OAUTH_CLIENT_SECRET= FACEBOOK_OAUTH_CLIENT_ID= FACEBOOK_OAUTH_CLIENT_SECRET= # SOKETI SOKETI_APP_ID= SOKETI_APP_KEY= SOKETI_APP_SECRET= SOKETI_HOST=ws.prabhupadasays.org SOKETI_PORT=443 SOKETI_USE_TLS=true # Web Push VAPID_PUBLIC_KEY= VAPID_PRIVATE_KEY= VAPID_SUBJECT=