Hop til hovedindhold

Fejlfinding

Start med det lag, der fejler: browser, frontend, backend, Ollama, udbyderplugin eller installationens netværk.

Hurtige kontroller

# App branch and local changes
git status

# Backend process liveness
curl http://localhost:3001/health/live

# Backend dependency readiness (SQLite, schema, and writable data storage)
curl http://localhost:3001/health/ready

# Ollama health
curl http://localhost:11434/api/tags

# Installed Ollama models
ollama list

Under udvikling kører frontend normalt på http://localhost:5173 og backend på http://localhost:3001. Det pakkede flow med npx libre-webui leverer appen på http://localhost:8080.

Libre WebUI starter ikke

Kontrollér Node og afhængigheder

node --version
npm install
npm run dev

Node.js 22.22 eller nyere er påkrævet.

Porten er allerede i brug

lsof -i :3001
lsof -i :5173
lsof -i :8080

Stop den gamle proces, eller konfigurer en anden port.

Backend kan ikke skrive data

Backend gemmer data under DATA_DIR, når variablen er angivet, og ellers under backend/data. Ved start fra kildekoden fortolkes en relativ DATA_DIR fra backendmappen, ikke fra shellens aktuelle mappe. Derfor vælger DATA_DIR=./data backend/data, mens den historisk understøttede DATA_DIR=./backend/data vælger backend/backend/data. Sørg for, at den valgte mappe er skrivbar. Når DATA_DIR ikke er angivet, bevarer Libre den historiske mappe, hvis den er det eneste eksisterende lager. Hvis begge placeringer indeholder data, skal du stoppe Libre, sikkerhedskopiere begge og bevidst vælge eller migrere. Libre sammenfletter eller kopierer aldrig forskellige databaser.

Sundhedsslutpunkterne skelner bevidst mellem en proces, der kører, og et program, der kan bruges:

  • /health og /health/live returnerer 200, så længe backendprocessen kan levere HTTP. Valgfrie modeludbydere påvirker ikke liveness.
  • /health/ready returnerer 503, når en påkrævet database, et skema, lager eller en registreret platformsafhængighed ikke er tilgængelig. Den venter ikke på valgfrie modeludbydere. Det offentlige svar udelader fejlbeskeder og interne detaljer.
  • /health/deep udfører integritets- og foreign-key-kontroller i SQLite i en afgrænset worker og samler valgfrie udbyderprober på serverniveau, for eksempel Ollama. Hvis en valgfri udbyder er nede, vises det som en advarsel uden at gøre påkrævede afhængigheder ikke-klare. Slutpunktet kræver en aktuel administrator-bearer-token og egner sig ikke til hyppige probes fra en orkestrator.
curl -H "Authorization: Bearer $LIBRE_ADMIN_TOKEN" \
http://localhost:3001/health/deep

Browseren kan ikke nå backend

Ved lokal udvikling bruger frontend VITE_API_BASE_URL, når variablen er angivet, og ellers udviklings-backend som fallback.

Eksempel på frontend-.env:

VITE_API_BASE_URL=http://localhost:3001/api
VITE_WS_BASE_URL=ws://localhost:3001

VITE_WS_BASE_URL er valgfri, men bliver den fælles base for Chat- og Work-terminalens sockets, når den er angivet. Brug en absolut ws:- eller wss:-URL. Et stipræfiks som wss://example.com/libre understøttes. Medtag ikke legitimationsoplysninger, queryparametre eller fragmenter. Genstart eller genbyg frontend efter ændring af en Vite-variabel.

Eksempel på backend-.env:

CORS_ORIGIN=http://localhost:5173,http://127.0.0.1:5173

Ved adgang fra telefon, LAN eller Tailscale må telefonens browser ikke pege på localhost. Brug den bærbare computers LAN- eller Tailscale-IP, og kør udviklingsserveren med værtsbinding:

npm run dev:host

Dette serverer frontenden på port 8080 og proxyer API- og WebSocket-trafik til den lokale backend på port 3001. Kun port 8080 skal være tilgængelig fra den anden enhed. Hvis VITE_API_BASE_URL eller VITE_WS_BASE_URL er sat i frontend/.env, skal du sikre, at disse URL'er er tilgængelige fra den anden enhed, eller fjerne dem for at bruge udviklingsserverens proxy.

