Hop til hovedindhold

Miljøvariabler

Denne side viser de operatørrettede miljøvariabler, som læses af den aktuelle Libre WebUI-backend, frontend og vedligeholdelsesscripts. Interne kanarieværdier kun til test er bevidst udeladt.

Backendserver

VariabelStandardFormål
NODE_ENVdevelopmentRuntime-tilstand
PORT3001 i udvikling, 8080 i produktionBackendens HTTP-port
TRUST_PROXYikke angivet (0 i Helm)Nøjagtigt antal betroede reverse proxy-hop til klientadressen
CORS_ORIGINlokale udviklings-originsKommaseparerede tilladte browser-origins
SERVE_FRONTENDikke angivetServér bygget frontend fra backend, når true
DOCKER_ENVikke angivetAktivér Docker-orienteret adfærd, når true
DATA_DIRbackend/data; ~/.libre-webui i pakket CLIVedvarende datamappe
PLATFORM_PREFLIGHT_TMP_DIRbackend/temp/preflight; brugercache i pakket CLIArbejdsplads til privat DB-/WAL-inspektionskopi; dimensionér til database plus WAL
PLUGIN_UPLOAD_TEMP_DIRlibre-webui-plugin-uploads i operativsystemets tempArbejdsplads til igangværende pluginuploads
PLUGINS_DIR$DATA_DIR/pluginsSkrivbar mappe til installerede/tilpassede plugins
BASE_URLhttp://localhost:3001Basis-URL til OAuth-callbackstandard
LOG_LEVELinfo (warn i test)Backendens logniveau
LOG_FORMATtextjson giver strukturerede enkeltlinjelogge med tid, korrelations-ID og maskering
OTEL_EXPORTER_OTLP_ENDPOINTikke angivetValgfri OTLP/HTTP JSON-telemetrieksport; uden værdi forlader ingen telemetri processen
OTEL_EXPORTER_OTLP_HEADERSikke angivetKommaseparerede key=value-headere til OTLP-indsamleren
OTEL_SERVICE_NAMElibre-webuiRessourceattributten service.name på eksporteret telemetri
WEBUI_HOSTloopback; 0.0.0.0 i DockerHTTP-lytteadresse
OPEN_BROWSERtrue, når frontend serveresAngiv false for at forhindre automatisk browserstart
FULL_DOCUMENT_CONTEXT_MAX_TOKENS32000Tokenbeskyttelse til fulddokumentkontekst pr. chat (1000-2000000)
GALLERY_RETENTION_DAYSikke angivet (behold altid)Slet gallerimedier ældre end dette antal dage gennem planlæggerens gennemløb
RECOVERY_DRILL_INTERVAL_HOURSikke angivet (øvelser slået fra)Kør verificeret gendannelsesøvelse automatisk hver N. time (solo)
RECOVERY_DRILL_HISTORY60Bevarede historikposter for gendannelsesøvelser

Kildekørsler forankrer relative DATA_DIR, PLUGINS_DIR og PLATFORM_PREFLIGHT_TMP_DIR i backendmappen uafhængigt af shellens arbejdsmappe. Uden DATA_DIR eller med DATA_DIR=./data bruger rod- og backendkommandoer derfor backend/data. For kompatibilitet fortsætter DATA_DIR=./backend/data med at vælge backend/backend/data; ændr kun under en bevidst, stoppet sikkerhedskopiering og migrering. En kildeprofil uden værdi bruger også backend/backend/data, når det er det eneste vedvarende lager. Hvis begge placeringer indeholder tilstand, og ingen sti er valgt, afvises starten sikkert i stedet for at gætte, kopiere eller sammenflette.

Startprogrammerne npx, global npm og interaktiv Homebrew bevarer data under ~/.libre-webui. En udtrykkelig relativ DATA_DIR opløses fra kalderens arbejdsmappe og gøres absolut før backendstart. Relativ PLUGINS_DIR følger samme regel; uden værdi findes skrivbare plugins under $DATA_DIR/plugins. Inspektionsområdet er som standard en skrivbar cache uden for datamappen: ~/Library/Caches/libre-webui på macOS, %LOCALAPPDATA%\libre-webui på Windows eller ${XDG_CACHE_HOME:-~/.cache}/libre-webui på andre systemer. Homebrew-tjenesten fastgør samme hjemmemappe og bruger var/libre-webui/preflight. Angiv PLATFORM_PREFLIGHT_TMP_DIR, når cachen ikke rummer database og WAL. Docker- og Helm-udrulninger bruger absolutte /app/backend/data og /app/backend/temp/preflight med separate monteringer.

Platformsgrundlag

