Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
85 lines (80 loc) · 3.32 KB
/
Copy path.env.example
File metadata and controls
85 lines (80 loc) · 3.32 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
NEXT_PUBLIC_RELAY_APP_URL=http://localhost:3000
NEXT_PUBLIC_POSTHOG_KEY=
NEXT_PUBLIC_POSTHOG_HOST=https://t.your-domain.com
POSTHOG_API_KEY=
POSTHOG_PROJECT_ID=
DATABASE_URL=
LOCAL_DATABASE_URL=postgres://relay:relay@127.0.0.1:54329/relay_local
DATABASE_URL_UNPOOLED=
RELAY_PROD_DATABASE_URL=
AUTH_PROVIDER=local
LOCAL_AUTH_SESSION_SECRET=
GEMINI_API_KEY=
RELAY_INTERNAL_API_SECRET=
RELAY_BROWSER_HANDOFF_SECRET=
RELAY_CONTENT_ENCRYPTION_KEY=
# Project Sources.
# Use RELAY_SOURCE_STORAGE_MODE=memory only for local parser/UI tests that should not write blobs.
# Leave it empty, or set it to r2, for deployed R2-backed source storage.
# RELAY_SOURCE_ENCRYPTION_KEY protects raw source blobs with app-layer envelope encryption.
# If omitted, Relay falls back to RELAY_CONTENT_ENCRYPTION_KEY.
RELAY_SOURCE_ENCRYPTION_KEY=
RELAY_SOURCE_STORAGE_MODE=
R2_ENDPOINT=
R2_ACCESS_KEY_ID=
R2_SECRET_ACCESS_KEY=
R2_BUCKET=
R2_REGION=auto
NEON_AUTH_BASE_URL=
NEXT_PUBLIC_NEON_AUTH_URL=
NEON_AUTH_COOKIE_SECRET=
PLASMO_PUBLIC_RELAY_API_BASE=http://localhost:3000
PLASMO_PUBLIC_POSTHOG_KEY=
PLASMO_PUBLIC_POSTHOG_HOST=https://t.your-domain.com
PLASMO_PUBLIC_RELAY_AUTH_PROVIDER=local
PLASMO_PUBLIC_CRX_GOOGLE_CLIENT_ID=
CRX_PUBLIC_KEY=
# Chrome extension ID — used by the web app to ping the installed extension
# after billing state changes so the side panel refreshes immediately.
NEXT_PUBLIC_EXTENSION_ID=
RELAY_POSTHOG_KEY=
RELAY_POSTHOG_HOST=https://t.your-domain.com
# Telegram integration (Settings → Integrations + /api/integrations/telegram/webhook)
TELEGRAM_BOT_TOKEN=
TELEGRAM_BOT_USERNAME=
TELEGRAM_WEBHOOK_SECRET=
# Polar billing (set POLAR_SANDBOX=true for sandbox.polar.sh)
POLAR_ACCESS_TOKEN=
POLAR_WEBHOOK_SECRET=
POLAR_PRODUCT_ID_STARTER_MONTHLY=
POLAR_PRODUCT_ID_STARTER_ANNUAL=
POLAR_PRODUCT_ID_PRO_MONTHLY=
POLAR_PRODUCT_ID_PRO_ANNUAL=
POLAR_SANDBOX=false
# Email (Resend)
RESEND_API_KEY=
# Memory v2 — async pipeline (cron route /api/cron/memory-pipeline)
# CRON_SECRET: required in production. Cron returns 401 without Authorization: Bearer.
CRON_SECRET=
# WORKER_DATABASE_URL: optional. When set, the cron route uses this connection string
# (so the worker can run as a dedicated relay_worker role separate from the web app).
# Falls back to DATABASE_URL when unset — current behavior preserved.
WORKER_DATABASE_URL=
# RELAY_MEMORY_PIPELINE_FULL: when "true", the worker calls Gemini extractors for
# entities + observations. Default false → embed-only (safe first deploy).
RELAY_MEMORY_PIPELINE_FULL=false
# RELAY_EMBED_CANONICAL_ENTITIES: optional graph-adjacent vectors. Default false;
# memory_items, observations, and source_chunks remain embedded for recall quality.
RELAY_EMBED_CANONICAL_ENTITIES=false
# RELAY_PERSONAL_MEMORY_ITEM_CAP: active personal facts retained before the
# oldest non-pinned overflow is archived.
RELAY_PERSONAL_MEMORY_ITEM_CAP=500
# RELAY_HYGIENE_DRY_RUN: when "true" (default), hygiene logs proposed transitions
# without writing. Flip to "false" after a clean dry-run soak.
RELAY_HYGIENE_DRY_RUN=true
# RELAY_PIPELINE_DAILY_USD_CAP: in-process circuit-breaker for extractor spend.
# Worker skips extractor calls when the next call would exceed the cap. Default 5.
RELAY_PIPELINE_DAILY_USD_CAP=5
# Optional Gemini model overrides for the extractor path (defaults to Flash-Lite).
GEMINI_MODEL_EXTRACTION_PRIMARY=
GEMINI_MODEL_EXTRACTION_FALLBACK=