Chatten streames ikke bag en reverse proxy

Det typiske symptom er, at beskeder sendes, men intet svar vises, mens browserkonsollen viser en fejl ved WebSocket-forbindelsen. Bekræft, at proxyen tillader WebSocket-opgraderinger og ikke lukker langvarige forbindelser.

Når en af værdierne er konfigureret, kontrolleres browseropgraderinger, der sender en Origin-header, mod CORS_ORIGIN og BASE_URL. Angiv mindst én ved en ekstern installation. Hvis ingen er konfigureret, forbliver Origin-filteret tilladende til lokal udvikling. Electron og andre klienter, der ikke er browsere, kan udelade Origin, men skal stadig først udveksle deres Authorization-header med en kortlivet engangsbillet. Hold backend bag TLS og de samme netværks- eller reverse proxy-adgangskontroller, der bruges til HTTP-API'et.

For et offentligt værtsnavn skal browserens origin tillades i Libre WebUI-tjenesten:

services:
libre-webui:
environment:
CORS_ORIGIN: https://chat.example.com
BASE_URL: https://chat.example.com

Eksemplerne med nginx og Caddy nedenfor forudsætter, at proxyen kører på Docker-værten, hvor repositoriets Compose-opsætning offentliggør Libre WebUI på port 8080. Hvis proxyen i stedet tilsluttes Compose-netværket, skal libre-webui:3001 bruges som upstream-adresse.

nginx

nginx kræver, at upgrade-headere videresendes eksplicit. Den længere read-timeout holder en ellers inaktiv chatforbindelse åben, mens modellen arbejder.

location /ws {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 3600s;
}

Genindlæs nginx efter validering af konfigurationen med nginx -t.

Caddy

Caddys reverse_proxy understøtter WebSockets direkte, så der kræves ingen upgrade-headere:

chat.example.com {
reverse_proxy 127.0.0.1:8080
}

Traefik

Traefik håndterer også WebSocket-opgraderinger som standard. Når dens Docker-udbyder deler Libre WebUI's netværk, kræves kun de normale router- og servicelabels, for eksempel:

labels:
- 'traefik.enable=true'
- 'traefik.http.routers.libre-webui.rule=Host(`chat.example.com`)'
- 'traefik.http.routers.libre-webui.entrypoints=websecure'
- 'traefik.http.routers.libre-webui.tls=true'
- 'traefik.http.services.libre-webui.loadbalancer.server.port=3001'

Hvis streams forbindes, men senere afbrydes, skal du kontrollere tomgangstimeout på proxyer eller load balancere foran Traefik. Når Traefik selv håndhæver grænsen, skal indgangspunktets indstilling transport.respondingTimeouts justeres.

Ollama registreres ikke

Bekræft, at Ollama kører

curl http://localhost:11434/api/tags

Konfigurer en tilpasset Ollama-URL

Backend-.env:

OLLAMA_BASE_URL=http://localhost:11434

Hvis Libre WebUI kører i Docker, og Ollama kører på værten, skal du bruge Compose-filen til ekstern Ollama eller pege OLLAMA_BASE_URL på den værtsadresse, som containeren kan nå.

Problemer med modelhentning

Hent først fra terminalen

ollama pull gemma4:12b

Hvis download fra terminalen mislykkes, ligger problemet uden for Libre WebUI.

Cloudmodeller

Brug cloudfilteret i Model Manager til Ollama Cloud-modeller. Libre WebUI normaliserer de nødvendige cloudsuffikser i dette flow, så brugere ikke manuelt behøver at tilføje :cloud til understøttede cloudposter.

Brugeren kan ikke hente modeller

Administratorer kan deaktivere modeldownloads for almindelige brugere. Kontrollér administratorindstillingerne, hvis en ikke-administrator kan gennemse modeller, men ikke installere dem.

Chatten er langsom eller mislykkes

  • Brug en mindre model.
  • Kontrollér indlæste modeller med ollama ps.
  • Reducer kontekstlængden.
  • Reducer det maksimale antal tokens til meget lange svar.
  • Bekræft, at modellen passer i RAM/VRAM.
  • Bekræft API-nøglen og udbyderkvoten for udbyderplugins.

