मुख्य कंटेंट तक स्किप करें

पर्यावरण चर

वर्तमान बैकएंड, फ़्रंटएंड और रखरखाव स्क्रिप्ट के ऑपरेटर-उन्मुख चर। केवल परीक्षण canary जानबूझकर छोड़े गए हैं।

बैकएंड सर्वर​

चरडिफ़ॉल्टउद्देश्य
NODE_ENVdevelopmentरनटाइम मोड
PORTdev में 3001, production में 8080HTTP पोर्ट
TRUST_PROXYunset (Helm में 0)सटीक विश्वसनीय proxy hop count
CORS_ORIGINस्थानीय dev originscomma से अलग किए गए सटीक ब्राउज़र origins; * किसी भी मान्य origin को अनुमति देता है
SERVE_FRONTENDunsettrue built फ़्रंटएंड serve
DOCKER_ENVunsettrue Docker behavior
DATA_DIRbackend/data; CLI में ~/.libre-webuiस्थायी डेटा डायरेक्टरी
PLATFORM_PREFLIGHT_TMP_DIRbackend/temp/preflight; CLI उपयोगकर्ता cacheDB/WAL scratch copy
PLUGIN_UPLOAD_TEMP_DIROS temp में libre-webui-plugin-uploadsप्लगइन अपलोड scratch
PLUGINS_DIR$DATA_DIR/pluginsWritable प्लगइन डायरेक्टरी
BASE_URLhttp://localhost:3001OAuth callback डिफ़ॉल्ट
LOG_LEVELinfo (tests warn)बैकएंड लॉग level
LOG_FORMATtextjson structured one-line लॉग
OTEL_EXPORTER_OTLP_ENDPOINTunsetOpt-in OTLP/HTTP JSON export
OTEL_EXPORTER_OTLP_HEADERSunsetCollector key=value headers
OTEL_SERVICE_NAMElibre-webuiservice.name
WEBUI_HOSTloopback; Docker 0.0.0.0Listen address
OPEN_BROWSERफ़्रंटएंड serving पर truefalse ब्राउज़र launch suppress
FULL_DOCUMENT_CONTEXT_MAX_TOKENS32000पूर्ण-दस्तावेज़ guard 1000–2000000
GALLERY_RETENTION_DAYSunset, foreverपुराना gallery media हटाएँ
RECOVERY_DRILL_INTERVAL_HOURSunset, बंदSolo recovery drill हर N घंटे
RECOVERY_DRILL_HISTORY60Retained drill प्रविष्टियाँ

CORS_ORIGIN की प्रविष्टियाँ serialized ब्राउज़र origins से मेल खाती हैं: scheme, hostname और वैकल्पिक port, बिना path, क्रेडेंशियल, query या fragment के। अनुरोध में एक ही canonical origin होना चाहिए; गलत रूप वाले मान और origins की सूचियाँ CORS_ORIGIN=* होने पर भी अस्वीकार की जाती हैं। जो clients Origin नहीं भेजते, उन्हें अनुमति बनी रहती है। opaque origin null के लिए स्पष्ट null प्रविष्टि या * चाहिए।

Docker (DOCKER_ENV=true) और non-production मोड में, HTTP(S) origins के लिए सटीक localhost और 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 तथा 100.64.0.0/10 में आने वाले literal IPv4 पते भी स्वीकार किए जाते हैं। जो hostnames केवल इन strings से शुरू होते हैं, जैसे localhost.attacker.example, वे स्थानीय पते नहीं हैं। IPv6 origins के लिए स्पष्ट प्रविष्टि या * चाहिए; वे नेटवर्क अपवाद में अपने आप शामिल नहीं होते। native production डिप्लॉयमेंट केवल स्पष्ट origin सूची या wildcard का उपयोग करते हैं। CORS, API के bearer-token प्रमाणीकरण की जगह नहीं लेता।

