# iron-session cookie encryption (32+ char random string) # Generate: openssl rand -base64 32 AUTH_SECRET= # Demo mode — lets /login mint a fake-user session without configuring OAuth or a DB. # Demo sign-in creates an ADMIN session. # true = on — set explicitly on any deployment that should offer a public demo # false = off (recommended for real production) # unset = auto: on only in local development (`next dev`), off in every deployment # (production and preview) — see lib/demo-mode.ts DEMO_MODE= NEXT_PUBLIC_DEMO_MODE= # GitHub OAuth App credentials # Create at: https://github.com/settings/applications/new # Authorization callback URL: http://localhost:3000/api/auth/github/callback GITHUB_CLIENT_ID= GITHUB_CLIENT_SECRET= # Postgres (Neon, Supabase pooler, or local) DATABASE_URL= # Public site URL — used for OAuth redirects + emails NEXT_PUBLIC_SITE_URL=http://localhost:3000 # Bootstrap admin logins (comma-separated GitHub usernames). INITIAL_ADMIN_LOGINS= # i18now — OTA translation delivery (mirrors @i18now/nuxt). # Unset: local messages/*.json serve alone. Set: published CDN translations # merge over local files (CDN wins). I18NOW_ENVIRONMENT defaults to `dev` # in dev and `prod` in production. I18NOW_PROJECT_ID= I18NOW_API_KEY= # I18NOW_ENVIRONMENT= # Axiom — structured log shipping AXIOM_TOKEN= AXIOM_DATASET= AXIOM_ORG_ID= # Sentry — error monitoring NEXT_PUBLIC_SENTRY_DSN= SENTRY_AUTH_TOKEN= SENTRY_ORG= SENTRY_PROJECT= # PostHog — product analytics NEXT_PUBLIC_POSTHOG_KEY= NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com # Resend — transactional email RESEND_API_KEY= EMAIL_FROM= EMAIL_OPS= # Polar — billing / checkout / subscriptions POLAR_ACCESS_TOKEN= POLAR_WEBHOOK_SECRET= POLAR_SERVER=sandbox POLAR_PRO_PRODUCT_ID= POLAR_TEAM_PRODUCT_ID= POLAR_ENTERPRISE_PRODUCT_ID=