spb/autoscholar
Public
1# AutoScholar.ai — environment reference. No real values here. Copy to .env (never committed).23# --- Control plane (apps/web + services/scheduler) ---4NODE_ENV=development # development | production | test5APP_BASE_URL=http://localhost:8470 # canonical public base URL (https://www.autoscholar.ai in production)6PORT=8470 # web port7DATABASE_URL=postgresql://localhost:5432/autoscholar # PostgreSQL 17 connection string8ARTIFACT_ROOT=./data/artifacts # filesystem artifact store root (private); public promotions live under <root>/public9SESSION_SECRET= # >=32 random bytes, hex; signs session cookies and CSRF tokens10ADMIN_BOOTSTRAP_USERNAME=admin # used only when admin_users is empty11ADMIN_BOOTSTRAP_PASSWORD= # used only when admin_users is empty; forced rotation at first login; never logged12WORKER_ENROLLMENT_SECRET= # one-time secret a new MacLustr worker presents to enroll; rotate after use13INTERNAL_API_ALLOWED_CIDRS=127.0.0.1/32,192.168.2.0/24 # networks allowed to reach /api/internal/*14TRUST_PROXY=0 # 1 behind the MacLustr Tunnel (Caddy sets X-Forwarded-For)15LOG_LEVEL=info16SCHEDULER_TICK_MS=500017LEASE_TTL_SECONDS=12018DEFAULT_MAX_BUDGET_USD=2519DEFAULT_MAX_RUNTIME_MINUTES=24020PUBLISHING_ENABLED=1 # emergency switch: 0 halts all automatic publication21DISPATCH_ENABLED=1 # emergency switch: 0 pauses all new dispatches22STAGING_MODE=0 # 1 = staging/demo content allowed, site marked noindex2324# --- Worker (services/worker, runs as the dedicated low-privilege user on a MacLustr node) ---25CONTROL_PLANE_URL=http://192.168.2.85:8470 # LAN address of the control plane (never the public domain)26WORKER_NAME= # e.g. M4M64c27WORKER_TOKEN= # issued at enrollment (or WORKER_ENROLLMENT_SECRET for first enrollment)28WORKER_ROOT=/var/autoscholar # run workspaces live in <root>/runs/<run-id>29WORKER_MAX_CONCURRENT=130ANTHROPIC_API_KEY= # server-side only; research runner subprocess env; never sent to the browser31ANTHROPIC_MODEL=claude-opus-5-5 # default research model (overridable per run)32RESEARCH_ALLOWED_DOMAINS= # extra egress hostnames allowed inside the sandbox (comma separated)33TECTONIC_BIN=/opt/homebrew/bin/tectonic34WORKER_MODE=real # real | simulated (simulated is for tests only; results are flagged synthetic)35