Standardprofilen solo bruger SQLite, lokale krypterede blobs, krypterede indlejrede vektorer, lokal koordinering og en indlejret vedvarende worker. team bruger PostgreSQL, private S3-kompatible blobs, PGVector, Redis og en ekstern worker. Teamkonfiguration afvises sikkert, medmindre alle delte afhængigheder vælges sammen.

VariabelStandardFormål
LIBRE_PLATFORM_MODEsoloVælg sammenhængende solo- eller team-profil
DATABASE_BACKENDsqliteVælg sqlite eller postgres
DATABASE_URLikke angivetPostgreSQL-forbindelses-URL, kræves med postgres
DATABASE_SSL_MODEverify-fullPostgreSQL TLS-politik: disable, require eller værtsnavnsverificerende verify-full
POSTGRES_MIGRATION_MODEapplyKør kompatible migreringer under lederlåsen eller validate til skrivebeskyttet skemakontrol
POSTGRES_POOL_MAX10Højeste PostgreSQL-forbindelser pr. program- eller workerproces (1-100)
POSTGRES_CONNECT_TIMEOUT_MS5000Tidsgrænse for PostgreSQL-forbindelse (1-60000 ms)
POSTGRES_IDLE_TIMEOUT_MS30000Tidsgrænse for inaktiv PostgreSQL-forbindelse (1-600000 ms)
POSTGRES_STATEMENT_TIMEOUT_MS30000Tidsgrænse for PostgreSQL-sætning (1-600000 ms)
POSTGRES_MIGRATION_LOCK_TIMEOUT_MS60000Ventetid på migreringslederlås (1-600000 ms)
BLOB_STORE_BACKENDlocalVælg krypteret local lager eller privat s3
VECTOR_STORE_BACKENDembedded med SQLiteVælg krypterede embedded vektorer eller pgvector
COORDINATION_BACKENDlocal i solo; redis i teamVælg proceslokal eller Redis-koordinering
REDIS_URLikke angivetredis:- eller rediss:-URL, kræves med Redis-koordinering
REDIS_KEY_PREFIXlibreNamespace på 1-64 tegn til Libres koordineringsnøgler
REDIS_CONNECT_TIMEOUT_MS5000Indledende tidsgrænse for Redis-forbindelse, højst 60 sekunder
JOB_WORKER_MODEembedded i solo; external i teamKør håndteringer i programmet eller en separat delt worker
RESOURCE_LEASE_TTL_MS30000Koordineringslease-TTL til vedvarende jobressourcer (5000-300000)
JOB_WORKER_CONCURRENCY4Vedvarende job en worker kan køre samtidigt (1-32)
CHAT_STREAM_EVENT_RETENTION_HOURS24Timer, hvor chatstrømshændelser bevares før timerensning
PLATFORM_EVENT_RETENTION_DAYS30Dage, en vedvarende hændelse bevares før timerensning
PLATFORM_JOB_RETENTION_DAYS30Dage, afsluttede ikke-livscyklusjob bevares
LIBRE_SKIP_STARTUP_INTEGRITY_SCANikke angivet1 springer dyb scanning af ældre chiffertekst over ved næste start
STORAGE_ENCRYPTION_KEYSikke angivetHemmeligt JSON-nøglekort; skal indeholde legacy, der matcher ENCRYPTION_KEY
STORAGE_ENCRYPTION_ACTIVE_KEY_IDikke angivetNøgle-ID til nye lokale blobs og indlejrede vektorer
BLOB_QUOTA_BYTES_PER_USER10737418240Vedvarende maksimale klartekst-blobbytes pr. ejer
BLOB_QUOTA_RESERVATION_TTL_MS3600000Levetid for forladt streamingkvotereservation (mindst 60000 ms)
S3_BUCKETikke angivetPrivat S3-kompatibel bucket, kræves med s3
S3_REGIONikke angivetS3-region, kræves med s3
S3_ENDPOINTudbyderstandardValgfri absolut HTTP(S)-endpoint til MinIO eller kompatibel tjeneste
S3_ACCESS_KEY_IDSDK-legitimationskædeValgfri udtrykkelig S3-adgangsnøgle
S3_SECRET_ACCESS_KEYSDK-legitimationskædeKræves, når udtrykkelig adgangsnøgle angives
S3_SESSION_TOKENikke angivetValgfri token sammen med udtrykkelige S3-oplysninger
S3_FORCE_PATH_STYLEfalseAngiv true til tjenester, der kræver stibaseret adressering
S3_BLOB_PREFIXlibre/blobsUigennemsigtigt bucketnøglepræfiks ejet af Libre

