# ───────────────────────────────────────────────────────────────────────────── # 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) # ───────────────────────────────────────────────────────────────────────────── # 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 # ───────────────────────────────────────────────────────────────────────────── # Build-time fallbacks for packaged clients (e.g. Electron) without a runtime # config provider. Optional; Docker reads the plain runtime vars above first. # ───────────────────────────────────────────────────────────────────────────── # NEXT_PUBLIC_AUTH_TYPE=GOOGLE # NEXT_PUBLIC_ETL_SERVICE=DOCLING # NEXT_PUBLIC_DEPLOYMENT_MODE=self-hosted # Overrides the app version shown in the UI (defaults to package.json version). # NEXT_PUBLIC_APP_VERSION= # ───────────────────────────────────────────────────────────────────────────── # 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=