# Kiwi — environment variables # Copy to .env and fill in values # API API_PREFIX=/api/v1 CORS_ORIGINS=http://localhost:5173,http://localhost:8509 # Storage DATA_DIR=./data # Database (defaults to DATA_DIR/kiwi.db) # DB_PATH=./data/kiwi.db # Pipeline data directory for downloaded parquets (used by download_datasets.py) # Override to store large datasets on a separate drive or NAS # KIWI_PIPELINE_DATA_DIR=./data/pipeline # CF-core resource coordinator (VRAM lease management) # Set to the coordinator URL when running alongside cf-core orchestration # COORDINATOR_URL=http://localhost:7700 # IP this machine advertises to the coordinator (must be reachable from coordinator host) # CF_ORCH_ADVERTISE_HOST=10.1.10.71 # CF-core hosted coordinator (managed cloud GPU inference — Paid+ tier) # Set CF_ORCH_URL to use a hosted cf-orch coordinator instead of self-hosting. # CF_LICENSE_KEY is read automatically by CFOrchClient for bearer auth. # CF_ORCH_URL=https://orch.circuitforge.tech # CF_LICENSE_KEY=CFG-KIWI-xxxx-xxxx-xxxx # LLM backend — env-var auto-config (no llm.yaml needed for bare-metal users) # LLMRouter checks these in priority order: # 1. Anthropic cloud — set ANTHROPIC_API_KEY # 2. OpenAI cloud — set OPENAI_API_KEY # 3. Local Ollama — set OLLAMA_HOST (+ optionally OLLAMA_MODEL) # All three are optional; leave unset to rely on a local llm.yaml instead. # ANTHROPIC_API_KEY=sk-ant-... # OPENAI_API_KEY=sk-... # OLLAMA_HOST=http://localhost:11434 # OLLAMA_MODEL=llama3.2 # Processing USE_GPU=true GPU_MEMORY_LIMIT=6144 MAX_CONCURRENT_JOBS=4 MIN_QUALITY_SCORE=50.0 # Feature flags ENABLE_OCR=false # Runtime DEBUG=false CLOUD_MODE=false DEMO_MODE=false # Cloud mode (set in compose.cloud.yml; also set here for reference) # CLOUD_DATA_ROOT=/devl/kiwi-cloud-data # KIWI_DB=data/kiwi.db # local-mode DB path override # DEV ONLY: bypass JWT auth for these IPs/CIDRs (LAN testing without Caddy in the path). # NEVER set in production. # IMPORTANT: Docker port mapping NATs source IPs to the bridge gateway. When hitting # localhost:8515 (host → Docker → nginx → API), nginx sees 192.168.80.1, not 127.0.0.1. # Include the Docker bridge CIDR to allow localhost and LAN access through nginx. # Run: docker network inspect kiwi-cloud_kiwi-cloud-net | grep Subnet # Example: CLOUD_AUTH_BYPASS_IPS=10.1.10.0/24,127.0.0.1,::1,192.168.80.0/20 # CLOUD_AUTH_BYPASS_IPS= # Heimdall license server (required for cloud tier resolution) # HEIMDALL_URL=https://license.circuitforge.tech # HEIMDALL_ADMIN_TOKEN= # Directus JWT (must match cf-directus SECRET env var) # DIRECTUS_JWT_SECRET= # In-app feedback → Forgejo issue creation # FORGEJO_API_TOKEN= # FORGEJO_REPO=Circuit-Forge/kiwi # FORGEJO_API_URL=https://git.opensourcesolarpunk.com/api/v1