OpenAI-billedgenerering er ikke tilgængelig

  • Aktivér den medfølgende OpenAI-udbyder. Gem en API-nøgle til den aktuelle bruger, eller konfigurer den betroede medfølgende udbyders OPENAI_API_KEY som fallback i miljøet.
  • Åbn indstillingerne for Image Generation, aktivér billedgenerering, og vælg en af de viste GPT Image-modeller.
  • Foretræk gpt-image-2. Ældre GPT Image-ID'er er kun tilgængelige af hensyn til kompatibilitet med eksisterende konfigurationer og frarådes af upstream-udbyderen.
  • Lad OpenAI-tilsidesættelsen image_endpoint være tom, medmindre du driver et kompatibelt billedslutpunkt. Et Chat-slutpunkt som /responses eller /chat/completions kan ikke behandle Image API-anmodninger.
  • Hvis OpenAI afviser en GPT Image-anmodning trods en gyldig nøgle og kvote, skal du bekræfte, at API-organisationen er berettiget til at bruge GPT Image-modeller.

Billedtilgængelighed vurderes med den aktuelle brugers gemte legitimationsoplysninger eller miljøfallbacken for den betroede medfølgende udbyder. En nøgle, der kun er gemt i en anden brugers indstillinger, udstiller ikke billedmodeller.

Problemer med udbyderendpoints

Hvis en OpenAI-kompatibel udbyder modtager anmodninger på den forkerte sti, skal dens indstillinger under Settings → Plugins kontrolleres:

  • Vælg Chat Completions til payloads på /chat/completions eller Responses til payloads på /responses.
  • Angiv API-roden, for eksempel https://provider.example/v1, som Base URL.
  • Lad API Path være tom for tilstandens standard, eller angiv en sti fra udbyderen, der begynder med en skråstreg.
  • Et reelt tilpasset, ældre fuldt slutpunkt har bevidst højeste prioritet. Ryd det, når du skifter tilbage til Base URL og API Path. Gemte værdier, der blot svarer til det medfølgende manifests gamle standard, ignoreres automatisk efter en opgradering. Når et tilpasset slutpunkt ender med /chat/completions eller /responses, bestemmer suffikset også anmodningsformatet, så en override ikke kan modtage den forkerte payload.

Importeret plugin-JSON understøtter udbydere, der bruger et wire-format, som er kompatibelt med OpenAI Chat Completions, OpenAI Responses, Anthropic eller Gemini. Hvis udbyderen bruger et proprietært format til payload, streaminghændelser, værktøjskald eller svar, kræves en backendadapter. En ændring af slutpunktet alene kan ikke oversætte formatet.

Udbyder-URL'er kan bruge HTTP eller HTTPS. HTTP sender legitimationsoplysninger og udbydertrafik uden transportkryptering, så brug det kun til en selvhostet gateway på et betroet netværk, og foretræk HTTPS, når TLS er tilgængeligt. Base URL må ikke indeholde querystrenge eller fragmenter, og relative API-stier må ikke indeholde bogstavelige eller gentagne kodede traversal-segmenter, querystrenge eller fragmenter. Overdreven kodning afvises, hvis den ikke stabiliseres inden for valideringsgrænsen.

Modelopdatering erstatter kendte operationssuffikser, herunder /responses, med /models. Aktivering, eksplicit opdatering og gemte forbindelsesoverrides bruger den aktuelle brugers slutpunkt og API-nøgle. Når brugerens API-nøgle gemmes eller fjernes, eller forbindelsesoverrides nulstilles, opdateres listen også. Ikke-relaterede genereringsparametre gør ikke. Registrerede ID'er gemmes pr. bruger og overskriver aldrig den fælles plugin-JSON. Hvis udbyderen ikke understøtter den afledte rute, skal model-ID'er konfigureres manuelt i pluginets model_map.

Udbyderanmodninger følger bevidst ikke HTTP-omdirigeringer, heller ikke ved modelsøgning, Chat, Work, billedgenerering, embeddings eller tekst-til-tale. Konfigurer den endelige destinations-URL i stedet for en URL, der omdirigerer. Denne fail-closed-adfærd forhindrer en godkendelsesheader i at hoppe til en destination, der ikke er valideret.