Uden et versionsstyret lagernøglekort bruger lageradaptere den eksisterende ENCRYPTION_KEY som ID legacy; hvis den også mangler, læser de ${DATA_DIR}/.encryption_key uden at oprette eller ændre den. Udtrykkelig konfiguration og den vedvarende fil skal stemme overens. Hvis kortet indføres, mens en ældre nøgle findes, bevares den under præcis ID legacy, indtil alle objekter og vektorer er skrevet eller pakket om og verificeret. Konflikter, usikre filtilladelser, symlinks og manglende nøgler afvises sikkert.

Redis er koordinering, ikke kanonisk persistens. Redis alene gør ikke SQLite, lokale filer eller procesejet tilstand sikker på tværs af replikaer. I teamtilstand bruger HTTP-grænser, chat-/WebSocket-forbindelser, STT/TTS/lydarbejde, arkivimporter og Work-terminaler Redis-baseret fælles adgang. Kapaciteter gælder på tværs af alle replikaer. Fejl returnerer 503 eller afbryder den igangværende operation; Libre falder aldrig tilbage til en uafhængig lokal tæller. Se Platformsgrundlag.

Medfølgende team-Compose og Helm videresender alle vælgere og justeringsværdier til program og ekstern worker. I Helm findes ikke-hemmelige vælgere under env; brug secrets.redisUrl, secrets.databaseUrl og secrets.storageEncryptionKeys til forbindelser og nøgler. PostgreSQL-poolgrænser er pr. proces: budgettér mindst (replicaCount + worker.replicaCount) * POSTGRES_POOL_MAX forbindelser plus margin. Behold DATABASE_SSL_MODE=verify-full til administreret/fjern-PostgreSQL. Kun medfølgende Compose vælger disable, fordi lytteren er isoleret. Team-Helm kræver en stabil secrets.jwtSecret, der deles af alle pods; ellers oprettes proceslokalt signeringsmateriale. S3 modtager uigennemsigtige nøgler og chiffertekst; bucket- og udbyder-URL'er gemmes ikke i metadata.

Integrerede solo- og teamarkiver bevarer PostgreSQL-pools og tidsgrænser, Redis-tidsgrænsen, begge blobkvoter, platformsvælgere og S3-adressering i signeret og krypteret beskyttet konfiguration. En ren gendannelse kan derfor publicere driftsværdier uden klartekst i arkivmetadata.

Team-Compose- og Helm-par får samme opløste OLLAMA_BASE_URL, OLLAMA_TIMEOUT, OLLAMA_LONG_OPERATION_TIMEOUT og OLLAMA_MAX_CONTEXT. Udbyderkald til indlejringer, vedvarende chats og Work kører i workeren, så værdierne må ikke afvige. Serverindgangene fortolker numeriske værdier som fuldstændige positive base-10-heltal før tilstand. Delværdier som 300000ms, eksponent/hex, værdier uden for interval og lang tidsgrænse under standarden stopper starten.

Helm begrænser TRUST_PROXY til præcist heltal 016 og sender det kun til HTTP-pods. Behold 0 til direkte trafik. Angiv præcist fast antal for ingress-/load-balancer-kæden; brug aldrig ubegrænset true. Forkert antal grupperer klienter under proxyadressen eller stoler på en klientangivet adresse.

PostgreSQL-skemakompatibilitet kræver præcis version. Helm-program og worker bruger Recreate; dræn og afslut alle gamle pods før teamopgradering, og lad én ny proces migrere under rådgivende lederlås. Kør ikke blandede binærversioner, og påstå ikke nul afbrydelse. Rollback gendanner det verificerede arkiv til rene PostgreSQL-/S3-mål før den matchende ældre binær.

Et aktivt teamprogram kræver worker.replicaCount >= 1; Helm afviser et levende program uden vedvarende worker. Sæt program og worker til nul for fuld pause. Program nul med positiv worker er en bevidst worker-eksklusiv drænings-/gendannelsestilstand, der fortsætter købehandling uden webtrafik.

Privat sikkerhedskopieringshjælp

Variablerne konfigurerer deploy/private/libre-webui-backup og læses af vedligeholdelsesscriptet, ikke programprocessen:

VariabelStandardFormål
LIBRE_WEBUI_STACK_DIR/opt/libre-webuiMappe med privat Compose-fil
LIBRE_WEBUI_BACKUP_DIR/var/backups/libre-webuiBeskyttet mappe til sikkerhedskopier og låsefil
LIBRE_WEBUI_BACKUP_RETENTION_DAYS14Alder, hvor færdige sikkerhedskopier slettes
LIBRE_WEBUI_CONTAINER_NAMElibre-webuiUdrullet programcontainer, der inspiceres
LIBRE_WEBUI_BACKUP_KEY_DIR/etc/libre-webui/backup-keysPrivat mappe til arkivkryptering og signeringsnøgler
LIBRE_WEBUI_RESTORE_IMAGEkræves til gendannelseGennemgået uforanderligt Libre-image-ID eller digest
LIBRE_WEBUI_RESTORE_CONFIG_DIRsti pr. volumen under /etc/libre-webui/restoredNy mappe til gendannet konfiguration

