Перейти до основного вмісту

Змінні середовища

На цій сторінці перелічено змінні для операторів, які читають поточні сервер, фронтенд і сценарії обслуговування Libre WebUI. Внутрішні тестові canary навмисно пропущено.

Серверна частина​

ЗміннаТиповоПризначення
NODE_ENVdevelopmentРежим виконання
PORT3001 у розробці, 8080 у промисловому середовищіHTTP-порт сервера
TRUST_PROXYне задано (0 у Helm)Точна кількість довірених переходів reverse proxy
CORS_ORIGINлокальні походження розробкиТочні походження браузера через кому; * дозволяє будь-яке коректне походження
SERVE_FRONTENDне заданоtrue обслуговує зібраний фронтенд сервером
DOCKER_ENVне заданоtrue вмикає поведінку Docker
DATA_DIRbackend/data; ~/.libre-webui у CLIПостійний каталог даних
PLATFORM_PREFLIGHT_TMP_DIRbackend/temp/preflight; кеш користувача в CLIТимчасова копія бази/WAL для перевірки запуску
PLUGIN_UPLOAD_TEMP_DIRlibre-webui-plugin-uploads у тимчасовому каталозі ОСТимчасове місце завантажень плагінів
PLUGINS_DIR$DATA_DIR/pluginsЗаписуваний каталог установлених плагінів
BASE_URLhttp://localhost:3001Базовий URL для типових OAuth callback
LOG_LEVELinfo (warn у тестах)Рівень журналу сервера
LOG_FORMATtextjson вмикає структуровані однорядкові журнали
OTEL_EXPORTER_OTLP_ENDPOINTне заданоДобровільний експорт OTLP/HTTP JSON
OTEL_EXPORTER_OTLP_HEADERSне заданоЗаголовки key=value колектора через кому
OTEL_SERVICE_NAMElibre-webuiАтрибут service.name телеметрії
WEBUI_HOSTloopback; 0.0.0.0 у DockerАдреса прослуховування HTTP
OPEN_BROWSERtrue під час обслуговування фронтендуfalse не відкриває браузер автоматично
FULL_DOCUMENT_CONTEXT_MAX_TOKENS32000Захист контексту повного документа, 1000–2000000
GALLERY_RETENTION_DAYSне задано, зберігати завждиВидаляти старі медіа планувальником
RECOVERY_DRILL_INTERVAL_HOURSне задано, перевірки вимкненоАвтоматична перевірка відновлення кожні N годин у solo
RECOVERY_DRILL_HISTORY60Кількість збережених перевірок

Записи CORS_ORIGIN зіставляються із серіалізованими походженнями браузера: схема, ім’я хоста й необов’язковий порт, без шляху, облікових даних, запиту чи фрагмента. Запит має містити одне канонічне походження; некоректні значення та списки походжень відхиляються навіть за CORS_ORIGIN=*. Клієнти, які не надсилають Origin, і далі допускаються. Непрозоре походження null потребує явного запису null або *.

У Docker (DOCKER_ENV=true) і в непромислових режимах для походжень HTTP(S) також приймаються точний localhost і буквальні адреси IPv4 у 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. Імена хостів, які лише починаються з цих рядків, наприклад localhost.attacker.example, не є локальними адресами. Походження IPv6 потребують явного запису або *; до мережевого винятку вони автоматично не входять. Нативні промислові розгортання використовують лише явний список походжень або шаблон. CORS не замінює автентифікацію API за токеном bearer.

Запуск із джерел прив’язує відносні DATA_DIR, PLUGINS_DIR і PLATFORM_PREFLIGHT_TMP_DIR до каталогу сервера незалежно від оболонки. DATA_DIR=./data вибирає backend/data, а історичне DATA_DIR=./backend/data — backend/backend/data; змінюйте лише після зупинки, резервування й свідомої міграції. Якщо обидва місця мають стан без явного вибору, запуск безпечно відмовляє замість вгадування, копіювання або злиття.

npx, глобальний npm і Homebrew зберігають дані в ~/.libre-webui; явні відносні шляхи визначаються від каталогу виклику й стають абсолютними. Типовий кеш перевірки: ~/Library/Caches/libre-webui на macOS, %LOCALAPPDATA%\libre-webui у Windows або ${XDG_CACHE_HOME:-~/.cache}/libre-webui в інших системах; Homebrew використовує var/libre-webui/preflight, Docker/Helm — /app/backend/data і /app/backend/temp/preflight. Задайте PLATFORM_PREFLIGHT_TMP_DIR, якщо кеш не вміщує базу разом із WAL.

