-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
111 lines (96 loc) · 6.71 KB
/
Copy path.env.example
File metadata and controls
111 lines (96 loc) · 6.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# ── Required ──────────────────────────────────────────────────────────────────
# DATABASE_URL is OPTIONAL for local (PGLite, file-backed embedded datastore) —
# leave it unset to run embedded. REQUIRED for postgres/cloud deployments.
DATABASE_URL=postgresql://localhost:5432/burnless
# --- Datastore driver (S2) ---
# Local/self-host: leave DATABASE_URL unset to use embedded PGLite (file-backed).
# Cloud/self-host-with-Postgres: set DATABASE_URL to a postgres(ql):// URL.
# BURNLESS_DB_DRIVER explicitly forces the driver (overrides the URL inference):
# BURNLESS_DB_DRIVER=pglite | postgres
# BURNLESS_DATA_DIR: PGLite data directory (default: ~/.burnless/data)
# BURNLESS_DATA_DIR=
# BURNLESS_AUTO_MIGRATE: run migrations on boot. Default: true for PGLite, false for postgres.
# BURNLESS_AUTO_MIGRATE=
# BURNLESS_MIGRATIONS_DIR: override the migrations folder (needed only for bundled/standalone builds where the default source-relative path doesn't resolve; e.g. /app/packages/db/drizzle). Leave unset for source/dev.
# BURNLESS_MIGRATIONS_DIR=
AUTH_SECRET=your-secret-here # generate with: openssl rand -base64 32
# ── App URL ───────────────────────────────────────────────────────────────────
# Set to your production domain. Used for auth callbacks, email links, CSRF.
# NEXT_PUBLIC_APP_URL=https://app.burnless.com
# NEXTAUTH_URL=https://app.burnless.com
# ── Auth (optional — social login) ───────────────────────────────────────────
AUTH_GITHUB_ID=
AUTH_GITHUB_SECRET=
AUTH_GOOGLE_ID=
AUTH_GOOGLE_SECRET=
# ── AI Provider ──────────────────────────────────────────────────────────────
# AI_PROVIDER=anthropic # anthropic | openai | openrouter | ollama
# AI_API_KEY= # works with any cloud provider
# AI_MODEL= # model override (e.g. claude-sonnet-4-20250514)
# AI_BASE_URL= # custom endpoint URL
ANTHROPIC_API_KEY= # legacy: direct Anthropic key
# OPENAI_API_KEY= # legacy: direct OpenAI key
# OPENROUTER_API_KEY= # OpenRouter multi-provider key
# ── AI Provider: Ollama (local LLM — no API key needed) ──────────────────────
# AI_PROVIDER=ollama
# OLLAMA_BASE_URL=http://localhost:11434/v1
# AI_MODEL_OLLAMA_FAST=gemma3:12b
# AI_MODEL_OLLAMA_STANDARD=gemma3:12b
# AI_MODEL_OLLAMA_DEEP=gemma3:12b
# ── AI runtime limits (optional; env-only, set via `burnless config set <KEY> <VALUE>`) ──
# Max tool round-trips per chat turn before forcing a text answer.
# BURNLESS_AI_MAX_TOOL_ITERATIONS=25
# Per-completion output-token cap. 0 = no artificial cap (model decides).
# BURNLESS_AI_MAX_OUTPUT_TOKENS=0
# Convergence guard: after this many IDENTICAL tool calls in a turn, steer the model.
# BURNLESS_AI_REPEAT_SOFT_LIMIT=3
# Convergence guard: hard-stop the turn at this many identical calls.
# BURNLESS_AI_REPEAT_HARD_LIMIT=5
# Onboarding research agent: max loop iterations (single overall bound).
# BURNLESS_AI_ONBOARDING_MAX_LOOPS=50
# ── Embeddings (for semantic search via pgvector) ────────────────────────────
# EMBEDDING_PROVIDER=ollama # ollama | openai | openrouter | none
# EMBEDDING_MODEL=nomic-embed-text # ollama: nomic-embed-text, openai: text-embedding-3-small
# EMBEDDING_DIMENSIONS=768 # nomic-embed-text: 768, text-embedding-3-small: 1536
# ── Web Search (AI tool for real-time web lookups) ───────────────────────────
# Default: duckduckgo (keyless, no Docker). Opt-in: tavily (production).
# WEB_SEARCH_PROVIDER=duckduckgo # duckduckgo (default, keyless) | tavily
# TAVILY_API_KEY= # for production web search
# ── Crawl (optional) ─────────────────────────────────────────────────────────
# Default: direct-fetch (native, no service/key needed).
# CRAWL_PROVIDER=direct-fetch # direct-fetch (default) or future: firecrawl, scrapingbee
# ── Email ─────────────────────────────────────────────────────────────────────
# EMAIL_PROVIDER=resend # resend | smtp | console
# RESEND_API_KEY= # for production (Resend)
# SMTP_HOST=localhost # for local dev (Mailpit)
# SMTP_PORT=1025
# MAILPIT_API_PORT=8025
# EMAIL_FROM=Burnless <noreply@burnless.app>
# ── Redis (optional — caching, rate limiting) ────────────────────────────────
# REDIS_URL=redis://localhost:6380
# ── Billing (optional — disabled without keys) ──────────────────────────────
# STRIPE_SECRET_KEY=
# STRIPE_WEBHOOK_SECRET=
# STRIPE_PRO_PRICE_ID=
# STRIPE_TEAM_PRICE_ID=
# RAZORPAY_KEY_ID=
# RAZORPAY_KEY_SECRET=
# RAZORPAY_WEBHOOK_SECRET=
# RAZORPAY_PRO_PLAN_ID=
# RAZORPAY_TEAM_PLAN_ID=
# ── Monitoring (optional) ────────────────────────────────────────────────────
# NEXT_PUBLIC_SENTRY_DSN=
# NEXT_PUBLIC_POSTHOG_KEY=
# NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com
# ── Security ─────────────────────────────────────────────────────────────────
# ALLOWED_ORIGINS=https://app.burnless.com
# CRON_SECRET= # protects cron endpoints (Vercel + local worker)
# DISABLE_CRON_AUTH=true # set ONLY in local dev to skip CRON_SECRET check
# ── MCP (Model Context Protocol) ─────────────────────────────────────────────
# Required to store MCP credentials (and future encrypted secrets).
# Generate: openssl rand -base64 32
SECRETS_ENCRYPTION_KEY=
# "cloud" (hosted SaaS — stdio MCP disabled) | "self_host" (default)
BURNLESS_DEPLOYMENT=self_host
# Self-host operators may disable local stdio MCP servers (default: true)
BURNLESS_ALLOW_STDIO_MCP=true