SQLite-opslag
Libre WebUI slaat toepassingsgegevens standaard op in SQLite. De opslaglaag bewaart chats, berichten, gebruikers, voorkeuren, documenten, documentsegmenten, persona's, pluginreferenties, herinneringen en bijbehorende metagegevens in één lokale database.
Databaselocatie
Wanneer vanuit de broncode wordt gestart, geldt deze volgorde:
DATA_DIRwanneer ingesteld; relatieve waarden worden vanuit de backendmap bepaald.backend/datawanneer de variabele niet is ingesteld.
Voor achterwaartse compatibiliteit blijft een bronprofiel zonder instelling backend/backend/data gebruiken wanneer dat de enige bestaande duurzame opslag is. Als beide locaties status bevatten, vereist het opstarten een expliciete keuze en worden ze nooit gekopieerd of samengevoegd.
Het verpakte npm-/Homebrew-startprogramma gebruikt in plaats daarvan standaard ~/.libre-webui en bepaalt een expliciete relatieve DATA_DIR vanuit de werkmap van de aanroeper. Docker- en Kubernetes-implementaties leveren absolute containerpaden.
Het SQLite-bestand heet data.sqlite.
Voorbeeld:
DATA_DIR=/var/lib/libre-webui
Wat SQLite opslaat
- Gebruikers en rollen
- Sessies en berichten
- Voorkeuren en interface-instellingen
- Documenten en segmenten
- Persona's en persona-instellingen
- Persona-herinneringen en mutatiestatus
- Pluginreferenties en hun routerings-/verificatiekoppelingen, variabelen, activeringen per gebruiker, goedkeuringen van schrijfbare definities en gevonden modelcatalogi
- Systeeminstellingen
- Eigendom van Work-taken, model-/providerroutering, uitvoeringen, berichten, toolactiviteit, status en Docker-resource-ID's
Gevoelige waarden worden op toepassingsniveau versleuteld wanneer ze via de helpers voor versleutelde opslag lopen.
Work-opslag is gesplitst
Work-conversaties en taakmetagegevens staan in SQLite, maar Work-bestanden niet. Elke taak krijgt een speciaal benoemd Docker-volume dat op /workspace is gekoppeld. De container is vervangbare uitvoeringsstatus; het benoemde volume is het duurzame bestandssysteem van de taak.
Een databaseback-up alleen is daarom geen volledige Work-back-up. Maak een back-up van de bijbehorende Docker-volumes met het back-upproces voor volumes van je Docker-host. Libre WebUI voorziet beheerde Work-volumes van het label ai.libre-webui.managed=true en de ID van de bijbehorende taak.
Wanneer je een Work-taak verwijdert, worden de SQLite-records en het beheerde benoemde volume permanent verwijderd. Een uitvoering annuleren, een voorbeeld stoppen of de backend opnieuw starten verwijdert de bestanden niet.
JSON-compatibiliteit
Oudere Libre WebUI-installaties gebruikten JSON-bestanden voor bepaalde gegevens. Huidige builds gebruiken SQLite als primair opslagpad en houden toegang tot de opslag achter service-/modellagen, zodat de rest van de toepassing het persistentieformaat niet hoeft te kennen.
Maak bij een upgrade van een oude installatie een back-up van de volledige gegevensmap voordat je de nieuwere backend start.
Oude pluginactivering in .status.json wordt eenmalig gemigreerd naar SQLite-rijen per gebruiker voor accounts die tijdens de upgrade bestaan, maar alleen voor meegeleverde definities die aan een exacte hash zijn verankerd. Oude aangepaste en shadow-definities blijven in quarantaine totdat een beheerder ze opnieuw importeert; goedkeuring herstelt oude activeringsrijen niet. Latere accounts beginnen zonder actieve plugins en activeringswijzigingen van elk account zijn onafhankelijk.
Back-up
Stop de backend voordat je de database kopieert:
cp -R backend/data backend/data.backup
Voor implementaties die DATA_DIR gebruiken:
cp -R "$DATA_DIR" "$DATA_DIR.backup"
Als de instantie Work gebruikt, maak dan ook een back-up van elk beheerd benoemd Work-volume terwijl de backend is gestopt. Bewaar de database, versleutelingssleutel en back-up van de Work-volumes van hetzelfde tijdstip samen.
Herstellen
Stop de backend, vervang de gegevensmap door de back-up en start opnieuw. Behoud dezelfde ENCRYPTION_KEY; versleutelde waarden kunnen met een andere sleutel niet worden ontsleuteld.
Herstel voor Work de benoemde volumes onder de exacte namen die in de herstelde database zijn vastgelegd voordat je de backend start. Libre WebUI kan de container van een taak opnieuw maken, maar kan ontbrekende werkruimtebestanden niet reconstrueren uit de gespreksgeschiedenis.
Operationele opmerkingen
- SQLite draait met WAL ingeschakeld voor betere gelijktijdige leesbewerkingen.
- De gegevensmap moet schrijfbaar zijn voor het backendproces.
- Bewaar
DATA_DIRop duurzame opslag in Docker en Kubernetes. - Maak samen met de database een back-up van
ENCRYPTION_KEY. - Houd afzonderlijk rekening met benoemde Work-volumes wanneer je opslag meet, migreert of herstelt.