स्रोत 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_MODEsolosolo/team
DATABASE_BACKENDsqlitesqlite/postgres
DATABASE_URLunsetPostgreSQL URL
DATABASE_SSL_MODEverify-fulldisable, require, verify-full
POSTGRES_MIGRATION_MODEapplyApply या केवल-पढ़ने validate
POSTGRES_POOL_MAX10Connections प्रति प्रक्रिया 1–100
POSTGRES_CONNECT_TIMEOUT_MS50001–60000 ms
POSTGRES_IDLE_TIMEOUT_MS300001–600000 ms
POSTGRES_STATEMENT_TIMEOUT_MS300001–600000 ms
POSTGRES_MIGRATION_LOCK_TIMEOUT_MS600001–600000 ms
BLOB_STORE_BACKENDlocalएन्क्रिप्टेड local/निजी s3
VECTOR_STORE_BACKENDSQLite में embeddedembedded/pgvector
COORDINATION_BACKENDsolo local, team redisCoordination
REDIS_URLunsetredis:/rediss: URL
REDIS_KEY_PREFIXlibre1–64 namespace
REDIS_CONNECT_TIMEOUT_MS5000Max 60 seconds
JOB_WORKER_MODEsolo embedded, team externalWorker location
RESOURCE_LEASE_TTL_MS300005000–300000 lease TTL
JOB_WORKER_CONCURRENCY41–32 jobs
CHAT_STREAM_EVENT_RETENTION_HOURS24Chat खंड घंटे
PLATFORM_EVENT_RETENTION_DAYS30घटना दिन
PLATFORM_JOB_RETENTION_DAYS30Finished job दिन
LIBRE_SKIP_STARTUP_INTEGRITY_SCANunset1 skip next पुराना स्कैन
STORAGE_ENCRYPTION_KEYSunsetlegacy = ENCRYPTION_KEY वाली JSON मैप
STORAGE_ENCRYPTION_ACTIVE_KEY_IDunsetसक्रिय blob/vector कुंजी
BLOB_QUOTA_BYTES_PER_USER10737418240खुला blob bytes प्रति मालिक
BLOB_QUOTA_RESERVATION_TTL_MS3600000Abandoned reservation min 60000 ms
S3_BUCKETunsetनिजी bucket
S3_REGIONunsetRegion
S3_ENDPOINTप्रदाता डिफ़ॉल्टवैकल्पिक MinIO HTTP(S) एंडपॉइंट
S3_ACCESS_KEY_IDSDK chainAccess कुंजी
S3_SECRET_ACCESS_KEYSDK chainस्पष्ट कुंजी के साथ आवश्यक
S3_SESSION_TOKENunsetSession टोकन
S3_FORCE_PATH_STYLEfalsetrue पथ style
S3_BLOB_PREFIXlibre/blobsOpaque 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-webuiCompose dir
LIBRE_WEBUI_BACKUP_DIR/var/backups/libre-webuiBackup dir
LIBRE_WEBUI_BACKUP_RETENTION_DAYS14Retention
LIBRE_WEBUI_CONTAINER_NAMElibre-webuiContainer
LIBRE_WEBUI_BACKUP_KEY_DIR/etc/libre-webui/backup-keysKeys
LIBRE_WEBUI_RESTORE_IMAGErequiredRestore इमेज
LIBRE_WEBUI_RESTORE_CONFIG_DIR/etc/libre-webui/restoredRestored 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। DEFAULT_MODEL डिफ़ॉल्ट रूप से खाली; नए खाते अपनी पसंद चुनने तक इसी मॉडल से शुरू होते हैं (CLI में --model)।

Web खोज​

SEARXNG_URL एंडपॉइंट prefill; व्यवस्थापक separately enable।

ईमेल सूचनाएँ​

ये चर उस आउटगोइंग मेल सर्वर को seed करते हैं जिसे व्यवस्थापक सेटिंग्स > उपयोगकर्ता प्रबंधन > पहुँच और नीतियाँ > ईमेल सूचनाएँ में प्रबंधित करते हैं। UI में सहेजा गया मान चर पर प्राथमिकता रखता है; UI में फ़ील्ड खाली करने पर चर वाला मान लौट आता है। जब तक व्यवस्थापक स्विच चालू न करे, ईमेल बंद रहता है, और हर उपयोगकर्ता अब भी सेटिंग्स > सूचनाएँ में प्रत्येक सूचना प्रकार के लिए अलग से opt-in करता है।