Основа платформи​

Профіль solo використовує SQLite, локальні зашифровані blob і вектори, локальну координацію та вбудований worker. team використовує PostgreSQL, приватне S3-сумісне сховище, PGVector, Redis і зовнішній worker. Неповне поєднання спільних залежностей безпечно відхиляється.

ЗміннаТиповоПризначення
LIBRE_PLATFORM_MODEsoloУзгоджений профіль solo або team
DATABASE_BACKENDsqlitesqlite або postgres
DATABASE_URLне заданоURL PostgreSQL, потрібний для postgres
DATABASE_SSL_MODEverify-fulldisable, require або verify-full
POSTGRES_MIGRATION_MODEapplyМіграція під блокуванням або validate лише для перевірки
POSTGRES_POOL_MAX10Підключення PostgreSQL на процес, 1–100
POSTGRES_CONNECT_TIMEOUT_MS5000Тайм-аут підключення, 1–60000 ms
POSTGRES_IDLE_TIMEOUT_MS30000Тайм-аут бездіяльного підключення, 1–600000 ms
POSTGRES_STATEMENT_TIMEOUT_MS30000Тайм-аут оператора, 1–600000 ms
POSTGRES_MIGRATION_LOCK_TIMEOUT_MS60000Очікування блокування міграції, 1–600000 ms
BLOB_STORE_BACKENDlocalЗашифроване local або приватне s3
VECTOR_STORE_BACKENDembedded із SQLiteembedded або pgvector
COORDINATION_BACKENDlocal у solo, redis у teamЛокальна або Redis-координація
REDIS_URLне заданоURL redis: або rediss:
REDIS_KEY_PREFIXlibreПростір ключів 1–64 символи
REDIS_CONNECT_TIMEOUT_MS5000Початковий тайм-аут Redis до 60 секунд
JOB_WORKER_MODEembedded у solo, external у teamОбробники в застосунку або окремому worker
RESOURCE_LEASE_TTL_MS30000TTL оренди ресурсу 5000–300000
JOB_WORKER_CONCURRENCY4Одночасні постійні завдання worker, 1–32
CHAT_STREAM_EVENT_RETENTION_HOURS24Години зберігання фрагментів потоку чату
PLATFORM_EVENT_RETENTION_DAYS30Дні зберігання постійних подій
PLATFORM_JOB_RETENTION_DAYS30Дні зберігання завершених задач
LIBRE_SKIP_STARTUP_INTEGRITY_SCANне задано1 один раз пропускає глибоке сканування старих шифротекстів
STORAGE_ENCRYPTION_KEYSне заданоСекретна JSON-карта з legacy, що дорівнює ENCRYPTION_KEY
STORAGE_ENCRYPTION_ACTIVE_KEY_IDне заданоID ключа нових локальних blob і векторів
BLOB_QUOTA_BYTES_PER_USER10737418240Максимум відкритих байтів blob на власника
BLOB_QUOTA_RESERVATION_TTL_MS3600000Життя покинутої потокової резервації, мінімум 60000 ms
S3_BUCKETне заданоПриватний S3 bucket
S3_REGIONне заданоРегіон S3
S3_ENDPOINTтипове значення провайдераНеобов’язкова абсолютна HTTP(S)-точка MinIO або сумісної служби
S3_ACCESS_KEY_IDланцюг облікових даних SDKНеобов’язковий явний ключ доступу
S3_SECRET_ACCESS_KEYланцюг облікових даних SDKПотрібний з явним ключем доступу
S3_SESSION_TOKENне заданоНеобов’язковий токен S3
S3_FORCE_PATH_STYLEfalsetrue для адресації в стилі шляхів
S3_BLOB_PREFIXlibre/blobsНепрозорий префікс ключів bucket

