SQLite-lagring
Libre WebUI lagrer som standard programdata i SQLite. Lagringslaget opbevarer chats, beskeder, brugere, indstillinger, dokumenter, dokumentsegmenter, personaer, pluginlegitimationsoplysninger, minder og relaterede metadata i én lokal database.
Databasens placering
Kørsler fra kildekoden bruger denne rækkefølge:
DATA_DIR, når den er angivet; relative værdier fortolkes fra backendmappen.backend/data, når den ikke er angivet.
Af hensyn til bagudkompatibilitet fortsætter en kildeprofil uden indstillet værdi med
at bruge backend/backend/data, når det er det eneste eksisterende vedvarende lager.
Hvis begge placeringer indeholder tilstand, kræver opstarten et eksplicit valg og
kopierer eller sammenfletter dem aldrig.
Den pakkede npm-/Homebrew-starter bruger i stedet ~/.libre-webui som standard og
fortolker en eksplicit relativ DATA_DIR fra kalderens arbejdsmappe. Docker- og
Kubernetes-installationer angiver absolutte containerstier.
SQLite-filen hedder data.sqlite.
Eksempel:
DATA_DIR=/var/lib/libre-webui
Hvad SQLite lagrer
- Brugere og roller
- Sessioner og beskeder
- Præferencer og grænsefladeindstillinger
- Dokumenter og segmenter
- Personaer og personaindstillinger
- Personaminder og mutationstilstand
- Pluginlegitimationsoplysninger og deres bindinger for routing/godkendelse, variabler, aktiveringer pr. bruger, godkendelser af skrivbare definitioner og registrerede modelkataloger
- Systemindstillinger
- Ejerskab af Work-opgaver, model-/udbyderrouting, kørsler, beskeder, værktøjsaktivitet, status og Docker-ressourceidentifikatorer
Følsomme værdier krypteres i programlaget, når de passerer gennem hjælpefunktionerne til krypteret lagring.
Work-lagring er opdelt
Work-samtaler og opgavemetadata findes i SQLite, men Work-filer gør ikke. Hver opgave
får en dedikeret navngivet Docker-volumen, der monteres på /workspace. Containeren
er en udskiftelig kørselstilstand, mens den navngivne volumen er opgavens vedvarende
filsystem.
Det betyder, at en databasesikkerhedskopi alene ikke er en fuldstændig Work-sikkerhedskopi.
Sikkerhedskopiér de tilsvarende Docker-volumener med Docker-værtens proces til
volumensikkerhedskopiering. Libre WebUI mærker administrerede Work-volumener med
ai.libre-webui.managed=true og den ejende opgaves ID.
Når en Work-opgave slettes, fjernes dens SQLite-poster og administrerede navngivne volumen permanent. Annullering af en kørsel, stop af en forhåndsvisning eller genstart af backend sletter ikke dens filer.
JSON-kompatibilitet
Ældre Libre WebUI-installationer brugte JSON-filer til visse data. Aktuelle builds bruger SQLite som den primære lagringsvej og holder lagringsadgang bag service-/modellag, så resten af appen ikke behøver kende persistensformatet.
Hvis du opgraderer en gammel installation, skal du sikkerhedskopiere hele datamappen, før du starter den nyere backend.
Ældre pluginaktivering i .status.json migreres én gang til SQLite-rækker pr. bruger
for konti, der findes på opgraderingstidspunktet, men kun for nøjagtigt hash-forankrede
medfølgende definitioner. Ældre tilpassede og overskyggende definitioner forbliver i
karantæne, indtil en administrator genimporterer dem, og en godkendelse gendanner ikke
gamle aktiveringsrækker. Senere konti starter uden aktive plugins, og hver kontos
aktiveringsændringer er uafhængige.
Sikkerhedskopiering
Stop backend, før databasen kopieres:
cp -R backend/data backend/data.backup
For installationer, der bruger DATA_DIR:
cp -R "$DATA_DIR" "$DATA_DIR.backup"
Hvis instansen bruger Work, skal du også sikkerhedskopiere alle administrerede, navngivne Work-volumener, mens backend er stoppet. Behold databasen, krypteringsnøglen og sikkerhedskopien af Work-volumenerne fra samme tidspunkt.
Gendannelse
Stop backend, erstat datamappen med sikkerhedskopien, og genstart derefter. Behold den
samme ENCRYPTION_KEY; krypterede værdier kan ikke dekrypteres med en anden nøgle.
For Work gendanner du de navngivne volumener under nøjagtigt de navne, der er registreret i den gendannede database, før backend startes. Libre WebUI kan genskabe en opgavecontainer, men kan ikke rekonstruere manglende arbejdsområdefiler fra samtalehistorikken.
Driftsbemærkninger
- SQLite kører med WAL aktiveret for bedre samtidige læsninger.
- Datamappen skal kunne skrives af backendprocessen.
- Opbevar
DATA_DIRpå vedvarende lagring i Docker og Kubernetes. - Sikkerhedskopiér
ENCRYPTION_KEYsammen med databasen. - Håndter navngivne Work-volumener separat ved måling, migrering eller gendannelse af lagring.