Hvis Work rapporterer, at udbyderrouting blev ændret under en kørsel, skal du starte en ny kørsel efter at have afsluttet opdateringen af udbyderindstillingerne. Work stopper bevidst før næste udbyderanmodning, så tidligere værktøjstilstand ikke kan afspilles igen til en anden tilstand, et andet slutpunkt eller en anden godkendelsesgrænse for API-nøglen.

Anmodninger kommer fra backend, så når backend kører i en container, henviser localhost til Libre WebUI-containeren og ikke automatisk til værtsmaskinen. Ved en Compose- eller Kubernetes-installation skal gatewayens service-DNS-navn bruges, for eksempel http://ai-gateway:8080/v1. Brug kun http://host.docker.internal:8080/v1, når containerkørselstiden udstiller dette værtsalias. HTTP-trafik er klartekst, selv når navnet opløses privat.

Tilgængelighed af billedmodeller, slutpunktsoverrides og API-nøgler vælges også for den aktuelle bruger. Hvis en billedanmodning ser ud til at bruge en anden kontos udbyderindstillinger, skal du kontrollere, at anmodningen er godkendt som den forventede bruger.

Følgende regler for sikkerhed og ejerskab gælder også:

  • Log ind som administrator for at ændre udbyderrouting. Plugindefinitioner og forbindelsesfelter er instansadministreret konfiguration. Almindelige brugere kan stadig gemme genereringsindstillinger, legitimationsoplysninger og egen aktiveringstilstand.
  • Når den ældre override endpoint eller api_url bruges, skal den fulde URL til API-slutpunktet angives, inklusive operationsstien (for eksempel https://provider.example/v1/chat/completions). Angiv kun en API-rod i base_url, sammen med api_mode og en valgfri api_path.
  • Absolutte HTTP- og HTTPS-URL'er til slutpunkter accepteres. Brug kun HTTP til en selvhostet gateway på et betroet netværk, da API-nøgler, prompter og svar ellers sendes uden transportkryptering.
  • En tom override bruger slutpunktet i plugindefinitionen. En eksplicit ugyldig eller usikker override afvises. Libre WebUI sender ikke lydløst anmodningen til det medfølgende udbyderslutpunkt.
  • En miljønøgle fra installationen bruges kun, når en ikke-overskygget medfølgende definition bevarer sit betroede rodslutpunkt, godkendelsesfelter, funktionsslutpunkter og -vælgere samt standarder for routingvariabler. Importerede definitioner, skrivbare definitioner, der genbruger et medfølgende ID, og administratorgemte tilpassede ruter kræver legitimationsoplysninger gemt af samme konto. Hvis kun miljønøglen findes, rapporterer Libre WebUI bevidst udbyderen som utilgængelig og springer søgningen over.
  • Tilpassede definitioner fra før opgraderingen sættes i karantæne, fordi ældre releases ikke registrerede administratorens proveniens. Importér JSON igen som administrator, og lad derefter hver bruger aktivere den igen. Direkte redigering af en godkendt plugin-JSON sætter den i karantæne igen. Brug administratorens installations- eller opdateringsflow, så kildesti og definitionshash registreres.
  • Gemte legitimationsoplysninger bindes til den rute, godkendelseskontrakt, definition og kilde, der gjaldt ved indtastningen. Efter ændring af et slutpunkt eller en definition skal kontoens legitimationsoplysninger gemmes igen. Ældre ubundne legitimationsoplysninger migreres kun automatisk på en nøjagtigt forankret medfølgende rute.
  • Importerede plugins kan bruge api_url som et ældre alias til en fuld operations-URL. endpoint har forrang, når begge felter er angivet. Hvis modelsøgning ligger et andet sted, skal den komplette URL til modellisten angives i models_endpoint. Den valideres, og omdirigeringer følges ikke.
  • Aktivér pluginet efter at have gemt slutpunkt og legitimationsoplysninger. Aktivering afleder en /models-URL fra det gemte fulde slutpunkt og bruger den aktiverende brugers legitimationsoplysninger til søgning, medmindre models_endpoint er angivet. Gemning eller nulstilling af forbindelsesfelterne opdaterer også søgningen. Anmodningen venter på søgningen, før UI genindlæser pluginlisten. Aktivering er kontospecifik, så en anden bruger skal aktivere det samme fælles plugin separat.
  • I Settings → Plugins skal udbyderen vælges og Refresh models bruges til eksplicit kontrol af kataloget. Modeltabellen er skrivebeskyttet og viser ID'er, der er konfigureret eller registreret for den aktuelle konto. En midlertidig søgefejl bevarer det tidligere katalog eller pluginets fallback model_map, hvis der ikke findes et tidligere resultat. En gennemført kontrol beviser derfor ikke i sig selv, at det eksterne slutpunkt er sundt.
  • Automatisk søgning kræver et OpenAI-kompatibelt data-array med model-ID'er. Vellykkede kataloger gemmes pr. bruger uden at ændre den fælles plugin-JSON. En normal aktivering bevarer brugerens tidligere katalog, når søgning ikke er tilgængelig. Ændring eller nulstilling af et forbindelsesfelt rydder først det forældede katalog, så en mislykket opdatering bruger pluginets eksisterende model_map. Konfigurer de pågældende fallback-model-ID'er i plugin-JSON efter behov.
  • Tilgængelighed af billedmodeller, slutpunktsoverrides og API-nøgler vælges også for den aktuelle bruger. Hvis en billedanmodning ser ud til at bruge en anden kontos udbyderindstillinger, skal anmodningens brugeridentitet kontrolleres.
  • Hvis en opgraderet konto uden administratorrettigheder tidligere gemte en routingværdi, skal Reset bruges til pluginet. Den ignorerede ældre værdi slettes, så den ikke kan blive aktiv efter en senere rolleændring. Gemning eller nulstilling af routing rydder også kontoens registrerede modeller, så et gammelt katalog ikke følger den gamle rute.
  • Anmodninger kommer fra backend. Når Libre WebUI kører i en container, henviser localhost til containeren, ikke automatisk til værtsmaskinen.
  • Udbyderanmodninger følger ikke omdirigeringer. Konfigurer den endelige validerede operations-URL direkte.

Chat bruger den forkerte udbyder eller viser en udbyder som utilgængelig

Det samme model-ID kan findes i Ollama og i flere plugins. Aktuelle Chat-sessioner og præferencer for standardmodel gemmer både den valgte udbyder og det rå model-ID, så poster med lignende navne er uafhængige valg.

  • Hvis vælgeren siger, at en udbyder er utilgængelig, skal det præcise plugin genaktiveres eller geninstalleres, og det skal bekræftes, at dets modelkort stadig indeholder det gemte model-ID.
  • Hvis udbyderen eller modellen blev fjernet med vilje, skal en erstatning vælges eksplicit. Libre WebUI omdirigerer ikke et præcist gemt valg til en model med samme navn hos en anden udbyder.
  • Ældre sessioner og præferencer kan mangle udbydermetadata. Disse poster fortsætter med ældre routing kun efter navn, fordi Libre WebUI ikke pålideligt kan udlede den oprindelige udbyder. De vises som "provider not recorded" i modelvælgere. Vælg den ønskede Ollama- eller pluginpost igen for at binde fremtidige anmodninger til den.
  • Persona-poster beholder labelen persona:<id>. Nyvalgte personaer registrerer Ollama som deres bagvedliggende udbyder. Historiske personasessioner uden udbydermetadata er fortsat kompatible med ældre routing.

Work-problemer

Work mangler eller rapporterer Runtime unavailable

Work kræver en aktuelt godkendt konto med Work-adgang — en administrator eller en aktiv bruger, når en administrator har åbnet Work for alle brugere fra fanen User Management i Settings. Containerkørselstiden skal være tilgængelig for Libre WebUI-backend:

docker info
docker version

For standard-Docker-backend skal du bekræfte, at Docker kører, og at den operativsystembruger, der kører Libre WebUI, kan kalde den konfigurerede WORK_DOCKER_COMMAND. Installation af Libre WebUI med npx installerer ikke Docker. Hvis kørselstiden mangler, holder Libre WebUI resten af programmet tilgængeligt og falder ikke tilbage til at køre modelkommandoer på værten.

Repositoriets Compose-filer aktiverer Work ved at montere værtens Docker-socket. På Kubernetes skal den indbyggede Pod/PVC-kørselstid aktiveres med Helm-værdien work.enabled=true. Mount ikke en nodes runtime-socket. Når en Compose-installation stadig rapporterer Runtime unavailable, angiver Work-siden, hvilken årsag der gælder:

MeddelelseÅrsag og løsning
The "docker" CLI is not installed…Et tilpasset image uden docker-cli. Brug det officielle image, eller peg WORK_DOCKER_COMMAND på en CLI.
No Docker daemon is reachable…Socket-mountet blev fjernet, eller værtens dæmon er stoppet. Gendan mountet i Compose-filen, og start Docker.
The Docker socket is mounted but…cannot openSocketens gruppe afviger fra containerens. Angiv DOCKER_GID i .env (se nedenfor), og genskab containeren.
Works skærm/lyd lukkes med WebSocket 1006 og logger screen is unreachableDen containerkørte backend kalder sin egen loopback. På Docker Desktop bruger du den medfølgende WORK_DOCKER_PUBLISHED_HOST=host.docker.internal; på native Docker Engine angiver du desuden WORK_PREVIEW_BIND til Docker-bridgens ikke-offentlige gateway og genskaber derefter Libre WebUI.

Læs socketgruppen gennem en container, fordi en macOS-vært rapporterer en anden værdi end den, containeren ser:

echo "DOCKER_GID=$(docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
alpine stat -c '%g' /var/run/docker.sock)" >> .env
docker compose up -d --force-recreate