Без карти адаптери використовують ENCRYPTION_KEY як ID legacy, а якщо його немає — читають ${DATA_DIR}/.encryption_key, нічого не створюючи й не змінюючи. Явна конфігурація та файл мають збігатися. Після запровадження карти зберігайте старий ключ під точним ID legacy, доки всі об’єкти й вектори не переписано або не перепаковано й перевірено. Конфлікти, небезпечні права, symlink і відсутні ключі безпечно блокують запуск.

Redis — координація, не канонічне сховище. Сам вибір Redis не робить SQLite або локальні файли безпечними для реплік. У team спільний допуск HTTP, Chat/WebSocket, STT/TTS/audio, імпорту архівів і терміналів діє на всі репліки. Помилка повертає 503 або перериває операцію; локального резерву немає. Див. Основу платформи.

Team Compose і Helm передають усі селектори й налаштування застосунку та worker. У Helm несекретні значення містяться в env, а secrets.redisUrl, secrets.databaseUrl, secrets.storageEncryptionKeys — секретні. Плануйте щонайменше (replicaCount + worker.replicaCount) * POSTGRES_POOL_MAX підключень плюс запас. Для віддаленого PostgreSQL залишайте DATABASE_SSL_MODE=verify-full; приватний Compose використовує disable. Team Helm також потребує одного стабільного secrets.jwtSecret для всіх Pod. S3 отримує непрозорі ключі й шифротекст.

Інтегровані архіви зберігають параметри пулу й тайм-аутів PostgreSQL, Redis, обидві blob-квоти, селектори платформи та адресацію S3 у підписаній зашифрованій конфігурації.

Застосунок і worker отримують однакові OLLAMA_BASE_URL, OLLAMA_TIMEOUT, OLLAMA_LONG_OPERATION_TIMEOUT, OLLAMA_MAX_CONTEXT. Серверні точки приймають лише повні додатні десяткові числа; 300000ms, експонента, hex, значення поза межами або довгий тайм-аут менший за звичайний зупиняють запуск.

Helm обмежує TRUST_PROXY точним цілим від 0 до 16 і передає лише HTTP Pod. Залишайте 0 для прямого трафіку; задавайте точну кількість переходів проксі, ніколи необмежене true.

Сумісність схеми PostgreSQL точна. Застосунок і worker використовують Recreate; перед оновленням завершіть усі старі Pod, потім одна нова версія мігрує під advisory lock. Не запускайте змішані двійкові версії та не заявляйте оновлення без простою. Відкат означає відновлення перевіреного архіву в чисті PostgreSQL/S3 до запуску старої версії.

Активний team потребує worker.replicaCount >= 1. Для повного призупинення задайте нуль і застосунку, і worker. Нуль застосунку з додатним worker — режим дренування або відновлення, що продовжує чергу без вебтрафіку.

Помічник приватних резервних копій​

Ці змінні читає сценарій deploy/private/libre-webui-backup, а не процес застосунку:

ЗміннаТиповоПризначення
LIBRE_WEBUI_STACK_DIR/opt/libre-webuiКаталог Compose
LIBRE_WEBUI_BACKUP_DIR/var/backups/libre-webuiКаталог копій
LIBRE_WEBUI_BACKUP_RETENTION_DAYS14Дні зберігання
LIBRE_WEBUI_CONTAINER_NAMElibre-webuiІм’я контейнера
LIBRE_WEBUI_BACKUP_KEY_DIR/etc/libre-webui/backup-keysКаталог ключів
LIBRE_WEBUI_RESTORE_IMAGEобов’язковаImage для відновлення
LIBRE_WEBUI_RESTORE_CONFIG_DIR/etc/libre-webui/restoredВідновлена конфігурація

Модуль systemd необов’язково читає /etc/libre-webui/backup.env, що має належати root і мати режим 0600; він не читає .env застосунку. Власний каталог копій також потребує точного ReadWritePaths= у додатковому файлі служби. Див. Приватне розгортання.

Автентифікація та безпека​

Необов’язкова політика другого фактора позначається optional, а обов’язкова — required. Контакт Web Push типово 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. AUDIT_RETENTION_DAYS типово 180. Режим TLS може бути require; тестовий рівень журналу — warn.

Загальний єдиний вхід OIDC​

Стабільний ID користувача береться з claim sub, а групи типово з groups. OIDC_GROUP_CLAIM і OIDC_SYNC_GROUPS керують синхронізацією. OIDC_CALLBACK_URL, OIDC_ALLOWED_EMAIL_DOMAINS, OIDC_ADMIN_GROUPS задають callback, домени й адміністративні групи.

