पर्यावरण चर
वर्तमान बैकएंड, फ़्रंटएंड और रखरखाव स्क्रिप्ट के ऑपरेटर-उन्मुख चर। केवल परीक्षण canary जानबूझकर छोड़े गए हैं।
बैकएंड सर्वर
| चर | डिफ़ॉल्ट | उद्देश्य |
|---|---|---|
NODE_ENV | development | रनटाइम मोड |
PORT | dev में 3001, production में 8080 | HTTP पोर्ट |
TRUST_PROXY | unset (Helm में 0) | सटीक विश्वसनीय proxy hop count |
CORS_ORIGIN | स्थानीय dev origins | अनुमत ब्राउज़र origins comma-separated |
SERVE_FRONTEND | unset | true built फ़्रंटएंड serve |
DOCKER_ENV | unset | true Docker behavior |
DATA_DIR | backend/data; CLI में ~/.libre-webui | स्थायी डेटा डायरेक्टरी |
PLATFORM_PREFLIGHT_TMP_DIR | backend/temp/preflight; CLI उपयोगकर्ता cache | DB/WAL scratch copy |
PLUGIN_UPLOAD_TEMP_DIR | OS temp में libre-webui-plugin-uploads | प्लगइन अपलोड scratch |
PLUGINS_DIR | $DATA_DIR/plugins | Writable प्लगइन डायरेक्टरी |
BASE_URL | http://localhost:3001 | OAuth callback डिफ़ॉल्ट |
LOG_LEVEL | info (tests warn) | बैकएंड लॉग level |
LOG_FORMAT | text | json structured one-line लॉग |
OTEL_EXPORTER_OTLP_ENDPOINT | unset | Opt-in OTLP/HTTP JSON export |
OTEL_EXPORTER_OTLP_HEADERS | unset | Collector key=value headers |
OTEL_SERVICE_NAME | libre-webui | service.name |
WEBUI_HOST | loopback; Docker 0.0.0.0 | Listen address |
OPEN_BROWSER | फ़्रंटएंड serving पर true | false ब्राउज़र launch suppress |
FULL_DOCUMENT_CONTEXT_MAX_TOKENS | 32000 | पूर्ण-दस्तावेज़ guard 1000–2000000 |
GALLERY_RETENTION_DAYS | unset, forever | पुराना gallery media हटाएँ |
RECOVERY_DRILL_INTERVAL_HOURS | unset, बंद | Solo recovery drill हर N घंटे |
RECOVERY_DRILL_HISTORY | 60 | Retained drill प्रविष्टियाँ |
स्रोत launches सापेक्ष DATA_DIR, PLUGINS_DIR, PLATFORM_PREFLIGHT_TMP_DIR बैकएंड डायरेक्टरी से resolve। DATA_DIR=./data → backend/data, पुराना DATA_DIR=./backend/data → backend/backend/data; केवल stopped backup/migration में बदलें। दोनों जगह स्थिति पर fail closed।
npx, वैश्विक npm, Homebrew ~/.libre-webui; स्पष्ट सापेक्ष caller डायरेक्टरी से पूर्ण। Cache macOS ~/Library/Caches/libre-webui, Windows %LOCALAPPDATA%\libre-webui, अन्य ${XDG_CACHE_HOME:-~/.cache}/libre-webui; Homebrew var/libre-webui/preflight, Docker/Helm /app/backend/data, /app/backend/temp/preflight। DB+WAL न समाए तो PLATFORM_PREFLIGHT_TMP_DIR।
Platform Foundation
solo: SQLite, स्थानीय एन्क्रिप्टेड blob/embedded vector, स्थानीय coordination, embedded worker। team: PostgreSQL, निजी S3, PGVector, Redis, बाहरी worker। Partial mix reject।
| चर | डिफ़ॉल्ट | उद्देश्य |
|---|---|---|
LIBRE_PLATFORM_MODE | solo | solo/team |
DATABASE_BACKEND | sqlite | sqlite/postgres |
DATABASE_URL | unset | PostgreSQL URL |
DATABASE_SSL_MODE | verify-full | disable, require, verify-full |
POSTGRES_MIGRATION_MODE | apply | Apply या केवल-पढ़ने validate |
POSTGRES_POOL_MAX | 10 | Connections प्रति प्रक्रिया 1–100 |
POSTGRES_CONNECT_TIMEOUT_MS | 5000 | 1–60000 ms |
POSTGRES_IDLE_TIMEOUT_MS | 30000 | 1–600000 ms |
POSTGRES_STATEMENT_TIMEOUT_MS | 30000 | 1–600000 ms |
POSTGRES_MIGRATION_LOCK_TIMEOUT_MS | 60000 | 1–600000 ms |
BLOB_STORE_BACKEND | local | एन्क्रिप्टेड local/निजी s3 |
VECTOR_STORE_BACKEND | SQLite में embedded | embedded/pgvector |
COORDINATION_BACKEND | solo local, team redis | Coordination |
REDIS_URL | unset | redis:/rediss: URL |
REDIS_KEY_PREFIX | libre | 1–64 namespace |
REDIS_CONNECT_TIMEOUT_MS | 5000 | Max 60 seconds |
JOB_WORKER_MODE | solo embedded, team external | Worker location |
RESOURCE_LEASE_TTL_MS | 30000 | 5000–300000 lease TTL |
JOB_WORKER_CONCURRENCY | 4 | 1–32 jobs |
CHAT_STREAM_EVENT_RETENTION_HOURS | 24 | Chat खंड घंटे |
PLATFORM_EVENT_RETENTION_DAYS | 30 | घटना दिन |
PLATFORM_JOB_RETENTION_DAYS | 30 | Finished job दिन |
LIBRE_SKIP_STARTUP_INTEGRITY_SCAN | unset | 1 skip next पुराना स्कैन |
STORAGE_ENCRYPTION_KEYS | unset | legacy = ENCRYPTION_KEY वाली JSON मैप |
STORAGE_ENCRYPTION_ACTIVE_KEY_ID | unset | सक्रिय blob/vector कुंजी |
BLOB_QUOTA_BYTES_PER_USER | 10737418240 | खुला blob bytes प्रति मालिक |
BLOB_QUOTA_RESERVATION_TTL_MS | 3600000 | Abandoned reservation min 60000 ms |
S3_BUCKET | unset | निजी bucket |
S3_REGION | unset | Region |
S3_ENDPOINT | प्रदाता डिफ़ॉल्ट | वैकल्पिक MinIO HTTP(S) एंडपॉइंट |
S3_ACCESS_KEY_ID | SDK chain | Access कुंजी |
S3_SECRET_ACCESS_KEY | SDK chain | स्पष्ट कुंजी के साथ आवश्यक |
S3_SESSION_TOKEN | unset | Session टोकन |
S3_FORCE_PATH_STYLE | false | true पथ style |
S3_BLOB_PREFIX | libre/blobs | Opaque prefix |
Map absent पर ENCRYPTION_KEY as legacy, फिर ${DATA_DIR}/.encryption_key बिना जनरेट/modify। स्पष्ट config/फ़ाइल match। Versioned map पर पुराना कुंजी सटीक legacy रखें जब तक objects/vectors rewrite/rewrap/verify। Conflicts, असुरक्षित permissions, symlinks, अनुपस्थित keys fail closed।
Redis coordination है, canonical persistence नहीं। Team साझा admission HTTP/WebSocket/STT/TTS/ऑडियो/import/terminal आर-पार replicas; विफलता 503/abort, नहीं स्थानीय वैकल्पिक। Platform Foundation।
Team Compose/Helm सभी selectors/tuning app/worker को। Helm non-रहस्य env, secrets secrets.redisUrl, secrets.databaseUrl, secrets.storageEncryptionKeys। At least (replicaCount + worker.replicaCount) * POSTGRES_POOL_MAX plus headroom। दूरस्थ PostgreSQL DATABASE_SSL_MODE=verify-full, निजी Compose disable; सामान्य secrets.jwtSecret। S3 ciphertext।
Archives pool/timeouts, Redis, blob quotas, selectors, S3 addressing signed एन्क्रिप्टेड config में। App/worker समान OLLAMA_BASE_URL, OLLAMA_TIMEOUT, OLLAMA_LONG_OPERATION_TIMEOUT, OLLAMA_MAX_CONTEXT; पूर्ण positive decimals केवल, 300000ms/exponent/hex/बाहर-of-range reject।
Helm TRUST_PROXY सटीक 0–16, not true। PostgreSQL सटीक schema, Recreate, नहीं mixed/zero-downtime। सक्रिय team requires worker.replicaCount >= 1।
निजी Backup Helper
deploy/private/libre-webui-backup पढ़ता है:
| चर | डिफ़ॉल्ट | उद्देश्य |
|---|---|---|
LIBRE_WEBUI_STACK_DIR | /opt/libre-webui | Compose dir |
LIBRE_WEBUI_BACKUP_DIR | /var/backups/libre-webui | Backup dir |
LIBRE_WEBUI_BACKUP_RETENTION_DAYS | 14 | Retention |
LIBRE_WEBUI_CONTAINER_NAME | libre-webui | Container |
LIBRE_WEBUI_BACKUP_KEY_DIR | /etc/libre-webui/backup-keys | Keys |
LIBRE_WEBUI_RESTORE_IMAGE | required | Restore इमेज |
LIBRE_WEBUI_RESTORE_CONFIG_DIR | /etc/libre-webui/restored | Restored config |
systemd वैकल्पिक /etc/libre-webui/backup.env पढ़ता है, जिसका मालिक root और मोड 0600 होना चाहिए; अनुप्रयोग का .env नहीं पढ़ा जाता। कस्टम डायरेक्टरी को सेवा के अतिरिक्त कॉन्फ़िगरेशन में सटीक ReadWritePaths= चाहिए। निजी डिप्लॉयमेंट देखें।
प्रमाणीकरण और सुरक्षा
MFA मोड optional या required। Web Push contact डिफ़ॉल्ट mailto:admin@localhost; VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, VAPID_SUBJECT push; TURNSTILE_SITE_KEY, TURNSTILE_SECRET_KEY, TURNSTILE_EXPECTED_HOSTNAME Turnstile।
ENABLE_SIGNUP डिफ़ॉल्ट false, JWT_SECRET, JWT_EXPIRES_IN 7d, ENCRYPTION_KEY, DEBUG_ENCRYPTION, Turnstile, MFA_REQUIRED_MODE, WEBAUTHN_RP_ID, VAPID। ENABLE_SIGNUP=false पहला व्यवस्थापक देता। JWT sid bound। AUDIT_RETENTION_DAYS 180। TLS require, tests warn।
Generic OIDC SSO
स्थिर उपयोगकर्ता ID sub, groups डिफ़ॉल्ट groups claim। OIDC_GROUP_CLAIM, OIDC_SYNC_GROUPS; OIDC_CALLBACK_URL, OIDC_ALLOWED_EMAIL_DOMAINS, OIDC_ADMIN_GROUPS।
OIDC_ISSUER_URL में <issuer>/.well-known/openid-configuration, साथ में OIDC_CLIENT_ID और OIDC_CLIENT_SECRET आवश्यक हैं; OIDC_DISPLAY_NAME Single Sign-On, OIDC_SCOPES openid profile email। Origin का मेल होना चाहिए।
WebSocket: CHAT_WS_MAX_PAYLOAD_BYTES 10 MiB, CHAT_WS_MAX_MESSAGES_PER_MINUTE 120, CHAT_WS_MAX_ACTIVE_GENERATIONS_PER_USER 4, CHAT_WS_MAX_CONNECTIONS_PER_USER 5, WEBSOCKET_TICKET_TTL_MS 30000। एकबारगी ticket, Origin जाँच।
OAuth
GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, GITHUB_CALLBACK_URL, HUGGINGFACE_CLIENT_ID, HUGGINGFACE_CLIENT_SECRET, HUGGINGFACE_CALLBACK_URL; वैकल्पिक BASE_URL।
Ollama
OLLAMA_BASE_URL http://localhost:11434, OLLAMA_TIMEOUT 300000, OLLAMA_LONG_OPERATION_TIMEOUT 900000, OLLAMA_MAX_CONTEXT 32768।
Web खोज
SEARXNG_URL एंडपॉइंट prefill; व्यवस्थापक separately enable।
Libre Claw
LIBRE_CLAW_BASE_URL http://127.0.0.1:8766, LIBRE_CLAW_TIMEOUT_MS 30000।
Work रनटाइम
Codex home ~/.codex। डिफ़ॉल्ट इमेज node:22.22-bookworm@sha256:2d178f2785b96dfbf62a416ca2e40f50e30150b4ff3320d706f0d96e90600eb3, नेटवर्क/namespace libre-webui-work, command/बैकएंड docker। Team में AGENT_CLI_MODELS_ENABLED=false, CODEX_OAUTH_MODELS_ENABLED=false।
Command समय-सीमा 120000; defaults 2, 2, 2, pool max 100, साथ 256, 2g, 3, 4173, 48, 500, 50000, 5Gi, 6080, 6081।
सभी Work variables: WORK_RUNTIME_IMAGE, WORK_DOCKER_COMMAND, WORK_COMMAND_TIMEOUT_MS, WORK_MAX_OUTPUT_CHARS, WORK_MAX_AGENT_ROUNDS, WORK_STATUS_BLURB_MODEL, WORK_MEMORY_LIMIT, WORK_CPU_LIMIT, WORK_PIDS_LIMIT, WORK_PREVIEW_PORT, WORK_PREVIEW_BIND, WORK_DOCKER_PUBLISHED_HOST, WORK_COMPUTER_SCREEN_PORT, WORK_COMPUTER_AUDIO_PORT, WORK_MAX_ACTIVE_RUNTIMES_GLOBAL, WORK_MAX_ACTIVE_RUNTIMES_PER_USER, WORK_MAX_TASKS_GLOBAL, WORK_MAX_TASKS_PER_USER, WORK_NETWORK_NAME, WORK_RUN_LEASE_WAIT_MS, WORK_RUNTIME_DNS, WORK_DOCKER_SOCKET, WORK_TERMINAL_MAX_SESSIONS_PER_TASK, WORK_TERMINAL_IDLE_TIMEOUT_MS, WORK_RUNTIME_IDLE_TIMEOUT_MS, WORK_HOST_WORKSPACES_ENABLED, WORK_HOST_WORKSPACE_ROOTS, WORK_RUNTIME_BACKEND, WORK_K8S_NAMESPACE, WORK_K8S_STORAGE_CLASS, WORK_K8S_WORKSPACE_SIZE, WORK_K8S_POD_READY_TIMEOUT_MS, WORK_K8S_POD_GONE_TIMEOUT_MS, AGENT_CLI_MODELS_ENABLED, TOOLS_ACCESS_MODE, STT_ACCESS_MODE, TTS_ACCESS_MODE, VOICE_MODE_ACCESS_MODE, VOICE_CLONING_ACCESS_MODE, TOOLS_PRIVATE_NETWORK_ALLOWLIST, AGENT_CLI_TIMEOUT_MS, CODEX_OAUTH_MODELS_ENABLED, CODEX_HOME।
Host roots : separated; access modes admins, admins, admins, all-users, all-users, all-users, all-users, all-users। बैकएंड kubernetes; Codex auth.json। Agent CLI/Codex solo केवल, team असत्य। /workspace mounts; .ssh, .gnupg, .aws, .config reject। claude, codex व्यवस्थापक-केवल।
नेटवर्क WORK_NETWORK_NAME, DNS WORK_RUNTIME_DNS, Kubernetes work.networkPolicy.blockedEgressCidrs। Terminal WORK_DOCKER_SOCKET, DOCKER_HOST (unix://, tcp://, docker-compose.socket-proxy.yml), /var/run/docker.sock; ssh://, DOCKER_TLS_VERIFY terminal अनुपलब्ध। Helm work.env। Tool budget max(128, WORK_MAX_AGENT_ROUNDS × 8), अंतिम needs_input, persisted आउटपुट ~20 000।
Compose DOCKER_GID 0, DOCKER_SOCKET /var/run/docker.sock; team docker-compose.team.work.yml, Helm work.enabled=true; WEBUI_BIND_ADDRESS 127.0.0.1, WEBUI_PORT 8080। Solo 0/1 app replica; team multi-replica PostgreSQL/S3/PGVector/Redis और समान इमेज/StorageClass/work.env बाहरी worker। WORK_DOCKER_PUBLISHED_HOST का app default WORK_PREVIEW_BIND जैसा है, Compose default host.docker.internal; native Docker Engine पर Compose deployments को WORK_PREVIEW_BIND के लिए पहुँच योग्य गैर-सार्वजनिक bridge interface देना चाहिए।
प्रदाता मॉडल खोज
| चर | डिफ़ॉल्ट | उद्देश्य |
|---|---|---|
PLUGIN_MODEL_DISCOVERY_TTL_MS | 21600000 (6 h) | कैटलॉग रीफ़्रेश age |
PLUGIN_MODEL_DISCOVERY_RETRY_MS | 600000 (10 min) | फिर प्रयास gap |
PLUGIN_MODEL_DISCOVERY_REFRESH_DEADLINE_MS | 3000 | सूची wait deadline |
स्पष्ट रीफ़्रेश मॉडल interval ignore करके प्रदाता contact; late परिणाम next अनुरोध।
प्रदाता प्लगइन Keys
OPENAI_API_KEY, ANTHROPIC_API_KEY, GROQ_API_KEY, GEMINI_API_KEY, MISTRAL_API_KEY, OPENROUTER_API_KEY, KIMI_API_KEY, GITHUB_API_KEY, HUGGINGFACE_API_KEY, ELEVENLABS_API_KEY, COMFYUI_API_KEY।
पर्यावरण कुंजी केवल unshadowed bundled विश्वसनीय रूट। Imported/writable समान ID/कस्टम व्यवस्थापक रूट उसी खाते का उपयोगकर्ता कुंजी; नहीं रहस्य attach। Trust compiled मैनिफ़ेस्ट हैश। उपयोगकर्ता कुंजी परिभाषा/स्रोत/auth/रूटिंग bound; बदलाव पर resave। पुराना unbound सटीक shipped रूट पर bind।
स्रोत सापेक्ष PLUGINS_DIR बैकएंड से, package launcher caller से। backend/plugins और historical locations पढ़ें। $DATA_DIR/plugins में move; recovery पुराना paths बाहरी स्थिति और volume-केवल snapshot block। प्लगइन dirs/JSON physical regular, नहीं symlink।
फ़्रंटएंड
| चर | डिफ़ॉल्ट | उद्देश्य |
|---|---|---|
VITE_API_BASE_URL | same-origin dev proxy या production API | API मूल URL |
VITE_WS_BASE_URL | API URL से inferred | पूर्ण ws:/wss: for Chat/Work |
VITE_APP_VERSION | Vite package version | Displayed version |
VITE_DEMO_MODE | false | true demo mocks |
VITE_API_TIMEOUT | 300000 | API समय-सीमा ms |
VITE_BACKEND_URL | http://localhost:3001 | Auth helpers |
VITE_DEBUG_VERBOSE | unset | Verbose dev लॉग |
VITE_LOG_LEVEL | unset | फ़्रंटएंड लॉग level |
ELECTRON_BUILD | unset | true Electron Vite behavior |
VITE_WS_BASE_URL Chat/Work WebSocket fallbacks override। Reverse proxy पथ prefix अनुमत, लेकिन पूर्ण ws:/wss: बिना क्रेडेंशियल/क्वेरी/fragment। Unset पर Electron file: → ws://localhost:3001; ब्राउज़र VITE_API_BASE_URL और फिर browser origin से derive करते हैं। Vite dev origin को backend port 3001 पर proxy करता है।
रखरखाव स्क्रिप्ट
| चर | उद्देश्य |
|---|---|
CHANGELOG_AI | 0 AI changelog drafts बंद |
CHANGELOG_AI_MODEL | Ollama release/changelog मॉडल |
CHANGELOG_AI_TIMEOUT_MS | समय-सीमा ms |
CHANGELOG_AI_MODEL=glm-5.2:cloud npm run changelog
CHANGELOG_AI=0 npm run release:minor
उत्पादन उदाहरण
NODE_ENV=production
PORT=3001
SERVE_FRONTEND=true
DATA_DIR=/data/libre-webui
CORS_ORIGIN=https://librewebui.example
BASE_URL=https://librewebui.example
JWT_SECRET=replace-with-a-long-random-secret
ENCRYPTION_KEY=replace-with-64-hex-characters
ENABLE_SIGNUP=false
OLLAMA_BASE_URL=http://ollama:11434
OLLAMA_TIMEOUT=300000
OLLAMA_LONG_OPERATION_TIMEOUT=900000
OLLAMA_MAX_CONTEXT=32768
TURNSTILE_SITE_KEY=...
TURNSTILE_SECRET_KEY=...
TURNSTILE_EXPECTED_HOSTNAME=librewebui.example