Socketen giver root-tilsvarende kontrol over Docker-værten. Læs Work: Isolerede arbejdsområder om, hvad det betyder for udrulningen.

Modellen mangler værktøjsunderstøttelse

Work kræver en chatmodel med værktøjsunderstøttelse. Til Ollama skal du vælge en installeret model, hvis rapporterede funktioner omfatter tools. Til en pluginbaseret model:

  • Bekræft, at chat- eller completionpluginet er aktivt.
  • Bekræft, at den valgte model findes i pluginets konfigurerede modelliste.
  • Bekræft, at en API-nøgle er tilgængelig for den aktuelle administrator.
  • Bekræft, at udbyderen understøtter værktøjskald for præcis den model.

Libre WebUI router ikke lydløst en mislykket Work-kørsel til en anden udbyder.

En Work-anmodning returnerer HTTP 429

Instansen har nået en adgangsgrænse for opgaver eller aktive kørselstider. Som standard tillader Libre WebUI to aktive containerbaserede opgaver på tværs af instansen og én pr. bruger. En kørende forhåndsvisning optager også kapacitet. Vent på, at den anden handling afsluttes, stop en ubrugt forhåndsvisning, eller bed operatøren gennemgå indstillingerne WORK_MAX_ACTIVE_RUNTIMES_* og WORK_MAX_TASKS_*.