Потрібні 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. Header 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. Квиток одноразовий, походження перевіряється.

OAuth​

GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, GITHUB_CALLBACK_URL, HUGGINGFACE_CLIENT_ID, HUGGINGFACE_CLIENT_SECRET, HUGGINGFACE_CALLBACK_URL; резервні callback використовують BASE_URL.

Ollama​

OLLAMA_BASE_URL типово http://localhost:11434, OLLAMA_TIMEOUT — 300000, OLLAMA_LONG_OPERATION_TIMEOUT — 900000, OLLAMA_MAX_CONTEXT — 32768. DEFAULT_MODEL типово порожній і задає модель, з якої починають нові облікові записи, доки не виберуть власну (--model у CLI).

Веб-пошук​

SEARXNG_URL попередньо задає кінцеву точку; адміністратор усе одно окремо вмикає пошук.

Сповіщення електронною поштою​

Ці змінні попередньо задають сервер вихідної пошти, яким адміністратори керують у розділі Settings > User Management > Доступ і політики > Сповіщення електронною поштою. Значення, збережене там, має пріоритет над змінною; очищення поля в інтерфейсі повертає значення змінної. Пошта лишається вимкненою, доки адміністратор не увімкне перемикач, і кожен користувач усе одно вмикає її окремо для кожного виду сповіщень у розділі Settings > Notifications.

ЗміннаТиповоПризначення
SMTP_HOSTне заданоІм’я хоста поштового сервера
SMTP_PORT587, або 465 із tlsПорт поштового сервера
SMTP_SECURITYstarttlsstarttls (підвищення рівня звичайного з’єднання), tls (неявний TLS) або none (довірена мережа)
SMTP_USERне заданоКористувач автентифікації; лишіть не заданим для ретранслятора, що приймає пошту без входу
SMTP_PASSWORDне заданоПароль автентифікації; пароль, збережений в інтерфейсі, зберігається зашифрованим і має пріоритет
SMTP_FROMне заданоВідправник, наприклад Libre WebUI <[email protected]>
SMTP_TLS_REJECT_UNAUTHORIZEDtrueУстановіть false лише для ретранслятора із самопідписаним сертифікатом
BASE_URLне заданоПублічний URL інстанції, використовується для посилань у повідомленнях

Рушій Strands​

ЗміннаТиповоПризначення
LIBRE_STRANDS_ACCESSне задано (налаштування адміністратора, вимкнено)Закріплює, хто може користуватися вбудованим рушієм Strands: disabled, admins або all-users. Будь-яке інше значення вимикає рушій

Середовище Work​

Домашній каталог Codex типово ~/.codex. Типовий образ — node:22.22-bookworm@sha256:2d178f2785b96dfbf62a416ca2e40f50e30150b4ff3320d706f0d96e90600eb3, а мережа й простір імен — libre-webui-work. Команда й сервер типово docker. У team обов’язкові AGENT_CLI_MODELS_ENABLED=false та CODEX_OAUTH_MODELS_ENABLED=false.

Тайм-аут команди типово 120000; інші типові значення містять 2, 2, 2, верхню межу пулу 100, а також 256, 2g, 3, 4173, 48, 500, 50000, 5Gi, 6080, 6081.

Повний перелік змінних Work: 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 (типово 1800000, 30 хв), 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.

Корені хоста розділяються :. Режими доступу можуть бути admins, admins, admins, all-users, all-users, all-users, all-users, all-users. Сервер може бути kubernetes, Codex читає auth.json. Agent CLI/Codex підтримуються лише в solo; team вимагає false. Папки монтуються в /workspace, а .ssh, .gnupg, .aws, .config відхиляються. Моделі claude і codex доступні лише адміністраторам.