systemd-enheden læser tilsidesættelser fra den valgfrie root-ejede /etc/libre-webui/backup.env. Angiv tilstand 0600. Stackmappe, opbevaringstid, containernavn og nøglemappe kan angives der. Filsystemsandkassen tillader kun skrivning under standardmappen. En tilpasset LIBRE_WEBUI_BACKUP_DIR kræver desuden præcis forudoprettet mappe i en ReadWritePaths=-drop-in; se Privat fjernudrulning.

Godkendelse og sikkerhed

VariabelStandardFormål
ENABLE_SIGNUPfalseTillad registrering efter første lokale administrator
JWT_SECRETgenereret/reserve i udviklingJWT-signeringshemmelighed; angiv i produktion
JWT_EXPIRES_IN7dSessionstokens levetid
ENCRYPTION_KEYautomatisk genereretHexnøgle på 64 tegn til krypterede værdier
DEBUG_ENCRYPTIONikke angivetLog krypteringsfejlfinding, når angivet
TURNSTILE_SITE_KEYikke angivetCloudflare Turnstile-webstedsnøgle til login
TURNSTILE_SECRET_KEYikke angivetTurnstile-hemmelighed til backendverifikation
TURNSTILE_EXPECTED_HOSTNAMEværtsnavn fra BASE_URLObligatorisk værtsnavn i Cloudflares verifikationssvar
MFA_REQUIRED_MODEikke angivet (optional)Fastgør tofaktorpolitikken til optional eller required
WEBAUTHN_RP_IDanmodningens værtsnavnFast relying-party-ID til passkeys bag flere værtsnavne
VAPID_PUBLIC_KEYgenereret og krypteret gemtFastgør offentlig Web Push VAPID-nøgle
VAPID_PRIVATE_KEYgenereret og krypteret gemtFastgør privat Web Push VAPID-nøgle
VAPID_SUBJECTmailto:admin@localhostKontaktclaim i signerede Web Push-godkendelser

Turnstile aktiveres kun, når begge nøgler findes.

ENABLE_SIGNUP=false tillader stadig den første lokale administrator i en tom database og blokerer derefter yderligere konti. Beskyt en fjernadgangsstartrute med en ydre identitetsgrænse før første start.

Hver JWT bindes til en serversession (sid), så logout eller tilbagekaldelse fra Indstillinger → Sessioner ugyldiggør token på alle replikaer og lukker aktive WebSocket-forbindelser. Opbevaring af sikkerhedsrevision kan konfigureres:

VariabelStandardFormål
AUDIT_RETENTION_DAYS180Dage, rækker bevares i sikkerhedsrevisionsloggen

Generisk OIDC-baseret single sign-on

Alle OpenID Connect-udbydere med registreringsdokument kan bruges. Flowet bruger PKCE (S256), CSRF-tilstand og nonce, der verificeres i signaturkontrolleret ID-token. Identiteter forbindes på det stabile claim sub.

VariabelStandardFormål
OIDC_ISSUER_URLikke angivetUdstederens basis-URL; registrering hentes fra <issuer>/.well-known/openid-configuration
OIDC_CLIENT_IDikke angivetOAuth-klient-ID registreret hos udbyderen
OIDC_CLIENT_SECRETikke angivetOAuth-klienthemmelighed
OIDC_DISPLAY_NAMESingle Sign-OnEtiket på loginknappen
OIDC_SCOPESopenid profile emailAnmodede omfang
OIDC_CALLBACK_URLBASE_URL + OIDC-callbackruteOmdirigerings-URI registreret hos udbyderen
OIDC_ALLOWED_EMAIL_DOMAINSikke angivetKommasepareret liste; verificeret e-mail i et domæne kræves
OIDC_GROUP_CLAIMgroupsID-tokenclaim med gruppenavne
OIDC_ADMIN_GROUPSikke angivetKommasepareret liste; adminrollen følger medlemskab ved login
OIDC_SYNC_GROUPSfalsetrue synkroniserer Libre-grupper med gruppeclaim ved login

OIDC aktiveres kun, når udsteder-URL, klient-ID og klienthemmelighed findes. E-mail, der allerede bruges af en ikke-forbundet lokal konto, afvises i stedet for lydløst at blive flettet, og kontooprettelse følger ENABLE_SIGNUP.

WebSocket-adgang til Chat kan justeres uden svagere godkendelse:

