Guide · Open WebUI · säkerhetskopiering

Säkerhetskopiera Open WebUI: data och återställning

Ta reda på var din installation sparar data, gör en kopia när databasen är stilla och kontrollera att både chattar och filer går att öppna i en egen testinstallation.

Av C. Leijon · Publicerad · Senast granskad · 7 min läsning

Två svarta lådor står åtskilda på ett skrivbord och är förbundna med en kabel; en grön lampa lyser på den vänstra lådan.
Återställ kopian i en egen testmiljö och kontrollera att både chattar och uppladdade filer går att läsa.

Har du följt installationsguiden för Open WebUI och Ollama finns chattar, konton och inställningar kvar i Open WebUI:s beständiga data. Här gör du en kopia av den datan och prövar den utan att skriva i produktionsvolymen. Den konkreta terminalvägen nedan gäller en ensam Dockercontainer med namngiven volym och intern SQLite. Använder du bind mount, Python eller extern databas får du först kartlägga lagringen enligt steg 1.

Två olika slags kopior

Under Settings > Data Controls kan du exportera chattar till JSON. Exporten innehåller konversationer, metadata och modellinformation; import lägger till chattar med nya ID:n och kan ge dubletter. Den är användbar för just chattar. Den ersätter inte en instanskopia med konton, inställningar, uppladdade filer och vektordata. Open WebUI:s import- och exportdokumentation beskriver gränsen för JSON-exporten.

1. Hitta det som faktiskt ska kopieras

Kontrollera först vilken lagring containern använder. Kommandot nedan läser bara konfigurationen. Leta efter en mount vars Destination är /app/backend/data, och anteckna dess Source och Type. I installationen från vår tidigare guide heter volymen open-webui. Har du valt ett annat namn ska du använda det namnet i resten av kommandona.

docker inspect open-webui --format '{{json .Mounts}}'
docker volume inspect open-webui

Open WebUI:s backuptutorial visar att datamappen kan innehålla webui.db, uploads/, vector_db/, cache/ och audit.log. Databasen har bland annat konton, chattar och inställningar; filer och vektordata ligger separat. Kontrollera därför hela mappen. En ensam webui.db kan ge chattposter som pekar på filer som saknas, vilket också framgår av databasguiden.

Har mounten Type bind är Source en värdmapp: kopiera den mappen i sin helhet efter att tjänsten stoppats. Kör du Open WebUI via Python, ta reda på vilken DATA_DIR som används och kopiera den katalogen när processen är stoppad. Snabbstarten visar hur DATA_DIR kan sättas. Stegen med docker volume nedan gäller bara namngiven Docker-volym.

Kontrollera även om DATABASE_URL pekar på en extern PostgreSQL-databas eller om en extern vektordatabas används. Då räcker inte kopian av Docker-volymen: gör en separat säkerhetskopia och återställningsplan för dessa tjänster enligt deras egna verktyg. Miljövariabelreferensen anger SQLite i DATA_DIR som förval och PostgreSQL som alternativ. Spara dessutom den befintliga WEBUI_SECRET_KEY på en säker plats. Har du satt den själv med -e finns den redan i din startkonfiguration. Annars skriver Docker-imagen en autogenererad nyckel till /app/backend/.webui_secret_key, utanför datamappen, enligt databasguiden. Filen ligger i containerns eget lager: den följer inte med arkivet i steg 2 och försvinner om containern tas bort och skapas om. Läs ut den medan containern kör och lägg den direkt i din lösenordshanterare; kommandot skriver nyckeln i terminalen.

docker exec open-webui cat /app/backend/.webui_secret_key

2. Gör en kall kopia av Docker-volymen

Välj en katalog för arkivet som inte är själva Docker-volymen. Kommandona använder Bash på Linux eller macOS och förutsätter att den inventerade volymen faktiskt heter open-webui. Anteckna containerimage och tagg innan du stoppar containern; samma image används vid provet. Stoppa sedan bara Open WebUI-containern, skapa arkivet och starta containern igen. Stoppen ger databasen en stilla kopieringspunkt. Räkna med ett kort avbrott.

docker inspect open-webui --format '{{.Config.Image}}'
mkdir -p "$HOME/open-webui-backups"
docker stop open-webui
docker run --rm -v open-webui:/data:ro -v "$HOME/open-webui-backups:/backup" alpine sh -c 'tar czf /backup/open-webui-data.tar.gz -C /data .'
docker start open-webui

