-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.env.example
More file actions
70 lines (63 loc) · 3.27 KB
/
Copy path.env.example
File metadata and controls
70 lines (63 loc) · 3.27 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
# ── Database ──
# Postgres with the pgvector extension. docker-compose provides this.
DATABASE_URL=postgres://reqsolve:reqsolve@localhost:5432/reqsolve
# ── App ──
NODE_ENV=development
# Public origin, used for links in emails / password resets.
APP_URL=http://localhost:3000
# ── AI (optional) ──
# The AI provider is normally chosen in-app under Settings → AI settings: pick one
# provider (Anthropic, OpenAI, Gemini, Mistral, Azure, Groq, xAI, DeepSeek,
# OpenRouter, Together, Ollama, a custom OpenAI-compatible endpoint, or Microsoft
# 365 Copilot) and enter one API key — it powers every AI feature. The vars below
# are only fallbacks when nothing is configured in-app.
#
# Leave ANTHROPIC_API_KEY empty to run without AI. All AI features then show a
# clear "AI not configured" state; everything else works fully.
ANTHROPIC_API_KEY=
# Fallback model + OpenAI-compatible base URL when not set in-app (empty = use the
# selected provider's default model / documented endpoint).
AI_MODEL=
AI_BASE_URL=
# Per-task models for the native Anthropic path (sensible defaults shown).
AI_MODEL_FAST=claude-haiku-4-5-20251001
AI_MODEL_SMART=claude-sonnet-4-6
# Embeddings: Ollama BGE-M3 (1024-dim, multilingual) — the only provider.
# The bundled Ollama service (docker compose) serves this; point elsewhere here
# if you host it separately. After changing the model, run `npm run db:reembed`.
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_EMBED_MODEL=bge-m3
# ── Email channel (optional) ──
# Mailboxes are connected in the app under Admin · Email (any IMAP/SMTP provider,
# or "Connect Gmail" via OAuth). These env vars are only the server-level settings.
#
# Auto-poll interval for inbound mail, in seconds (minimum 15; 0/empty = off, use
# the "Sync now" button instead). The poller starts on first app use.
EMAIL_POLL_SECONDS=60
#
# Gmail sign-in (needed for "Connect Gmail" — both the HTTPS Gmail API transport
# and the IMAP-over-OAuth option). Create an OAuth 2.0 Client (type: Web
# application) in Google Cloud Console and add the redirect URI:
# ${APP_URL}/api/email/oauth/callback
# Tip: mark the OAuth app "Internal" in your Workspace to skip Google verification.
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
# ── Attachments ──
# Where uploaded files are stored (local disk). Defaults to ./data/uploads.
UPLOADS_DIR=
# Max upload size per file, in MB.
ATTACHMENT_MAX_MB=25
# ── Secret encryption (REQUIRED to store any secret) ──
# Encrypts mail passwords, OAuth tokens and the Anthropic API key at rest
# (AES-256-GCM). It is REQUIRED before you can save any of those secrets: the
# app refuses to store them in plaintext and returns a clear error until this is
# set. Generate one with: openssl rand -base64 32
# Keep it stable — rotating it makes previously stored secrets unreadable.
ENCRYPTION_KEY=
# ── Rate-limit proxy trust (security) ──
# Number of reverse proxies in front of ReqSolve. Rate limiting reads the client IP
# this many hops from the RIGHT of X-Forwarded-For, so a client can't spoof the
# left-most entry to bypass login/reset/web-form throttles. Default 1 (one proxy,
# e.g. nginx/Traefik). Set 0 ONLY if the app is exposed directly (then XFF is not
# trusted). Run ReqSolve behind a proxy that overwrites X-Forwarded-For.
TRUSTED_PROXY_HOPS=1