-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.env.example
More file actions
65 lines (50 loc) · 3.65 KB
/
Copy path.env.example
File metadata and controls
65 lines (50 loc) · 3.65 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
# ── Required ──────────────────────────────────────────────────────────────────
FS_BACKEND=postgres
# Defaults match docker-compose.local.yml: a NON-SUPERUSER `sqlfs_app` role that
# OWNS the `sqlfs` database. This is required, not cosmetic — migration 0005 uses
# FORCE ROW LEVEL SECURITY, which a superuser silently bypasses. See
# CONTRIBUTING.md → "Local database".
DATABASE_URL=postgres://sqlfs_app:sqlfs_app@localhost:5432/sqlfs
AUTH_SECRET=local-dev-only-secret-change-me-please
# Optional — direct (non-pooler) connection used ONLY by drizzle-kit
# (pnpm db:generate). The server's boot-time migration runner uses DATABASE_URL.
# Defaults to DATABASE_URL when unset.
# DATABASE_DIRECT_URL=postgres://sqlfs_app:sqlfs_app@localhost:5432/sqlfs
# ── Optional: server ──────────────────────────────────────────────────────────
PORT=8080
SESSION_IDLE_MS=600000 # evict idle sessions after 10 min
MAX_CONCURRENT_PYTHON=5 # cap CPython WASM workers (~80 MB each)
MAX_CONCURRENT_JS=5 # cap QuickJS workers (~64 MB each)
# ── Optional: sandbox git/GitHub defaults ─────────────────────────────────────
# Shared deployment-wide GitHub identity exported into network:true sandboxes
# as GITHUB_TOKEN (for curl GitHub API calls), plus GIT_HTTP_USER=x-access-token
# and GIT_HTTP_PASSWORD=<token> for git HTTPS auth. Readable by network-enabled
# sandbox code; use only with trusted agents.
# GITHUB_TOKEN=
# Optional commit identity defaults exported into every sandbox. Per-request env
# overrides these values for that exec.
# GIT_AUTHOR_NAME=
# GIT_AUTHOR_EMAIL=
# GIT_COMMITTER_NAME=
# GIT_COMMITTER_EMAIL=
# ── Optional: Redis (required for multi-replica deployments) ──────────────────
# REDIS_URL=redis://localhost:6379
# REDIS_EXEC_LOCK_LEASE_MS=60000 # distributed exec lock TTL
# REDIS_EXEC_LOCK_RENEW_MS=20000 # heartbeat interval (must be < lease)
# REDIS_EXEC_LOCK_ACQUIRE_TIMEOUT_MS=300000
# REDIS_BLOB_CACHE_ENABLED=true # cache blob bytes in Redis
# REDIS_BLOB_CACHE_TTL_MS=86400000 # blob cache TTL (24h)
# REDIS_BLOB_MAX_BYTES=8388608 # skip Redis for blobs > 8 MB
# REDIS_PATH_SNAPSHOT_ENABLED=false # snapshot pathCache for faster cold starts
# REDIS_PATH_SNAPSHOT_TTL_MS=3600000 # snapshot TTL (1h)
# ── Optional: security ────────────────────────────────────────────────────────
# JUST_BASH_DEFENSE_IN_DEPTH=false # monkey-patch host globals during exec
# JUST_BASH_DEFENSE_AUDIT_MODE=true # log violations instead of throwing
# ── Optional: MCP static-header auth (e.g. LibreChat) ─────────────────────────
# Set MCP_API_KEY to let MCP clients that send fixed headers (and cannot mint a
# per-request JWT) authenticate to /mcp. Owner is derived from the identity
# header below, so each forwarded end-user gets an isolated sandbox.
# MCP_API_KEY=replace-with-a-long-random-secret # ≥16 chars; enables static /mcp auth
# MCP_IDENTITY_HEADER=x-librechat-user-id # header → sandbox owner (sub)
# MCP_DEFAULT_SUB= # shared owner when identity header absent
# MCP_STATIC_TENANT=default # tenant for static-header requests