-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathenv.dev.example
More file actions
201 lines (167 loc) · 8.65 KB
/
env.dev.example
File metadata and controls
201 lines (167 loc) · 8.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
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
# Test environment-specific overrides for env.local.example
# Only define values that differ from local development defaults
# These values will be merged with env.local.example when running: npm run setup:dev
# Stack Configuration - Container name prefix for Portainer deployment
# This ensures containers from different stacks (prod/dev) don't conflict
STACK_NAME=dev
# User/Group IDs for container processes (must match host user for bind mounts)
# For named volumes in Portainer, these can be set to any valid UID/GID
UID=1000
GID=1000
# Domain Configuration - Base domain for Traefik routing
# Traefik will create routes like: chat.dev.ai.faktenforum.org, firecrawl.dev.ai.faktenforum.org
DOMAIN=dev.ai.faktenforum.org
# Client-side domain for LibreChat (used for email verification links, OAuth callbacks, etc.)
DOMAIN_CLIENT=https://chat.dev.ai.faktenforum.org
# OpenRouter - Site URL for HTTP-Referer header
OPENROUTER_SITE_URL=https://chat.dev.ai.faktenforum.org
# Scaleway Generative APIs
SCALEWAY_API_KEY=
# Project ID (required for API access - find it in Scaleway Console)
# If set, SCALEWAY_BASE_URL is automatically constructed during initialization as:
# https://api.scaleway.ai/{project_id}/v1
SCALEWAY_PROJECT_ID=
# Base URL (auto-constructed if SCALEWAY_PROJECT_ID is set, otherwise uses default below)
SCALEWAY_BASE_URL=https://api.scaleway.ai/v1
SCALEWAY_SITE_URL=https://chat.dev.ai.faktenforum.org
SCALEWAY_APP_NAME=LibreChat
# LibreChat - Google endpoint disabled (use OpenRouter for Gemini)
GOOGLE_KEY=
# LibreChat - Environment (local|dev|prod). Dev uses librechat.dev.yaml (only "My Agents", fetch: true, execute_code on).
# LIBRECHAT_ENV=dev
# LibreChat - Internal Service URLs (use STACK_NAME for isolation)
# These URLs are automatically resolved with STACK_NAME prefix from Compose defaults
# Only override here if you need custom values
# LIBRECHAT_MONGO_URI=mongodb://${STACK_NAME:-prod}-mongodb:27017/LibreChat
# LIBRECHAT_MEILI_HOST=http://${STACK_NAME:-prod}-meilisearch:7700
# LIBRECHAT_RAG_API_URL=http://${STACK_NAME:-prod}-rag-api:8000
# LIBRECHAT_SEARXNG_URL=http://${STACK_NAME:-prod}-searxng:8080
# FIRECRAWL_API_URL=http://${STACK_NAME:-prod}-firecrawl-api:3002
# FIRECRAWL_REDIS_URL=redis://${STACK_NAME:-prod}-firecrawl-redis:6379
# FIRECRAWL_PLAYWRIGHT_MICROSERVICE_URL=http://${STACK_NAME:-prod}-firecrawl-playwright:3000/scrape
# FIRECRAWL_POSTGRES_HOST=${STACK_NAME:-prod}-firecrawl-postgres
# YTPTUBE_URL=http://${STACK_NAME:-prod}-ytptube:8081
# Registration - Enabled but restricted to allowed domains (config-init generated)
LIBRECHAT_ALLOW_REGISTRATION=true
# Email Verification - Enabled in test environment
LIBRECHAT_ALLOW_UNVERIFIED_EMAIL_LOGIN=false
# Email - SendGrid SMTP (same as production)
EMAIL_HOST=smtp.sendgrid.net
EMAIL_PORT=587
EMAIL_ENCRYPTION=starttls
EMAIL_USERNAME=apikey
EMAIL_PASSWORD=
EMAIL_FROM=no-reply@faktenforum.org
EMAIL_FROM_NAME=Faktenforum KI Chat
EMAIL_ALLOW_SELFSIGNED=false
# LibreChat - Interface Customization (Test Environment)
# Custom welcome message (supports {{user.name}} placeholder)
LIBRECHAT_CUSTOM_WELCOME=Hi {{user.name}}! Willkommen im KI Chat-Interface von Correctiv mit LibreChat (Testumgebung)
# Privacy Policy URL (external link)
LIBRECHAT_PRIVACY_POLICY_URL=https://correctiv.org/kontakt/datenschutz/
# Terms of Service URL (external link)
LIBRECHAT_TERMS_OF_SERVICE_URL=https://correctiv.org
# SearXNG - Default language for search results
# Options: 'de' (German), 'en' (English), 'all' (all languages), 'auto' (auto-detect)
# Set to 'de' or 'en' to filter out unwanted languages (e.g., Chinese results)
SEARXNG_DEFAULT_LANG=de
# SearXNG - Springer Nature API (optional, for scientific literature search)
# Get your API key from: https://dev.springernature.com/
SPRINGER_NATURE_API_KEY=
# Firecrawl - Worker Configuration
# Reduce worker count to prevent RAM/CPU overload (default: 8, recommended for production: 4)
FIRECRAWL_NUM_WORKERS=4
# MCP Calculator Server (host and container port; default 3012)
MCP_CALCULATOR_PORT=3012
MCP_CALCULATOR_LOG_LEVEL=info
# Optional: API keys for authentication (comma-separated)
# MCP_CALCULATOR_API_KEYS=
# MCP Image Generation Server (host and container port; default 3013)
MCP_IMAGE_GEN_PORT=3013
MCP_IMAGE_GEN_LOG_LEVEL=info
# Uses OPENROUTER_KEY from existing config
# MCP Firecrawl Server
MCP_FIRECRAWL_PORT=3003
MCP_FIRECRAWL_LOG_LEVEL=info
# MCP OpenStreetMap Server
MCP_OPENSTREETMAP_PORT=3004
# MCP Weather Server
MCP_WEATHER_PORT=3005
# MCP Docs (Grounded Docs)
MCP_DOCS_PORT=6280
# Optional: embeddings. See docs/MCP_DOCS.md
MCP_DOCS_OPENAI_API_KEY=${SCALEWAY_API_KEY}
MCP_DOCS_OPENAI_API_BASE=${SCALEWAY_BASE_URL}
MCP_DOCS_EMBEDDING_MODEL=bge-multilingual-gemma2
MCP_DOCS_EMBEDDINGS_VECTOR_DIMENSION=3584
# OpenRouter: openrouter.ai base + key, model e.g. openai/text-embedding-3-small; omit MCP_DOCS_EMBEDDINGS_VECTOR_DIMENSION
# MCP Playwright Server
MCP_PLAYWRIGHT_PORT=3006
# MCP DB Timetable Server
MCP_DB_TIMETABLE_PORT=3007
MCP_DB_TIMETABLE_TRANSPORT_TYPE=sse
MCP_DB_TIMETABLE_CLIENT_ID=your-db-client-id
MCP_DB_TIMETABLE_CLIENT_SECRET=your-db-client-secret
MCP_DB_TIMETABLE_LOG_LEVEL=info
# MCP StackOverflow Server
MCP_STACKOVERFLOW_PORT=3008
# Optional: Stack Overflow API key for increased rate limits (get from https://stackapps.com/apps/oauth/register)
MCP_STACKOVERFLOW_API_KEY=
# MCP npm Search Server
MCP_NPM_SEARCH_PORT=3009
# MCP Chefkoch Server (recipes from chefkoch.de)
MCP_CHEFKOCH_PORT=3014
MCP_CHEFKOCH_LOG_LEVEL=info
# MCP Linux Server (per-user isolated Linux terminal environments)
MCP_LINUX_PORT=3015
MCP_LINUX_LOG_LEVEL=info
MCP_LINUX_WORKER_IDLE_TIMEOUT=1800000
# Max time (ms) for a single worker request (e.g. create_workspace git clone). Default 120000 (2 min).
# MCP_LINUX_WORKER_REQUEST_TIMEOUT_MS=120000
# SSH key: base64-ed25519; use same machine user as MCP_GITHUB_PAT. See docs/GITHUB_MACHINE_USER.md.
MCP_LINUX_GIT_SSH_KEY=
# Default Git author for new/init repos (optional; empty = built-in). See docs/GITHUB_MACHINE_USER.md.
MCP_LINUX_GIT_USER_NAME=
MCP_LINUX_GIT_USER_EMAIL=
# Upload/download base URL (public-facing HTTPS URL for Traefik-exposed routes)
# Domain already differs between stacks (prod: ai.faktenforum.org, dev: dev.ai.faktenforum.org)
MCP_LINUX_UPLOAD_BASE_URL=https://mcp-linux.${DOMAIN}
MCP_LINUX_UPLOAD_MAX_FILE_SIZE_MB=100
MCP_LINUX_UPLOAD_SESSION_TIMEOUT_MIN=15
MCP_LINUX_DOWNLOAD_BASE_URL=https://mcp-linux.${DOMAIN}
MCP_LINUX_DOWNLOAD_SESSION_TIMEOUT_MIN=60
# Status page URL (for LLM to refer users to manage workspaces, sessions, terminals)
MCP_LINUX_STATUS_PAGE_URL=https://mcp-linux.${DOMAIN}/status
# MCP Linux - Code index (semantic code search). Set CODE_INDEX_ENABLED=false to disable.
# Uses OPENROUTER_KEY and OPENROUTER_BASE_URL from existing config; override here if needed.
CODE_INDEX_ENABLED=true
CODE_INDEX_EMBEDDING_PROVIDER=openrouter
CODE_INDEX_EMBEDDING_MODEL=openai/text-embedding-3-small
CODE_INDEX_EMBEDDING_API_KEY=${OPENROUTER_KEY}
CODE_INDEX_EMBEDDING_BASE_URL=${OPENROUTER_BASE_URL}
CODE_INDEX_EMBEDDING_DIMENSIONS=1536
CODE_INDEX_EMBEDDING_BATCH_SIZE=32
# Shared index cache dir (server volume). Workers with the same git remote share one index.
# CODE_INDEX_SHARED_DIR=/app/data/index-cache
# YTPTube / MCP YTPTube - base vars (YTPTUBE_URL, MCP_YTPTUBE_*); override here if needed.
YTPTUBE_API_KEY=
# Domain already differs between stacks (prod: ai.faktenforum.org, dev: dev.ai.faktenforum.org)
YTPTUBE_PUBLIC_DOWNLOAD_BASE_URL=https://ytptube.${DOMAIN}
# YTPTUBE_PROXY= # optional; proxy URL for yt-dlp (e.g. Hetzner IP blocking)
# WEBSHARE_PROXY_USERNAME / WEBSHARE_PROXY_PASSWORD: shared with mcp-youtube-transcript (fixed proxy); used when YTPTUBE_PROXY unset. WEBSHARE_PROXY_PORT optional (default 80).
# MCP YouTube Transcript
MCP_YOUTUBE_TRANSCRIPT_PORT=3011
# GitHub MCP Server (Remote). Use same machine user as MCP_LINUX_GIT_SSH_KEY when both set. See docs/GITHUB_MACHINE_USER.md.
# PAT: Classic prefix ghp_…; Fine-grained prefix github_pat_…. Scopes: repo, read:org; optional: read:user, user:email, write:discussion, read:project
MCP_GITHUB_PAT=
# Mapbox MCP Server (Remote)
# Get your access token from: https://account.mapbox.com/access-tokens/
# Required scopes: MAP:READ (secret), STYLES:READ (public), STYLES:TILES (public)
# Optional scopes: FONTS:READ, VISION:READ, DATASETS:READ
MCP_MAPBOX_ACCESS_TOKEN=
# ─── Checkbot RAG (external MCP) ───────────────────────────────────────────────
# LibreChat connects to an external Checkbot RAG instance. No Checkbot services run in this stack.
CHECKBOT_RAG_MCP_URL=https://checkbot-rag.example.com/mcp
CHECKBOT_RAG_MCP_API_KEY=
CHECKBOT_RAG_API_KEY=
CHECKBOT_RAG_MCP_DOMAIN=checkbot-rag.example.com