VariabelStandardFormål
CHAT_WS_MAX_PAYLOAD_BYTES10 MiBStørste accepterede WebSocket-besked
CHAT_WS_MAX_MESSAGES_PER_MINUTE120Beskedloft pr. WebSocket-forbindelse
CHAT_WS_MAX_ACTIVE_GENERATIONS_PER_USER4Udbydergenereringer pr. konto
CHAT_WS_MAX_CONNECTIONS_PER_USER5Samtidige godkendte sockets pr. konto
WEBSOCKET_TICKET_TTL_MS30000Levetid for engangsbillet Chat/Work, højst 60 sekunder

Browseren udveksler Authorization-headeren med en uigennemsigtig billet og placerer kun den kortlivede værdi i WebSocket-URL'en. Billetter bruges én gang, bindes til protokol og session og gemmes som hash. Ved CORS_ORIGIN eller BASE_URL skal Origin matche. Angiv mindst én ved fjernadgang; uden begge tillader filteret lokal udvikling. Originløse opgraderinger understøttes bevidst til Electron og andre klienter, men kræver gyldig engangsbillet og samme konto-, Work- og opgavekontroller. Betragt billetten som godkendelsesgrænse, og begræns øvrig adgang med TLS, firewall og reverse proxy.

OAuth

VariabelFormål
GITHUB_CLIENT_IDGitHub OAuth-klient-ID
GITHUB_CLIENT_SECRETGitHub OAuth-klienthemmelighed
GITHUB_CALLBACK_URLTilsidesættelse af GitHub-callback-URL
HUGGINGFACE_CLIENT_IDHugging Face OAuth-klient-ID
HUGGINGFACE_CLIENT_SECRETHugging Face OAuth-klienthemmelighed
HUGGINGFACE_CALLBACK_URLTilsidesættelse af Hugging Face-callback-URL

Hvis callback-URL'er ikke angives, bygger Libre WebUI standardværdier fra BASE_URL.

Ollama

VariabelStandardFormål
OLLAMA_BASE_URLhttp://localhost:11434Basis-URL til Ollama-API
OLLAMA_TIMEOUT300000Standardtidsgrænse for Ollama-anmodning (1.000-3.600.000 ms)
OLLAMA_LONG_OPERATION_TIMEOUT900000Tidsgrænse for lang operation, ikke kortere end OLLAMA_TIMEOUT
OLLAMA_MAX_CONTEXT32768Største modelkontekst, der anvendes automatisk (128-2.097.152 tokens)

Websøgning

VariabelStandardFormål
SEARXNG_URLikke angivetStandardendpoint til SearXNG; administratoren aktiverer stadig under Indstillinger > Søg

Libre Claw

VariabelStandardFormål
LIBRE_CLAW_BASE_URLhttp://127.0.0.1:8766Valgfri Libre Claw-daemon-URL
LIBRE_CLAW_TIMEOUT_MS30000Tidsgrænse for Libre Claw HTTP-anmodning

Work-runtime

Variablerne konfigurerer Work-kørsel på maskinen eller Kubernetes-clusteret, der kører backend. Docker er standardruntime; Helm vælger Kubernetes, når work.enabled=true.

