-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
88 lines (75 loc) · 4.05 KB
/
Copy path.env.example
File metadata and controls
88 lines (75 loc) · 4.05 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
# ============================================================
# MosBot API — Environment Variables
# Copy this file to .env and fill in the values.
# Never commit .env to version control.
# ============================================================
# Server
PORT=3000
NODE_ENV=development
# Instance timezone (IANA format, e.g. America/New_York, Asia/Singapore)
# Affects cron schedules and time displays. Defaults to UTC.
TIMEZONE=UTC
# ── Database ─────────────────────────────────────────────────
DB_HOST=localhost
DB_PORT=5432
DB_NAME=mosbot
DB_USER=mosbot
DB_PASSWORD=change-me-use-a-strong-password
# Test database (optional — used for integration tests when set)
# TEST_DB_HOST=localhost
# TEST_DB_PORT=5432
# TEST_DB_NAME=mosbot_test
# TEST_DB_USER=mosbot
# TEST_DB_PASSWORD=change-me
# ── Auth ─────────────────────────────────────────────────────
# Generate with: node -e "console.log(require('crypto').randomBytes(48).toString('hex'))"
JWT_SECRET=replace-with-a-long-random-secret
JWT_EXPIRES_IN=7d
# ── CORS ─────────────────────────────────────────────────────
# Must be the exact origin of the dashboard (no trailing slash).
# Cannot be "*" when credentials are enabled.
CORS_ORIGIN=http://localhost:5173
# ── Bootstrap (first run only) ───────────────────────────────
# Set these to create the first owner account on a fresh database.
# Unset (or remove) after the first successful login.
BOOTSTRAP_OWNER_EMAIL=admin@example.com
BOOTSTRAP_OWNER_PASSWORD=replace-with-strong-password-min-12-chars
BOOTSTRAP_OWNER_NAME=Admin
# ── Archive job ──────────────────────────────────────────────
ENABLE_ARCHIVER=true
ARCHIVE_CRON=0 3 * * *
ARCHIVE_AFTER_DAYS=7
ARCHIVE_ON_STARTUP=false
# ── OpenClaw Workspace Integration (optional) ────────────────
# Local dev: kubectl port-forward -n <namespace> svc/openclaw-workspace 18780:18780
# Production: http://openclaw-workspace.<namespace>.svc.cluster.local:18780
OPENCLAW_WORKSPACE_URL=http://localhost:18780
OPENCLAW_WORKSPACE_TOKEN=your-workspace-token
# Optional: additional remap prefixes (comma-separated).
# Built-in prefixes are always active:
# /home/node/.openclaw/workspace, ~/.openclaw/workspace, /home/node/.openclaw, ~/.openclaw
OPENCLAW_PATH_REMAP_PREFIXES=
# ── OpenClaw Gateway Integration (optional) ──────────────────
# Local dev: kubectl port-forward -n <namespace> svc/openclaw 18789:18789
# Production: http://openclaw.<namespace>.svc.cluster.local:18789
OPENCLAW_GATEWAY_URL=http://localhost:18789
OPENCLAW_GATEWAY_TOKEN=your-gateway-token
# OPENCLAW_GATEWAY_TIMEOUT_MS=15000
# ── OpenClaw Device Auth (optional, required for full session access) ─
# Generated by the OpenClaw pairing flow. See docs/openclaw/README.md.
# OPENCLAW_DEVICE_ID=your-device-id
# OPENCLAW_DEVICE_PUBLIC_KEY=your-public-key-base64url
# OPENCLAW_DEVICE_PRIVATE_KEY=your-private-key-base64url
# OPENCLAW_DEVICE_TOKEN=your-device-token
# ── Subagent data retention ───────────────────────────────────
SUBAGENT_RETENTION_DAYS=30
ACTIVITY_LOG_RETENTION_DAYS=7
RETENTION_ARCHIVE_ENABLED=true
ENABLE_SUBAGENT_RETENTION_PURGE=true
SUBAGENT_RETENTION_CRON=0 3 * * *
SUBAGENT_RETENTION_ON_STARTUP=false
# ── OpenRouter model pricing (optional) ──────────────────────
# Used to estimate session cost for models without built-in pricing data.
# The public endpoint works without a key; a key may give more accurate data.
# OPENROUTER_API_KEY=sk-or-...
# MODEL_PRICING_REFRESH_INTERVAL_MS=604800000