चरडिफ़ॉल्टउद्देश्य
SMTP_HOSTunsetमेल सर्वर का होस्ट नाम
SMTP_PORT587, या tls के साथ 465मेल सर्वर पोर्ट
SMTP_SECURITYstarttlsstarttls (सामान्य कनेक्शन अपग्रेड करता है), tls (implicit TLS), या none (भरोसेमंद नेटवर्क)
SMTP_USERunsetप्रमाणीकरण उपयोगकर्ता; जो relay बिना साइन-इन मेल स्वीकारता है उसके लिए खाली छोड़ें
SMTP_PASSWORDunsetप्रमाणीकरण पासवर्ड; UI में सहेजा पासवर्ड एन्क्रिप्टेड रूप से संग्रहीत और प्राथमिकता वाला होता है
SMTP_FROMunsetप्रेषक, उदाहरण के लिए Libre WebUI <[email protected]>
SMTP_TLS_REJECT_UNAUTHORIZEDtrueकेवल self-signed प्रमाणपत्र वाले relay के लिए false सेट करें
BASE_URLunsetइंस्टेंस का सार्वजनिक URL, संदेशों के भीतर लिंक के लिए उपयोग होता है

Strands इंजन​

चरडिफ़ॉल्टउद्देश्य
LIBRE_STRANDS_ACCESSसेट नहीं (प्रशासक सेटिंग, बंद)तय करें कि अंतर्निहित Strands इंजन कौन उपयोग कर सकता है: disabled, admins या all-users। कोई अन्य मान इसे बंद स्थिति में लॉक कर देता है

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। WORK_RUNTIME_IDLE_TIMEOUT_MS की डिफ़ॉल्ट अब 1800000 (30 मिनट) है, पहले 0 (बंद) थी।

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 देना चाहिए।

  • AGENT_CLI_MODELS_ENABLED: सीधे एजेंट CLI मॉडल का चालू/बंद मान स्थिर करता है; मान न हो तो अलग प्रशासकीय स्विच लागू होता है।

प्रदाता मॉडल खोज​

चरडिफ़ॉल्टउद्देश्य
PLUGIN_MODEL_DISCOVERY_TTL_MS21600000 (6 h)कैटलॉग रीफ़्रेश age
PLUGIN_MODEL_DISCOVERY_RETRY_MS600000 (10 min)फिर प्रयास gap
PLUGIN_MODEL_DISCOVERY_REFRESH_DEADLINE_MS3000सूची wait deadline

स्पष्ट रीफ़्रेश मॉडल interval ignore करके प्रदाता contact; late परिणाम next अनुरोध।

प्रदाता प्लगइन Keys​

OPENAI_API_KEY, ANTHROPIC_API_KEY, GROQ_API_KEY, GEMINI_API_KEY, MISTRAL_API_KEY, DEEPSEEK_API_KEY, AWS_BEARER_TOKEN_BEDROCK, 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_URLsame-origin dev proxy या production APIAPI मूल URL
VITE_WS_BASE_URLAPI URL से inferredपूर्ण ws:/wss: for Chat/Work
VITE_APP_VERSIONVite package versionDisplayed version
VITE_DEMO_MODEfalsetrue demo mocks
VITE_API_TIMEOUT300000API समय-सीमा ms
VITE_BACKEND_URLhttp://localhost:3001Auth helpers
VITE_DEBUG_VERBOSEunsetVerbose dev लॉग
VITE_LOG_LEVELunsetफ़्रंटएंड लॉग level
ELECTRON_BUILDunsettrue 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_AI0 AI changelog drafts बंद
CHANGELOG_AI_MODELOllama 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

संबंधित दस्तावेज़​