VariabelStandardFormål
WORK_RUNTIME_IMAGEnode:22.22-bookworm@sha256:2d178f2785b96dfbf62a416ca2e40f50e30150b4ff3320d706f0d96e90600eb3Fastgjort image til Work-sandkasser
WORK_DOCKER_COMMANDdockerDocker-backendens CLI-program
WORK_COMMAND_TIMEOUT_MS120000Standardtidsgrænse; værktøj kan anmode om højst 600000 ms
WORK_MAX_OUTPUT_CHARS50000Grænse for indfanget stdout/stderr pr. stream
WORK_MAX_AGENT_ROUNDS48Udbyderuafhængigt rundebudget pr. kørsel
WORK_STATUS_BLURB_MODEL1Angiv 0 for at springe modelkaldet, der skriver agentstatus, over
WORK_MEMORY_LIMIT2gHukommelsesgrænse pr. Work-container
WORK_CPU_LIMIT2CPU-grænse pr. Work-container
WORK_PIDS_LIMIT256Procesgrænse pr. Work-container
WORK_PREVIEW_PORT4173Port til forhåndsvisningsserver i opgavecontaineren
WORK_PREVIEW_BIND127.0.0.1Værtsgrænseflade, hvor forhåndsvisningsporten publiceres; Compose-installationer på native Docker Engine skal bruge en nåbar ikke-offentlig bridge-grænseflade
WORK_DOCKER_PUBLISHED_HOSTappstandard: samme som WORK_PREVIEW_BIND; Compose-standard: host.docker.internalBackendvært/IP til Docker-publicerede forhåndsvisnings-, skærm- og lydporte
WORK_COMPUTER_SCREEN_PORT6080Containerport til Work Computer-skærmbro
WORK_COMPUTER_AUDIO_PORT6081Containerport til Work Computer-lydbro
WORK_MAX_ACTIVE_RUNTIMES_GLOBAL3Samtidige runtimebaserede opgaver for instansen
WORK_MAX_ACTIVE_RUNTIMES_PER_USER2Samtidige runtimebaserede opgaver pr. bruger
WORK_MAX_TASKS_GLOBAL500Største antal vedvarende Work-opgaver for instansen
WORK_MAX_TASKS_PER_USER100Største antal vedvarende Work-opgaver pr. administrator
WORK_NETWORK_NAMElibre-webui-workAdministreret sandkassebro-netværk
WORK_RUN_LEASE_WAIT_MS60000Ventetid på opgavens delte runtimelease før replikakonflikt
WORK_RUNTIME_DNSikke angivetKommaseparerede resolver-IP'er til netværksopgaver
WORK_DOCKER_SOCKETDOCKER_HOST ved unix:// eller tcp://, ellers /var/run/docker.sockDocker Engine-endpoint til terminal og diagnostik
WORK_TERMINAL_MAX_SESSIONS_PER_TASK2Samtidige browserterminaler pr. opgave
WORK_TERMINAL_IDLE_TIMEOUT_MS900000Inaktivitetstid før terminallukning
WORK_RUNTIME_IDLE_TIMEOUT_MS0 (deaktiveret)Stop sandkasse efter denne inaktivitet
WORK_HOST_WORKSPACES_ENABLEDfalseTillad værtsmappe i stedet for volumen
WORK_HOST_WORKSPACE_ROOTSserverbrugerens hjemmemappe:-separerede rødder, som værtsarbejdsområdet skal ligge inden for
WORK_RUNTIME_BACKENDdockerSandkassebackend: docker eller kubernetes
WORK_K8S_NAMESPACElibre-webui-workNamespace til Kubernetes-sandkassepods og PVC'er
WORK_K8S_STORAGE_CLASSclusterstandardStorageClass til arbejdsområde-PVC'er
WORK_K8S_WORKSPACE_SIZE5GiPVC-størrelse pr. opgave (reel diskkvote)
WORK_K8S_POD_READY_TIMEOUT_MS900000Vent på, at en sandkasse-Pod bliver Running
WORK_K8S_POD_GONE_TIMEOUT_MS60000Vent på, at slettet Pod forsvinder
AGENT_CLI_MODELS_ENABLEDikke angivet (adminregulator, fra)Fastgør Agent-funktionen, eller overlad til administratorregulatoren
TOOLS_ACCESS_MODEikke angivet (kun admin)Fastgør chatværktøjer til admins eller all-users
STT_ACCESS_MODEikke angivet (alle brugere)Fastgør tale-til-tekst til admins eller all-users
TTS_ACCESS_MODEikke angivet (alle brugere)Fastgør tekst-til-tale til admins eller all-users
VOICE_MODE_ACCESS_MODEikke angivet (alle brugere)Fastgør håndfri stemmetilstand til admins eller all-users
VOICE_CLONING_ACCESS_MODEikke angivet (alle brugere)Fastgør stemmekloning til admins eller all-users
TOOLS_PRIVATE_NETWORK_ALLOWLISTikke angivetNøjagtige værtsnavne til private adresser, kommaseparerede
AGENT_CLI_TIMEOUT_MS600000Tid før agent-CLI afsluttes
CODEX_OAUTH_MODELS_ENABLEDtrueTilbyd Codex (ChatGPT) til administratorer
CODEX_HOME~/.codexPlacering af Codex CLI-login (auth.json)

Agent-CLI-binærer og Codex OAuth-oplysninger er nodelokale. De understøttes kun i en solo-proces, hvor registrering og kørsel ser samme filsystem og miljø. Teamtilstand kører vedvarende chatjob i en ekstern worker og kræver derfor AGENT_CLI_MODELS_ENABLED=false og CODEX_OAUTH_MODELS_ENABLED=false; starten afviser øvrige værdier i stedet for at annoncere en udbyder, som kun findes på én programreplika. Brug Ollama eller et udbyderplugin, hvis oplysninger og routing gemmes i delt PostgreSQL eller videresendes identisk.

