SQLite-lagring
Libre WebUI lagrar programdata i SQLite som standard. Lagringslagret håller chattar, meddelanden, användare, inställningar, dokument, dokumentsegment, personas, pluginuppgifter, minnen och tillhörande metadata i en lokal databas.
Databasens plats
Körningar från källkod använder följande ordning:
DATA_DIRnär den är angiven; relativa värden tolkas från backendkatalogen.backend/datanär den inte är angiven.
För bakåtkompatibilitet fortsätter en källprofil utan inställt värde att använda
backend/backend/data när det är det enda befintliga beständiga lagret. Om båda
platserna innehåller tillstånd kräver starten ett uttryckligt val och kopierar eller
slår aldrig samman dem.
Den paketerade npm-/Homebrew-startaren använder i stället ~/.libre-webui som
standard och tolkar en uttryckligt angiven relativ DATA_DIR från anroparens
arbetskatalog. Docker- och Kubernetes-installationer anger absoluta sökvägar i
containern.
SQLite-filen heter data.sqlite.
Exempel:
DATA_DIR=/var/lib/libre-webui
Vad SQLite lagrar
- Användare och roller
- Sessioner och meddelanden
- Preferenser och gränssnittsinställningar
- Dokument och segment
- Personas och personainställningar
- Personaminnen och mutationstillstånd
- Pluginuppgifter och deras bindningar för dirigering/autentisering, variabler, aktiveringar per användare, godkännanden av skrivbara definitioner och upptäckta modellkataloger
- Systeminställningar
- Ägarskap för Work-uppgifter, modell-/leverantörsdirigering, körningar, meddelanden, verktygsaktivitet, status och Docker-resursidentifierare
Känsliga värden krypteras i programlagret när de går genom hjälpfunktionerna för krypterad lagring.
Work-lagringen är uppdelad
Work-konversationer och uppgiftsmetadata finns i SQLite, men Work-filer gör det inte.
Varje uppgift får en särskild namngiven Docker-volym monterad på /workspace.
Containern är ett utbytbart körningstillstånd, medan den namngivna volymen är uppgiftens
beständiga filsystem.
Det innebär att enbart en databassäkerhetskopia inte är en fullständig säkerhetskopia
av Work. Säkerhetskopiera motsvarande Docker-volymer med Docker-värdens process för
volymsäkerhetskopiering. Libre WebUI märker hanterade Work-volymer med
ai.libre-webui.managed=true och ägaruppgiftens ID.
När en Work-uppgift raderas tas dess SQLite-poster och hanterade namngivna volym bort permanent. Att avbryta en körning, stoppa en förhandsvisning eller starta om backend raderar inte dess filer.
JSON-kompatibilitet
Äldre Libre WebUI-installationer använde JSON-filer för vissa data. Aktuella byggen använder SQLite som primär lagringsväg och håller lagringsåtkomst bakom tjänste-/modellager, så att resten av appen inte behöver känna till beständighetsformatet.
Om du uppgraderar en gammal installation bör du säkerhetskopiera hela datakatalogen innan du startar den nyare backendversionen.
Äldre pluginaktivering i .status.json migreras en gång till SQLite-rader per användare
för konton som finns vid uppgraderingen, men endast för exakt hashförankrade medföljande
definitioner. Äldre anpassade och skuggande definitioner förblir i karantän tills en
administratör importerar dem igen, och ett godkännande återställer inte gamla aktiveringsrader.
Senare konton börjar utan aktiva plugin, och varje kontos aktiveringsändringar är oberoende.
Säkerhetskopiering
Stoppa backend innan du kopierar databasen:
cp -R backend/data backend/data.backup
För installationer som använder DATA_DIR:
cp -R "$DATA_DIR" "$DATA_DIR.backup"
Om instansen använder Work ska du även säkerhetskopiera varje hanterad namngiven Work-volym medan backend är stoppad. Behåll databasen, krypteringsnyckeln och säkerhetskopian av Work-volymerna från samma tidpunkt.
Återställning
Stoppa backend, ersätt datakatalogen med säkerhetskopian och starta sedan om. Behåll samma
ENCRYPTION_KEY; krypterade värden kan inte dekrypteras med en annan nyckel.
För Work återställer du de namngivna volymerna med exakt de namn som finns i den återställda databasen innan backend startas. Libre WebUI kan återskapa en uppgiftscontainer, men kan inte återskapa saknade arbetsytefiler från konversationshistoriken.
Driftinformation
- SQLite körs med WAL aktiverat för bättre samtidiga läsningar.
- Datakatalogen måste vara skrivbar för backendprocessen.
- Placera
DATA_DIRpå beständig lagring i Docker och Kubernetes. - Säkerhetskopiera
ENCRYPTION_KEYtillsammans med databasen. - Hantera namngivna Work-volymer separat vid mätning, migrering eller återställning av lagring.