Pakkeinstallation eller netværksadgang mislykkes

Nye Work-opgaver bruger Docker bridge-netværk, så genererede projekter kan hente pakker og starte forhåndsvisninger. Kontrollér Docker DNS, proxykonfiguration, registrytilgængelighed og kommandooutput i Activity. Libre WebUI monterer ikke værtens SSH-nøgler, cloudlegitimationsoplysninger, browserprofiler eller Docker-socket i opgavecontaineren.

En Work-forhåndsvisning starter ikke

  • Sørg for, at serveren binder til 0.0.0.0WORK_PREVIEW_PORT (4173 som standard).
  • Lad den valgfrie kommando være tom for automatisk at registrere et dev-script i package.json eller en almindelig index.html, herunder én indlejret app.
  • Hvis Work rapporterer flere apps eller intet understøttet indgangspunkt, skal projektets eksplicitte udviklingskommando angives i det valgfrie kommandofelt. Kommandoen starter i /workspace, så brug cd <app-directory> && ... til en indlejret app.
  • Udvid de returnerede fejldetaljer for at undersøge startoutput.
  • Stop en eksisterende forhåndsvisning, før en anden kommando, der kræver containeren, startes.

Forhåndsvisnings-URL'er bruger en dynamisk tildelt loopback-port. Browseren og Libre WebUI-backend skal derfor køre på samme maskine. En browser, der er forbundet til en ekstern backend, kan ikke nå den pågældende backends loopback-forhåndsvisning, og en HTTPS-side kan blokere en almindelig HTTP-forhåndsvisning som blandet indhold.

En fil i arbejdsområdet kan ikke åbnes eller gemmes

