# ───────────────────────────────────────────────────────────────────────────── # Backend connectivity # ───────────────────────────────────────────────────────────────────────────── # Optional packaged-client override. Leave unset in Docker so browser requests # use same-origin relative URLs behind Caddy. Set it for packaged clients # (e.g. Electron) or local dev that talks to a separate backend origin. # NEXT_PUBLIC_FASTAPI_BACKEND_URL=http://localhost:8000 # Server-only. Internal backend URL used by Next.js server code (RSC / route # handlers). Cannot be a relative URL. SURFSENSE_BACKEND_INTERNAL_URL=http://backend:8000 # ───────────────────────────────────────────────────────────────────────────── # Runtime configuration (read at runtime by the server, no rebuild needed) # ───────────────────────────────────────────────────────────────────────────── # Configure these plain variables for runtime behavior. They are read by server # code when the app starts/serves requests, so changing them requires restarting # the web process but not rebuilding the frontend bundle. # # Authentication method: LOCAL (email/password) or GOOGLE (OAuth). AUTH_TYPE=LOCAL # Document parsing backend: DOCLING, LLAMACLOUD, etc. ETL_SERVICE=DOCLING # Deployment mode: self-hosted or cloud. DEPLOYMENT_MODE=self-hosted # ───────────────────────────────────────────────────────────────────────────── # Database (Contact Form, optional) # ───────────────────────────────────────────────────────────────────────────── DATABASE_URL=postgresql://postgres:[YOUR-PASSWORD]@db.sdsf.supabase.co:5432/postgres # ───────────────────────────────────────────────────────────────────────────── # PostHog analytics (optional, leave key empty to disable) # ───────────────────────────────────────────────────────────────────────────── NEXT_PUBLIC_POSTHOG_KEY= NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com # ───────────────────────────────────────────────────────────────────────────── # Zero cache (real-time sync). Leave unset in Docker to use the same-origin # "/zero" endpoint behind Caddy. Set it for local dev or packaged clients. # ───────────────────────────────────────────────────────────────────────────── # NEXT_PUBLIC_ZERO_CACHE_URL=http://localhost:4848 # ───────────────────────────────────────────────────────────────────────────── # Cloudflare Turnstile CAPTCHA for anonymous chat abuse prevention # Get your site key from https://dash.cloudflare.com/ -> Turnstile # ───────────────────────────────────────────────────────────────────────────── NEXT_PUBLIC_TURNSTILE_SITE_KEY= # ───────────────────────────────────────────────────────────────────────────── # Google AdSense (optional, only enables ads on the /free hub page). # Publisher ID from your AdSense dashboard, e.g. ca-pub-XXXXXXXXXXXXXXXX. # Leave empty to disable ad rendering entirely. # ───────────────────────────────────────────────────────────────────────────── NEXT_PUBLIC_GOOGLE_ADSENSE_CLIENT_ID= # Ad unit slot IDs from AdSense dashboard -> Ads -> By ad unit. # Leave empty to hide individual slots while keeping the script loaded. NEXT_PUBLIC_GOOGLE_ADSENSE_SLOT_FREE_HUB_IN_CONTENT= NEXT_PUBLIC_GOOGLE_ADSENSE_SLOT_FREE_HUB_BEFORE_FAQ= # ───────────────────────────────────────────────────────────────────────────── # Global announcement banner (e.g. planned downtime / maintenance notice). # Set ENABLED to "true" to show the banner, and put the notice text in MESSAGE. # ───────────────────────────────────────────────────────────────────────────── NEXT_PUBLIC_GLOBAL_ANNOUNCEMENT_ENABLED=false NEXT_PUBLIC_GLOBAL_ANNOUNCEMENT_MESSAGE= # ───────────────────────────────────────────────────────────────────────────── # Internal build-time fallbacks # ───────────────────────────────────────────────────────────────────────────── # # Most deployments should leave these unset. # # These are only for SurfSense-managed production/cloud builds or packaged # clients that do not have the normal server runtime config available. # # NEXT_PUBLIC_* values are embedded into the browser bundle during `next build`. # Changing them after the bundle is built has no effect. # NEXT_PUBLIC_AUTH_TYPE=GOOGLE # NEXT_PUBLIC_ETL_SERVICE=DOCLING # NEXT_PUBLIC_DEPLOYMENT_MODE=self-hosted # NEXT_PUBLIC_APP_VERSION=