# Database DATABASE_URL="postgresql://user:password@host/dbname?sslmode=require" DIRECT_URL="postgresql://user:password@host/dbname?sslmode=require" # Auth/session # Generate with: openssl rand -base64 32 SESSION_SECRET="replace-with-at-least-32-characters" # Optional; Vercel and Node set this automatically in deployed environments. NODE_ENV="development" # M11 (ST-1107) — shared secret between Vercel cron-trigger and the # /api/cron/expire-questions handler. Required in production; optional in # local dev (the route returns 401 if the Authorization header doesn't match). # Generate with: openssl rand -base64 32 CRON_SECRET="" # PBI-55 — Web Push (VAPID). All optional; app starts without these. # Generate keys with: npx web-push generate-vapid-keys NEXT_PUBLIC_VAPID_PUBLIC_KEY="" VAPID_PRIVATE_KEY="" # Must start with mailto: e.g. mailto:admin@example.com VAPID_SUBJECT="mailto:admin@example.com" # Shared secret for POST /api/internal/push/send — min 32 chars # Generate with: openssl rand -base64 32 INTERNAL_PUSH_SECRET="" # PBI-66 — Anthropic API key voor `npm run db:sync-model-prices`. # Optional. Alleen nodig om wekelijks de model_prices tabel te synchroniseren. # Genereer op https://console.anthropic.com/ → API Keys. # /v1/models is een gratis metadata-call (geen tokens, geen credit nodig). ANTHROPIC_API_KEY="" # v1-readiness item 2 — Sentry error monitoring. # Optional. Without DSN, the SDK is a no-op (no network, no overhead). # Get a DSN at https://sentry.io → Project → Settings → Client Keys (DSN). NEXT_PUBLIC_SENTRY_DSN="" # Required ONLY if you want source-map upload during build (production deploy). # In Vercel: project settings → Environment Variables → add as encrypted. SENTRY_ORG="" SENTRY_PROJECT="" SENTRY_AUTH_TOKEN=""