Om arkiveringen ger fel: starta produktionscontainern med docker start open-webui innan du felsöker. Varken docker stop eller arkivkommandot tömmer volymen. Backuptutorialen rekommenderar kopiering av databaser när filsystemet är kallt, medan uppdateringsguiden visar tar-arkiv av samma volym. De här kommandona är en anpassning med skrivskyddad mount för källan, inte ett ordagrant citat.

Spara arkivet, den antecknade imagetaggen, datumet och nyckeln enligt din vanliga reservrutin. Låt inte kopian ligga enbart på samma disk som installationen. Behöver du senare backa en uppdatering kan en äldre image misslyckas efter databasmigrering; uppdateringsguiden säger då att en kopia från före uppdateringen kan behövas. Driftkortet hjälper dig att dokumentera version och reservväg.

3. Kontrollera arkivet innan återställningsprovet

Kontrollera att arkivet finns och att tar kan lista dess innehåll. Sök efter databasfilen och en känd fil i uploads/ om din installation har uppladdningar. Ett arkiv som bara innehåller webui.db är inte den fulla kopian som den här guiden avser. Om dina uppladdningar lagras externt är de i stället en egen post i inventeringen.

ls -lh "$HOME/open-webui-backups/open-webui-data.tar.gz"
tar tzf "$HOME/open-webui-backups/open-webui-data.tar.gz" | head -40

Lista i arkivet är bara ett första prov. Det visar att filen går att läsa som tar, men inte att Open WebUI kan starta eller att filer fungerar i gränssnittet. Därför gör du en separat återställning i nästa steg.

4. Återställ till en ny testvolym

Skapa en ny volym med ett tydligt testnamn. Skriv bara i den volymen. Testcontainern använder port 127.0.0.1:3001 så att den inte konkurrerar med produktionens port 3000. Ersätt DIN_IMAGE_TAGG med exakt image från första raden i steg 2 och DIN_BEFINTLIGA_NYCKEL med samma hemliga nyckel som källinstallationen använder. Kör inte en image från en nyare version i återställningsprovet: den kan migrera testdatabasen och göra jämförelsen svårare.

docker volume create open-webui-restore-test
docker run --rm -v open-webui-restore-test:/data -v "$HOME/open-webui-backups:/backup:ro" alpine sh -c 'tar xzf /backup/open-webui-data.tar.gz -C /data'
docker run -d --name open-webui-restore-test -p 127.0.0.1:3001:8080 -v open-webui-restore-test:/app/backend/data -e WEBUI_SECRET_KEY=DIN_BEFINTLIGA_NYCKEL DIN_IMAGE_TAGG

Varje kommando ovan är avsett för testresurserna open-webui-restore-test. Kontrollera namnen innan du trycker Enter. Inget kommando monterar eller rensar produktionsvolymen under återställningen. Om testet ska nå samma Ollama eller externa tjänster måste du också återskapa relevanta anslutningsinställningar från din egen körkonfiguration. Spara dem tillsammans med backupplanen; tar-filen innehåller datavolymen, inte hela kommandoraden som startade containern.

5. Gör två prov och skriv ner facit

Prov A: chatt och konto. Öppna http://localhost:3001 och logga in med ett befintligt testbart konto från kopian. Leta upp en chatt som fanns före kopieringen. Facit är att inloggningen fungerar och att samma chatt går att öppna med sitt innehåll. En tom nyinstans eller ett saknat konto är ett fel: kontrollera volymmounten och att arkivet innehåller webui.db.

Prov B: uppladdad fil. Öppna en chatt eller kunskapspost som före kopieringen refererade till en känd uppladdad fil. Facit är att filen går att öppna och har förväntat innehåll. Finns posten men filen saknas, kontrollera uploads/ i arkivet och eventuell extern fillagring. Detta prov behövs eftersom en databaskopia ensam kan bevara filposten utan filen.

Skriv in arkivets plats, datum, imagetag, testvolymens namn och resultaten från båda proven i driftkortet. Om något prov misslyckas är kopian ännu inte verifierad. Felsök på testinstallationen och gör om kopian vid behov. När provet är klart kan du stoppa testcontainern med docker stop open-webui-restore-test; låt testvolymen finnas kvar tills du vet om du behöver undersöka felet.

Källor

Källorna kontrollerades 28 september 2026. Kommandona är ett redaktionellt förslag för en namngiven Docker-volym och intern SQLite. Ingen egen säkerhetskopiering eller återställning har utförts; facit beskriver vad läsaren ska kontrollera i sin installation.

Nästa steg

Upprepa kopian före en uppdatering och prova återställningen regelbundet med samma metod och tydligt namngiven testvolym.

Öppna driftkortet