Ana içeriğe geç

Ortam Değişkenleri

Geçerli arka uç, ön yüz ve bakım betiklerinin okuduğu işletmeci değişkenleri burada listelenir. Yalnız teste özel canary değerleri bilinçli olarak yoktur.

Arka Uç Sunucusu

DeğişkenVarsayılanAmaç
NODE_ENVdevelopmentÇalışma modu
PORTgeliştirmede 3001, üretimde 8080HTTP portu
TRUST_PROXYayarsız (Helm’de 0)Güvenilir reverse proxy atlama sayısı
CORS_ORIGINyerel geliştirme kökenleriVirgülle izinli tarayıcı kökenleri
SERVE_FRONTENDayarsıztrue derlenmiş ön yüzü sunar
DOCKER_ENVayarsıztrue Docker davranışını açar
DATA_DIRbackend/data; paketli CLI’da ~/.libre-webuiKalıcı veri dizini
PLATFORM_PREFLIGHT_TMP_DIRbackend/temp/preflight; CLI’da kullanıcı önbelleğiBaşlangıç DB/WAL inceleme alanı
PLUGIN_UPLOAD_TEMP_DIRişletim sistemi temp altında libre-webui-plugin-uploadsEklenti yükleme geçici alanı
PLUGINS_DIR$DATA_DIR/pluginsYazılabilir eklenti dizini
BASE_URLhttp://localhost:3001OAuth callback varsayılanı
LOG_LEVELinfo (testte warn)Günlük düzeyi
LOG_FORMATtextjson yapılandırılmış tek satır günlük
OTEL_EXPORTER_OTLP_ENDPOINTayarsızİsteğe bağlı OTLP/HTTP JSON dışa aktarımı
OTEL_EXPORTER_OTLP_HEADERSayarsızKolektöre virgülle key=value başlıkları
OTEL_SERVICE_NAMElibre-webuiTelemetri service.name niteliği
WEBUI_HOSTloopback; Docker’da 0.0.0.0HTTP dinleme adresi
OPEN_BROWSERön yüz sunulurken truefalse otomatik tarayıcıyı engeller
FULL_DOCUMENT_CONTEXT_MAX_TOKENS32000Tam belge bağlamı 1000–2000000
GALLERY_RETENTION_DAYSayarsız, sonsuza kadarEski galeri medyasını silme
RECOVERY_DRILL_INTERVAL_HOURSayarsız, kapalıSolo’da her N saatte kurtarma tatbikatı
RECOVERY_DRILL_HISTORY60Saklanan tatbikat geçmişi

Kaynak başlatma göreli DATA_DIR, PLUGINS_DIR, PLATFORM_PREFLIGHT_TMP_DIR değerlerini kabuktan bağımsız backend dizinine bağlar. DATA_DIR=./databackend/data, eski DATA_DIR=./backend/databackend/backend/data; yalnız durdurma, yedekleme ve bilinçli geçişle değiştirin. İki yerde durum varsa başlangıç tahmin, kopya veya birleştirme yerine güvenli kapanır.

npx, global npm ve Homebrew ~/.libre-webui kullanır; açık göreli yollar çağıranın dizininden mutlağa çevrilir. Önbellek macOS’ta ~/Library/Caches/libre-webui, Windows’ta %LOCALAPPDATA%\libre-webui, diğerlerinde ${XDG_CACHE_HOME:-~/.cache}/libre-webui; Homebrew var/libre-webui/preflight, Docker/Helm /app/backend/data ve /app/backend/temp/preflight kullanır. Veritabanı + WAL sığmıyorsa PLATFORM_PREFLIGHT_TMP_DIR ayarlayın.

Platform Temeli

solo: SQLite, yerel şifreli blob/gömülü vektör, yerel koordinasyon ve gömülü worker. team: PostgreSQL, özel S3, PGVector, Redis ve dış worker. Kısmi ortak bağımlılıklar reddedilir.