Works fil-API accepterer UTF-8-tekstfiler på op til 2 MB. Hvis en fil blev ændret, efter du åbnede den, skal den genindlæses før gemning, så den nyere version ikke overskrives. Formatering er begrænset til understøttede filtyper under 100.000 tegn og 4.000 linjer. Syntaksfremhævning sættes på pause for store filer, så redigeringen forbliver responsiv.

Ikke-gemte redigeringer opbevares som en kladde i den aktuelle browser. De erstatter ikke gemning i det vedvarende arbejdsområde.

En opgave eller forhåndsvisning blev stoppet

Stop af en kørsel eller forhåndsvisning samt genstart af Libre WebUI stopper midlertidige containerprocesser, men bevarer opgavens navngivne arbejdsområdevolumen. Åbn opgaven igen, og genstart forhåndsvisningen. Sletning af opgaven er anderledes: Efter bekræftelse fjernes opgaven og dens arbejdsområde permanent.

Login- og registreringsproblemer

Den første bruger er ikke administrator

Kun den første konto, der oprettes i en ny database, bliver administrator. Eksisterende databaser beholder deres nuværende brugere og roller.

JWT-fejl

Angiv en stabil hemmelighed i produktion:

JWT_SECRET=replace-with-a-long-random-secret

Ændring af JWT_SECRET ugyldiggør eksisterende sessioner.

Turnstile blokerer registrering

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

TURNSTILE_SITE_KEY=...
TURNSTILE_SECRET_KEY=...

Hvis registrering pludselig mislykkes, skal du bekræfte, at site-nøglen matcher domænet, og at den hemmelige nøgle er gyldig.

OAuth-omdirigeringer mislykkes

Angiv callback-URL'er både i udbyderens dashboard og i backend-.env:

BASE_URL=https://your-domain.example
GITHUB_CALLBACK_URL=https://your-domain.example/api/auth/oauth/github/callback
HUGGINGFACE_CALLBACK_URL=https://your-domain.example/api/auth/oauth/huggingface/callback

Problemer med dokumentchat

Libre WebUI accepterer PDF-, Office- (DOCX/PPTX/XLSX), Markdown-, HTML-, kode- og CSV-filer på op til 10 MB.

Hvis søgning virker, men semantisk hentning ikke gør:

  1. Installér en embeddingmodel som nomic-embed-text.
  2. Aktivér embeddings i Settings.
  3. Generér embeddings igen fra dokumentindstillingerne eller API'et.
ollama pull nomic-embed-text

Nøgleordssøgning fortsætter med at virke, når embeddings er deaktiveret.

Problemer med artefaktforhåndsvisning

Til spil eller interaktiv HTML skal du bede modellen om én komplet selvstændig HTML-fil med inline CSS og JavaScript.

Hvis artefakten kræver tastaturinput:

  • Klik først i forhåndsvisningen.
  • Brug knappen Open til at køre den i sin egen browserfane.
  • Undgå at være afhængig af lokale filer, der ikke var med i svaret.

Libre WebUI kan samle almindelige index.html + CSS + JavaScript-kodeblokke, men selvstændig HTML er stadig det mest pålidelige output.

Docker-problemer

Containeren kan ikke nå Ollama

Brug Compose-filen til ekstern Ollama, når Ollama ikke er i samme Compose-stack:

docker compose -f docker-compose.external-ollama.yml up -d

Data bevares ikke

Mount en vedvarende datavolumen, og angiv DATA_DIR efter behov. Krypteringsnøglen gemmes i vedvarende lager, når DATA_DIR eller Docker-tilstand bruges.

Nulstilling af lokale data

Stop først appen. Sikkerhedskopiér og fjern derefter den datamappe, du bruger. Som standard ligger udviklingsdata under backend/data.

cp -R backend/data backend/data.backup
rm -rf backend/data

Genstart backend, og opret en ny konto.

Stadig fastlåst?

Opret en issue med:

  • Libre WebUI-version og commit
  • Installationsmetode
  • Operativsystem
  • Node.js-version
  • Ollama-version
  • Docker-version og resultatet af docker info ved Work-problemer
  • Backendlogfiler omkring fejlen
  • Fejl i browserkonsollen
  • Den præcise model eller udbyder, der bruges
  • Work Activity-output, når en opgave eller forhåndsvisning mislykkes