På Docker-backend bind-monterer et værtsarbejdsområde en rigtig mappe ved /workspace, så opgaven læser og skriver direkte i stedet for i egen volumen. Kubernetes afviser værtsmapper. Det reducerer bevidst Docker-sandkassen: hold WORK_HOST_WORKSPACES_ENABLED fra, og hold WORK_HOST_WORKSPACE_ROOTS så snæver som muligt. Stier opløses gennem symlinks før rodkontrol, og .ssh, .gnupg, .aws, .config afvises fuldstændigt.

Agent-CLI-modeller eksponerer installerede kodeagenter (claude, codex) som valgbare chatmodeller, så en abonnementsagent kan svare uden API-nøgle. Kun administratorer ser dem; CLI kører som serverbrugeren og arver agentoplysninger. Behandl det som shelladgang for agenterne.

På Docker forbindes netværksopgaver til den administrerede bro WORK_NETWORK_NAME, oprettet med intercontainerkommunikation slået fra, så sandkasser ikke når hinanden eller udrulningscontainere. WORK_RUNTIME_DNS er Docker-egresspolitikkens krog: peg på en filtrerende resolver til navnelister. Ikke-IP-adresser afvises og logges. DNS-filter begrænser ikke direkte IP-egress; brug værtsfirewall efter behov. Kubernetes bruger diagrammets standardafvisende NetworkPolicy og work.networkPolicy.blockedEgressCidrs.

På Docker kommunikerer terminal og diagnostik direkte med Docker Engine-API'et. De følger WORK_DOCKER_SOCKET, ellers DOCKER_HOSTunix:// eller almindelig HTTP tcp:// som en socketproxy (se docker-compose.socket-proxy.yml)—ellers /var/run/docker.sock. En DOCKER_HOST, klienten ikke kan bruge (ssh:// eller tcp:// med DOCKER_TLS_VERIFY), rapporterer terminal og diagnostik utilgængelige; Work fortsætter gennem Docker-CLI. På Kubernetes bruges Pod exec uden Docker-endpoint.

Work læser værdierne ved backendstart. Forhåndsvisningsporten er intern i opgavecontaineren; Libre WebUI publicerer den på en dynamisk loopbackport i stedet for alle værtsgrænseflader.

Fastgør runtime-imagen til en gennemgået version eller digest. Højere samtidighed og ressourcegrænser øger kapaciteten, autonome kørsler kan bruge. WORK_MAX_AGENT_ROUNDS gælder ens for Ollama og plugins. Sikkerhedsbudgettet er max(128, WORK_MAX_AGENT_ROUNDS × 8). Når budgettet er opbrugt, anmoder Work om en afsluttende overdragelse uden værktøjer og slutter i needs_input i stedet for en rå grænsefejl. En opfølgende kørsel fortsætter i samme vedvarende arbejdsområde. Gemt værktøjsoutput begrænses separat til ca. 20.000 kildetegn plus afkortningsmarkør.

Variablerne justerer en allerede tilgængelig Work-runtime. Repositoryts Compose-udrulning til én instans aktiverer den som standard: imagen indeholder Docker-CLI, og filerne monterer værtens socket. To Compose-variabler styrer forbindelsen:

VariabelStandardFormål
DOCKER_GID0Gruppe-ID for værtens Docker-socket, føjet til containerbrugeren
DOCKER_SOCKET/var/run/docker.sockVærtssti til Docker-socketen, der monteres

DOCKER_GID skal være socketens gruppe set inde fra containeren; macOS rapporterer noget andet. Team-Compose monterer ingen socket, og Docker-Work er utilgængelig, indtil docker-compose.team.work.yml tilføjes. Produktionslaget giver program og worker samme filtrerede interne proxyendpoint, aldrig socketmontering eller gruppe. Proxyen tillader kun de anvendte API-dele, men containeroprettelse er stadig værtskontrol; brug en dedikeret eller rootless Work-daemon til en stærkere grænse. Helm monterer aldrig nodesocket. Aktivér Pod-/PVC-backend med work.enabled=true.

Profilen solo skal have nul eller én programreplika, fordi den bruger SQLite, lokale filer og proceslokal koordinering. Helm accepterer nul til pause og afviser større antal eller autoskalering. Fuld team kan bruge flere replikaer og ekstern worker, fordi PostgreSQL, S3, PGVector og Redis ejer delt tilstand. Work-sandkassepods skalerer uafhængigt; ekstern worker får samme Kubernetes-image, StorageClass og work.env-grænser som programmet.

Compose-filer accepterer også WEBUI_BIND_ADDRESS (standard 127.0.0.1) og WEBUI_PORT (8080). Behold loopback, medmindre et betroet LAN eller en værtsproxy skal nå porten.

Modelregistrering hos udbydere

En udbyders modelkatalog registreres igen, når det mangler eller er forældet, så genindlæsning afspejler aktuelle modeller. Variablerne justerer cyklussen:

VariabelStandardFormål
PLUGIN_MODEL_DISCOVERY_TTL_MS21600000 (6 t)Alder, hvor gemt katalog opdateres ved næste pluginlistelæsning
PLUGIN_MODEL_DISCOVERY_RETRY_MS600000 (10 min)Mindste interval mellem forsøg
PLUGIN_MODEL_DISCOVERY_REFRESH_DEADLINE_MS3000Hvor længe et pluginlistesvar venter på opdatering

En opdatering, der overskrider tidsgrænsen, fuldføres stadig og vises ved næste anmodning. Opdatér modeller kontakter altid udbyderen og ignorerer intervallet.

Nøgler til udbyderplugins

Udbyderplugins kan bruge miljønøgler som standard for hele udrulningen:

VariabelUdbyder
OPENAI_API_KEYOpenAI og OpenAI TTS
ANTHROPIC_API_KEYAnthropic
GROQ_API_KEYGroq
GEMINI_API_KEYGoogle Gemini
MISTRAL_API_KEYMistral
OPENROUTER_API_KEYOpenRouter
KIMI_API_KEYKimi Code fra Moonshot AI
GITHUB_API_KEYGitHub Models
HUGGINGFACE_API_KEYHugging Face-API'er, hvor konfigureret
ELEVENLABS_API_KEYElevenLabs TTS
COMFYUI_API_KEYComfyUI-udrulninger, der kræver API-nøgle

Brugere kan gemme udbyderoplysninger i UI'et. Miljønøgler bruges kun med routing og godkendelse fra en ikke-skygget medfølgende definition. Importerede definitioner, skrivbare definitioner med genbrugt ID og administratorruter kræver oplysninger fra samme konto. Libre WebUI knytter ikke miljønøgler til disse ruter eller eksponerer dem gennem registrering. Tillid kommer fra en kompileret hash af hvert leveret manifest, så containerlayouts med fælles ældre/medfølgende sti understøttes uden at behandle et ændret manifest som medfølgende.

Brugergemte nøgler bindes til effektiv definition, kilde, godkendelseskontrakt og routing. Nøglen skal gemmes igen efter destinationsændring. Ældre ubundne nøgler accepteres og bindes første gang kun til præcis leveret definition på medfølgende rute.

Ved kildestart opløses relativ PLUGINS_DIR fra backendmappen. Den pakkede starter gør en udtrykkelig relativ værdi absolut fra kalderen. Libre læser også backend/plugins og historiske placeringer. Flyt definitionerne til $DATA_DIR/plugins; gendannelse rapporterer ældre stier som ekstern tilstand og blokerer snapshot kun af volumen, mens tilpasninger findes. Mapper og JSON-definitioner skal være fysiske normale poster; Libre følger ikke symlinks.

Frontend

VariabelStandardFormål
VITE_API_BASE_URLdev-proxy fra samme origin eller produktions-APIFrontend-API'ets basis-URL
VITE_WS_BASE_URLudledt fra API-URLAbsolut ws:/wss:-base til Chat- og Work-sockets
VITE_APP_VERSIONpakkeversion fra Vite-konfigurationVist programversion
VITE_DEMO_MODEfalseAktivér demotilstandssimulering, når true
VITE_API_TIMEOUT300000Frontend-API-tidsgrænse i millisekunder
VITE_BACKEND_URLhttp://localhost:3001Bruges af visse godkendelseshjælpere
VITE_DEBUG_VERBOSEikke angivetAktivér detaljerede frontend-fejlfindingslogge
VITE_LOG_LEVELikke angivetTilsidesæt frontendens logniveau
ELECTRON_BUILDikke angivetAktivér Electron-specifik Vite-adfærd

VITE_WS_BASE_URL tilsidesætter alle WebSocket-reserver for Chat og Work-terminalen. Den kan indeholde reverse proxy-stipræfiks, men skal være absolut ws:/wss: uden oplysninger, forespørgsel eller fragment. Uden værdi bruger Electron file: ws://localhost:3001; browsere udleder basen fra VITE_API_BASE_URL, derefter browserens origin. Vite proxyer udviklingsorigin til backenden på port 3001.

Vedligeholdelsesscripts

VariabelFormål
CHANGELOG_AIAngiv 0 for at deaktivere AI-understøttede ændringslogkladder
CHANGELOG_AI_MODELOllama-model til udgivelses-/ændringsloggenerering
CHANGELOG_AI_TIMEOUT_MSTidsgrænse for AI-ændringslog i millisekunder

Eksempel:

CHANGELOG_AI_MODEL=glm-5.2:cloud npm run changelog
CHANGELOG_AI=0 npm run release:minor

Produktionseksempel

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

Relateret dokumentation