Μετάβαση στο κύριο περιεχόμενο

Αποθήκευση SQLite

Το Libre WebUI αποθηκεύει από προεπιλογή σε SQLite chat, μηνύματα, χρήστες, προτιμήσεις, έγγραφα και τμήματα, περσόνες, διαπιστευτήρια plugin, μνήμες και metadata σε μία τοπική βάση.

Θέση βάσης

Η εκκίνηση από πηγαίο κώδικα χρησιμοποιεί:

  1. DATA_DIR όταν ορίζεται· οι σχετικές τιμές επιλύονται από τον κατάλογο backend.
  2. backend/data όταν δεν ορίζεται.

Για συμβατότητα, χωρίς τιμή συνεχίζει το backend/backend/data όταν είναι η μόνη μόνιμη αποθήκη. Αν και τα δύο έχουν κατάσταση, η εκκίνηση απαιτεί ρητή επιλογή και ποτέ δεν συγχωνεύει ή αντιγράφει.

Ο packaged launcher npm/Homebrew χρησιμοποιεί ~/.libre-webui και επιλύει σχετικό DATA_DIR από τον κατάλογο του καλούντος. Docker και Kubernetes δίνουν απόλυτες διαδρομές.

Το αρχείο ονομάζεται data.sqlite.

DATA_DIR=/var/lib/libre-webui

Τι αποθηκεύεται

  • Χρήστες, ρόλοι, συνεδρίες και μηνύματα
  • Προτιμήσεις και UI
  • Έγγραφα και τμήματα
  • Περσόνες, μνήμες και κατάσταση μετάλλαξης
  • Διαπιστευτήρια plugin, δεσμεύσεις routing/auth, μεταβλητές, ενεργοποιήσεις, εγκρίσεις και κατάλογοι
  • Ρυθμίσεις συστήματος
  • Ιδιοκτησία Work, routing μοντέλου/παρόχου, εκτελέσεις, μηνύματα, εργαλεία, κατάσταση και ID Docker

Οι ευαίσθητες τιμές κρυπτογραφούνται στο επίπεδο εφαρμογής από τους βοηθούς αποθήκευσης.

Η αποθήκευση Work χωρίζεται

Η συνομιλία και τα metadata είναι SQLite, τα αρχεία όχι. Κάθε εργασία έχει named Docker volume στο /workspace. Το container είναι αντικαταστάσιμη εκτέλεση, το volume μόνιμο filesystem.

Μόνο η βάση δεν αποτελεί πλήρες backup Work. Δημιουργήστε backup των volumes με τη διαδικασία του host. Το Libre τα επισημαίνει ai.libre-webui.managed=true και ID εργασίας.

Η διαγραφή εργασίας αφαιρεί μόνιμα γραμμές και volume. Ακύρωση, stop preview ή restart δεν διαγράφουν αρχεία.

Συμβατότητα JSON

Παλιότερες εγκαταστάσεις χρησιμοποιούσαν JSON. Οι τρέχουσες έχουν SQLite ως κύριο μονοπάτι πίσω από service/model layers. Πριν την αναβάθμιση αντιγράψτε όλο τον κατάλογο.

Η ενεργοποίηση .status.json μεταφέρεται μία φορά σε γραμμές χρήστη μόνο για ακριβείς hash-anchored ενσωματωμένους ορισμούς. Custom/shadow μένουν καραντίνα μέχρι επανεισαγωγή διαχειριστή και η έγκριση δεν επαναφέρει παλιές ενεργοποιήσεις. Νέοι λογαριασμοί δεν έχουν ενεργά plugin.

Backup

Σταματήστε το backend πριν την αντιγραφή:

cp -R backend/data backend/data.backup

Με DATA_DIR:

cp -R "$DATA_DIR" "$DATA_DIR.backup"

Με Work, αντιγράψτε και κάθε managed volume ενώ το backend είναι σταματημένο. Κρατήστε βάση, encryption key και volumes από την ίδια στιγμή.

Επαναφορά

Σταματήστε, αντικαταστήστε τον κατάλογο και επανεκκινήστε με ίδιο ENCRYPTION_KEY. Για Work επαναφέρετε τα volumes με τα ακριβή ονόματα της βάσης πριν την εκκίνηση. Το Libre δημιουργεί container αλλά δεν ανακατασκευάζει αρχεία από ιστορικό συνομιλίας.

Σημειώσεις λειτουργίας

  • Το SQLite έχει WAL για ταυτόχρονες αναγνώσεις.
  • Ο κατάλογος πρέπει να είναι εγγράψιμος.
  • Διατηρείτε DATA_DIR σε μόνιμη αποθήκευση Docker/Kubernetes.
  • Αντιγράφετε ENCRYPTION_KEY μαζί με τη βάση.
  • Μετράτε, μεταφέρετε και επαναφέρετε τα volumes Work χωριστά.

Σχετική τεκμηρίωση