DeğişkenVarsayılanAmaç
LIBRE_PLATFORM_MODEsolosolo veya team
DATABASE_BACKENDsqlitesqlite veya postgres
DATABASE_URLayarsızPostgreSQL URL’si
DATABASE_SSL_MODEverify-fulldisable, require, verify-full
POSTGRES_MIGRATION_MODEapplyKilit altında uygula veya salt okunur validate
POSTGRES_POOL_MAX10Süreç başına bağlantı, 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Şifreli local veya özel s3
VECTOR_STORE_BACKENDSQLite ile embeddedembedded veya pgvector
COORDINATION_BACKENDsolo’da local, team’de redisYerel veya Redis koordinasyonu
REDIS_URLayarsızredis: veya rediss: URL
REDIS_KEY_PREFIXlibre1–64 karakter anahtar ad alanı
REDIS_CONNECT_TIMEOUT_MS5000En çok 60 saniye
JOB_WORKER_MODEsolo’da embedded, team’de externalUygulama veya dış worker
RESOURCE_LEASE_TTL_MS300005000–300000 kira TTL
JOB_WORKER_CONCURRENCY41–32 eşzamanlı iş
CHAT_STREAM_EVENT_RETENTION_HOURS24Sohbet akış olayı saatleri
PLATFORM_EVENT_RETENTION_DAYS30Kalıcı olay günleri
PLATFORM_JOB_RETENTION_DAYS30Bitmiş iş günleri
LIBRE_SKIP_STARTUP_INTEGRITY_SCANayarsız1 sonraki derin eski şifre taramasını atlar
STORAGE_ENCRYPTION_KEYSayarsızENCRYPTION_KEY ile eşleşen legacy içeren JSON
STORAGE_ENCRYPTION_ACTIVE_KEY_IDayarsızYeni blob/vektör yazma anahtarı
BLOB_QUOTA_BYTES_PER_USER10737418240Sahip başına açık blob baytı
BLOB_QUOTA_RESERVATION_TTL_MS3600000Terk edilen rezervasyon, en az 60000 ms
S3_BUCKETayarsızÖzel S3 bucket
S3_REGIONayarsızS3 bölgesi
S3_ENDPOINTsağlayıcı varsayılanıMinIO veya uyumlu mutlak HTTP(S) ucu
S3_ACCESS_KEY_IDSDK kimlik zinciriAçık erişim anahtarı
S3_SECRET_ACCESS_KEYSDK kimlik zinciriAçık erişim anahtarıyla gerekir
S3_SESSION_TOKENayarsızOturum tokenı
S3_FORCE_PATH_STYLEfalseYol biçimli adresleme için true
S3_BLOB_PREFIXlibre/blobsLibre’ye ait saydam olmayan önek

Anahtar haritası yoksa ENCRYPTION_KEY, legacy olarak; o da yoksa ${DATA_DIR}/.encryption_key değiştirilmeden okunur. Açık ayar ve dosya eşleşmelidir. Harita eklenince tüm nesneler yeniden yazılıp doğrulanana kadar eski anahtarı tam legacy ID’siyle koruyun. Çakışma, güvensiz izin, symlink ve eksik anahtar güvenli kapanır.

Redis koordinasyondur, kalıcı gerçek değildir. Tek başına SQLite veya yerel dosyaları kopyalar arasında güvenli yapmaz. Team’de HTTP, Chat/WebSocket, STT/TTS/audio, arşiv içe aktarma ve Work terminal kabulü tüm kopyalarda ortaktır. Hata 503 döndürür veya işlemi keser; yerel geri dönüş yoktur. Bkz. Platform Temeli.

Team Compose/Helm tüm seçicileri uygulama ve worker’a iletir. Helm’de sır olmayanlar env; secrets.redisUrl, secrets.databaseUrl, secrets.storageEncryptionKeys sırdır. En az (replicaCount + worker.replicaCount) * POSTGRES_POOL_MAX bağlantı ve pay ayırın. Uzak PostgreSQL için DATABASE_SSL_MODE=verify-full, özel Compose için disable. Team Helm tek kararlı secrets.jwtSecret ister. S3 yalnız şifreli ve saydam olmayan anahtar alır.

Arşivler havuz/zaman aşımı, Redis, blob kotası, platform seçicileri ve S3 adreslemesini imzalı şifreli yapılandırmada saklar.

Uygulama ve worker aynı OLLAMA_BASE_URL, OLLAMA_TIMEOUT, OLLAMA_LONG_OPERATION_TIMEOUT, OLLAMA_MAX_CONTEXT alır. Yalnız tam pozitif ondalık sayılar geçerlidir; 300000ms, üs, hex, sınır dışı veya standarttan küçük uzun zaman aşımı başlangıcı durdurur.

Helm TRUST_PROXY değerini 016 tam sayısıyla sınırlar ve yalnız HTTP Pod’larına yollar; sınırsız true kullanmayın.

PostgreSQL şeması tam sürüm ister. App/worker Recreate kullanır; yükseltmeden önce tüm eski Pod’ları bitirin, bir yeni süreç advisory lock altında geçirir. Karışık sürüm veya sıfır kesinti iddia etmeyin; geri dönüş temiz PostgreSQL/S3’e doğrulanmış yedektir.

Etkin team worker.replicaCount >= 1 ister. Tam askıya alma için app/worker sıfır; app sıfır, worker pozitif yalnız boşaltma/kurtarmadır.

Özel Yedekleme Yardımcısı

deploy/private/libre-webui-backup betiği şunları okur:

DeğişkenVarsayılanAmaç
LIBRE_WEBUI_STACK_DIR/opt/libre-webuiCompose dizini
LIBRE_WEBUI_BACKUP_DIR/var/backups/libre-webuiYedek dizini
LIBRE_WEBUI_BACKUP_RETENTION_DAYS14Saklama günü
LIBRE_WEBUI_CONTAINER_NAMElibre-webuiKapsayıcı adı
LIBRE_WEBUI_BACKUP_KEY_DIR/etc/libre-webui/backup-keysAnahtar dizini
LIBRE_WEBUI_RESTORE_IMAGErequiredGeri yükleme image’ı
LIBRE_WEBUI_RESTORE_CONFIG_DIR/etc/libre-webui/restoredGeri yüklenen yapılandırma

systemd birimi isteğe bağlı /etc/libre-webui/backup.env okur; root sahibi, 0600 olmalı ve uygulama .env dosyasını okumaz. Özel yedek dizini hizmet drop-in içinde tam ReadWritePaths= ister. Bkz. Özel dağıtım.

Kimlik Doğrulama ve Güvenlik

İkinci faktör politikası optional veya required olabilir. Web Push kişisi varsayılan mailto:admin@localhost; VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, VAPID_SUBJECT push’ı, TURNSTILE_SITE_KEY, TURNSTILE_SECRET_KEY, TURNSTILE_EXPECTED_HOSTNAME Turnstile’ı ayarlar.

Temel değişkenler: varsayılan false olan ENABLE_SIGNUP, JWT_SECRET, varsayılan 7d olan JWT_EXPIRES_IN, ENCRYPTION_KEY, DEBUG_ENCRYPTION, Turnstile, MFA_REQUIRED_MODE, WEBAUTHN_RP_ID, VAPID. ENABLE_SIGNUP=false ilk yöneticiyi yine kabul eder. JWT sid ile bağlıdır. AUDIT_RETENTION_DAYS varsayılan 180. TLS modu require, test log düzeyi warn olabilir.

Genel OIDC Tek Oturum Açma

Kararlı kullanıcı ID’si sub, gruplar varsayılan groups claim’inden gelir. OIDC_GROUP_CLAIM, OIDC_SYNC_GROUPS eşitlemeyi; OIDC_CALLBACK_URL, OIDC_ALLOWED_EMAIL_DOMAINS, OIDC_ADMIN_GROUPS callback, etki alanı ve yönetici gruplarını ayarlar.

OIDC_ISSUER_URL <issuer>/.well-known/openid-configuration ile, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET gerekir; OIDC_DISPLAY_NAME varsayılan Single Sign-On, OIDC_SCOPES openid profile email. Origin başlığı eşleşmelidir.

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. Bilet tek kullanımlı, köken denetlenir.

OAuth

GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, GITHUB_CALLBACK_URL, HUGGINGFACE_CLIENT_ID, HUGGINGFACE_CLIENT_SECRET, HUGGINGFACE_CALLBACK_URL; varsayılan callback BASE_URL kullanır.

Ollama

OLLAMA_BASE_URL varsayılan http://localhost:11434, OLLAMA_TIMEOUT 300000, OLLAMA_LONG_OPERATION_TIMEOUT 900000, OLLAMA_MAX_CONTEXT 32768.

Web Araması

SEARXNG_URL ucu önceden doldurur; yönetici aramayı ayrıca etkinleştirir.

Libre Claw

LIBRE_CLAW_BASE_URL varsayılan http://127.0.0.1:8766, LIBRE_CLAW_TIMEOUT_MS 30000.

Work Çalışma Zamanı

Codex evi varsayılan ~/.codex. Varsayılan image node:22.22-bookworm@sha256:2d178f2785b96dfbf62a416ca2e40f50e30150b4ff3320d706f0d96e90600eb3, ağ/ad alanı libre-webui-work, komut/backend docker. Team’de AGENT_CLI_MODELS_ENABLED=false, CODEX_OAUTH_MODELS_ENABLED=false gerekir.

Komut zaman aşımı 120000; diğer varsayılanlar 2, 2, 2, havuz üstü 100, ayrıca 256, 2g, 3, 4173, 48, 500, 50000, 5Gi, 6080, 6081.

Tüm Work değişkenleri: 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.

Ana bilgisayar kökleri : ile ayrılır; erişim modları admins, admins, admins, all-users, all-users, all-users, all-users, all-users olabilir. Backend kubernetes olabilir, Codex auth.json okur. Agent CLI/Codex yalnız solo; team false ister. Klasörler /workspace altına bağlanır; .ssh, .gnupg, .aws, .config reddedilir. claude ve codex yalnız yöneticilere görünür.

