# Copy this to .env and adjust as needed. See RUNBOOK.md for what each # variable means in detail. # ---------- ClickHouse ---------- # Local Docker Compose defaults below. For ClickHouse Cloud (production), # override on your hosting platform instead of here: # CLICKHOUSE_HOST=.clickhouse.cloud # CLICKHOUSE_HTTP_PORT=8443 # CLICKHOUSE_SECURE=true CLICKHOUSE_DB=ch_adnova CLICKHOUSE_USER=ch_adnova_admin CLICKHOUSE_PASSWORD=root CLICKHOUSE_HTTP_PORT=8129 CLICKHOUSE_TCP_PORT=9001 CLICKHOUSE_SECURE=false # ---------- PostgreSQL (Langfuse's metadata store) ---------- POSTGRES_USER=langfuse POSTGRES_PASSWORD=changeme POSTGRES_DB=langfuse POSTGRES_PORT=5433 # ---------- MongoDB ---------- # Local Docker Compose uses MONGO_PORT below - the backend connects via # mongo_host/mongo_port defaults (see backend/app/config.py), nothing to # set here for local dev. For MongoDB Atlas (production), set MONGO_URI # directly on your hosting platform instead of here - it isn't consumed by # docker-compose.yml at all, only read by the backend if present: # MONGO_URI=mongodb+srv://:@.mongodb.net MONGO_PORT=27017 # ---------- Langfuse ---------- # Local Docker Compose self-hosts Langfuse - LANGFUSE_HOST defaults to the # internal http://langfuse:3000 in backend/app/config.py, nothing to set # here for that. LANGFUSE_PUBLIC_KEY/SECRET_KEY are blank by default - # generate them from the Langfuse UI (Settings -> API Keys) after first # login; tracing runs as a no-op until they're set, so leaving this blank # doesn't break anything. LANGFUSE_PORT=3001 LANGFUSE_NEXTAUTH_SECRET=changeme_nextauth_secret LANGFUSE_SALT=changeme_salt LANGFUSE_PUBLIC_KEY= LANGFUSE_SECRET_KEY= # Settings -> your project's ID is in the URL: /project//settings. # Without this, "View Langfuse trace" links are hidden rather than shown # broken - Langfuse's real route needs the project ID, a bare /trace/{id} # link 404s (self-hosted) or 500s (Cloud). LANGFUSE_PROJECT_ID= # For Langfuse Cloud instead of self-hosting (recommended for a Render/ # Vercel deployment - no separate Postgres to host), set these on your # hosting platform instead: # LANGFUSE_HOST=https://us.cloud.langfuse.com # LANGFUSE_PUBLIC_HOST=https://us.cloud.langfuse.com # ---------- ClickStack (HyperDX) ---------- # Entirely optional - the app degrades gracefully with this unset (traces # just don't export, and the "View ClickStack" button hides itself). CLICKSTACK_UI_PORT=8080 CLICKSTACK_OTLP_HTTP_PORT=4318 CLICKSTACK_OTLP_GRPC_PORT=4317 CLICKSTACK_INGESTION_KEY= # Browser-facing URL for the frontend's "View ClickStack" button (traces/ # logs/agent-run panels). Defaults to http://localhost:$CLICKSTACK_UI_PORT # in docker-compose.yml if left unset here - only override if ClickStack is # reachable at a different address than the one your browser uses. CLICKSTACK_URL=http://localhost:8080 # ---------- MCP Server ---------- MCP_SERVER_PORT=8001 # ---------- Backend ---------- BACKEND_PORT=8000 # Optional - enables Claude-generated narrative text in hypotheses/executive # summaries instead of the built-in template fallback. Everything works # without this. ANTHROPIC_API_KEY= ANTHROPIC_MODEL=claude-sonnet-4-6 # Comma-separated browser origins allowed to call this API. Local Vite dev # server by default; add your deployed frontend's origin in production, # e.g. ALLOWED_ORIGINS=http://localhost:5173,https://ch-adnova.vercel.app ALLOWED_ORIGINS=http://localhost:5173 # ---------- Frontend ---------- FRONTEND_PORT=5173 # Only needed for a split deployment (e.g. Vercel) where the frontend isn't # served from behind the same nginx proxy as the backend. Not consumed by # docker-compose.yml/local dev at all - set this on Vercel's own dashboard # instead, pointed at your deployed backend: # VITE_API_BASE_URL=https://ch-adnova-backend.onrender.com/api