Мережа Docker використовує WORK_NETWORK_NAME, DNS — WORK_RUNTIME_DNS, Kubernetes — work.networkPolicy.blockedEgressCidrs. Термінал використовує WORK_DOCKER_SOCKET, потім DOCKER_HOST (unix://, tcp://, docker-compose.socket-proxy.yml) і /var/run/docker.sock; ssh:// та DOCKER_TLS_VERIFY роблять термінал недоступним. Helm передає work.env. Бюджет інструментів — max(128, WORK_MAX_AGENT_ROUNDS × 8), завершення — needs_input, збережений вивід — приблизно 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 допускає нуль або одну репліку застосунку; повний team — кілька реплік із PostgreSQL, S3, PGVector і Redis, а зовнішній worker отримує ту саму image, StorageClass і ліміти work.env. У самому застосунку типове значення WORK_DOCKER_PUBLISHED_HOST збігається з WORK_PREVIEW_BIND, а у файлах Compose воно дорівнює host.docker.internal; розгортання Compose на нативному Docker Engine мають задати WORK_PREVIEW_BIND на доступний непублічний інтерфейс мосту.

  • AGENT_CLI_MODELS_ENABLED: Фіксує стан прямих моделей агентів CLI; без значення діє окремий адміністративний перемикач моделей CLI.

Виявлення моделей провайдерів​

ЗміннаТиповоПризначення
PLUGIN_MODEL_DISCOVERY_TTL_MS21600000 (6 h)Вік каталогу до автоматичного оновлення
PLUGIN_MODEL_DISCOVERY_RETRY_MS600000 (10 min)Мінімальна пауза між невдалими спробами
PLUGIN_MODEL_DISCOVERY_REFRESH_DEADLINE_MS3000Очікування оновлення відповіддю списку

Явне Оновити моделі завжди звертається до провайдера й ігнорує інтервал; запізнілий результат видно в наступному запиті.

Ключі плагінів провайдерів​

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 задають типові ключі відповідних провайдерів.

Ключ середовища використовується лише з маршрутом і автентифікацією незатіненого вбудованого визначення. Імпортоване, записуване з повторним вбудованим ID або власний маршрут адміністратора потребує ключа того самого користувача; Libre не підставляє секрет у ці маршрути чи виявлення. Довіра походить зі скомпільованого хешу маніфесту.

Збережені користувачем ключі прив’язані до чинного визначення провайдера, джерела, контракту автентифікації та значень маршрутизації. Оновлення каталогу моделей їх зберігають. Після того як адміністратор змінить це призначення, користувачі мають зберегти ключ знову. Неприв’язані ключі, збережені до оновлення, приймаються й прив’язуються під час першого використання лише для точного постачуваного визначення на його вбудованому маршруті.

Відносний PLUGINS_DIR із джерел визначається від сервера, а пакетний запуск перетворює його на абсолютний від виклику. Для сумісності читаються backend/plugins та історичні місця. Перенесіть визначення в $DATA_DIR/plugins; звіт відновлення вважає старі місця зовнішнім станом і блокує копію лише тому. Каталоги й JSON мають бути фізичними звичайними записами; symlink не переходяться.

Фронтенд​

ЗміннаТиповоПризначення
VITE_API_BASE_URLпроксі розробки того самого походження або продакшн APIБазовий URL API
VITE_WS_BASE_URLвизначається з APIАбсолютна основа ws:/wss: Chat і Work
VITE_APP_VERSIONверсія пакета з ViteПоказана версія застосунку
VITE_DEMO_MODEfalsetrue вмикає демонстраційні імітації
VITE_API_TIMEOUT300000Тайм-аут API у мілісекундах
VITE_BACKEND_URLhttp://localhost:3001Деякі помічники автентифікації
VITE_DEBUG_VERBOSEне заданоДокладні журнали розробки
VITE_LOG_LEVELне заданоРівень журналу фронтенду
ELECTRON_BUILDне заданоtrue вмикає поведінку Electron Vite

VITE_WS_BASE_URL перевизначає всі резервні WebSocket для Chat і термінала Work. Може містити префікс reverse proxy, але має бути абсолютним ws:/wss: без облікових даних, query чи fragment. Без значення клієнти Electron file: використовують ws://localhost:3001; браузерні клієнти визначають основу спочатку з VITE_API_BASE_URL, потім з походження браузера. Vite проксіює середовище розробки до бекенда на порту 3001.

Сценарії обслуговування​

ЗміннаПризначення
CHANGELOG_AI0 вимикає чернетки журналу змін ШІ
CHANGELOG_AI_MODELМодель Ollama для випуску й журналу
CHANGELOG_AI_TIMEOUT_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

Пов’язана документація​