WORK_NETWORK_NAME, DNS WORK_RUNTIME_DNS, Kubernetes work.networkPolicy.blockedEgressCidrs kullanır. Terminal WORK_DOCKER_SOCKET, sonra DOCKER_HOST (unix://, tcp://, docker-compose.socket-proxy.yml), sonra /var/run/docker.sock kullanır; ssh:// ve DOCKER_TLS_VERIFY terminali devre dışı bırakır. Helm work.env iletir. Araç bütçesi max(128, WORK_MAX_AGENT_ROUNDS × 8), son durum needs_input, kalıcı çıktı yaklaşık 20 000 karakterdir.

Compose DOCKER_GID varsayılan 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 sıfır veya bir app replikası; tam team PostgreSQL, S3, PGVector, Redis ile birden çok replika ve aynı image, StorageClass, work.env alan dış worker kullanabilir. WORK_DOCKER_PUBLISHED_HOST uygulama varsayılanında WORK_PREVIEW_BIND ile aynıdır, Compose varsayılanında ise host.docker.internal; yerel Docker Engine üzerindeki Compose kurulumları WORK_PREVIEW_BIND için erişilebilir, herkese açık olmayan bir köprü arayüzü kullanmalıdır.

Sağlayıcı Model Keşfi

DeğişkenVarsayılanAmaç
PLUGIN_MODEL_DISCOVERY_TTL_MS21600000 (6 h)Katalog yenileme yaşı
PLUGIN_MODEL_DISCOVERY_RETRY_MS600000 (10 min)Başarısız denemeler arası süre
PLUGIN_MODEL_DISCOVERY_REFRESH_DEADLINE_MS3000Liste yanıtının yenilemeyi beklemesi

Açık Modelleri yenile her zaman sağlayıcıya gider ve aralığı yok sayar; süreden taşan sonuç sonraki istekte görünür.

Sağlayıcı Eklenti Anahtarları

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 ilgili sağlayıcıların dağıtım varsayılanlarıdır.

Ortam anahtarı yalnız gölgelenmemiş yerleşik tanımın rotası/auth’uyla kullanılır. İçe aktarılan, yerleşik ID’yi kullanan yazılabilir veya yönetici özel rotası aynı hesabın anahtarını ister; Libre ortam sırrını takmaz. Güven derlenmiş manifest hash’inden gelir.

Kullanıcı anahtarı tanım, kaynak, auth sözleşmesi ve rotaya bağlıdır; hedef değişince yeniden kaydedilmelidir. Eski bağsız anahtar yalnız tam yerleşik rotada ilk kullanımda bağlanır.

Kaynakta göreli PLUGINS_DIR backend’den, paketli başlatıcıda çağırandan çözülür. Uyumluluk için backend/plugins ve eski konumlar okunur. Tanımları $DATA_DIR/plugins içine taşıyın; kurtarma eski yolları dış durum sayar ve yalnız birim yedeğini engeller. Eklenti dizini/JSON fiziksel normal girdi olmalıdır, symlink izlenmez.

Ön Yüz

DeğişkenVarsayılanAmaç
VITE_API_BASE_URLaynı kaynaklı geliştirme proxy'si veya üretim API'siAPI temel URL
VITE_WS_BASE_URLAPI URL’den çıkarılırChat/Work için mutlak ws:/wss: temel
VITE_APP_VERSIONVite paket sürümüGösterilen uygulama sürümü
VITE_DEMO_MODEfalsetrue demo taklitlerini açar
VITE_API_TIMEOUT300000API zaman aşımı ms
VITE_BACKEND_URLhttp://localhost:3001Bazı auth yardımcıları
VITE_DEBUG_VERBOSEayarsızAyrıntılı geliştirme günlüğü
VITE_LOG_LEVELayarsızÖn yüz günlük düzeyi
ELECTRON_BUILDayarsıztrue Electron Vite davranışı

VITE_WS_BASE_URL, Chat ve Work terminali için tüm WebSocket yedeklerini geçersiz kılar. Reverse proxy yol öneki içerebilir fakat kimlik bilgisi, query veya fragment olmayan mutlak ws:/wss: olmalıdır. Ayarsızsa Electron file: istemcileri ws://localhost:3001 kullanır; tarayıcı istemcileri temel URL'yi önce VITE_API_BASE_URL'den, ardından tarayıcı kökeninden türetir. Vite, geliştirme kökenini 3001 portundaki backend'e proxy'ler.

Bakım Betikleri

DeğişkenAmaç
CHANGELOG_AI0 yapay zekâ changelog taslağını kapatır
CHANGELOG_AI_MODELSürüm/changelog Ollama modeli
CHANGELOG_AI_TIMEOUT_MSÜretim zaman aşımı ms
CHANGELOG_AI_MODEL=glm-5.2:cloud npm run changelog
CHANGELOG_AI=0 npm run release:minor

Üretim Örneği

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

İlgili Belgeler