Base de données & Sauvegardes
CoreSight utilise une base de données SQLite chiffrée (via SQLCipher) stockée localement dans /opt/coresight/server/data/coresight.db.
Clé de chiffrement perdue ou invalide
Erreur : SQLITE_NOTADB: file is not a database
Cette erreur indique que le moteur SQLite ne parvient pas à déchiffrer le fichier. Cela se produit systématiquement si la clé de chiffrement DB_ENCRYPTION_KEY ne correspond pas à celle utilisée lors de la création de la base.
Diagnostic et Solution :
- Vérifiez le fichier d'environnement :
cat /opt/coresight/server/.env - Si vous avez restauré une ancienne base de données sans restaurer le fichier
.envcorrespondant, vous devez retrouver la clé d'origine. - Important : La clé ne peut pas être recalculée. Si vous perdez définitivement la clé, les données sont irrécupérables.
Corruption de base de données
Bien que rare grâce au mode WAL (Write-Ahead Logging), une coupure de courant brutale pendant une écriture de disque peut corrompre le fichier.
Comment vérifier l'intégrité (PRAGMA integrity_check)
sudo /opt/coresight/node/bin/node -e "
const Database = require('/opt/coresight/server/node_modules/better-sqlite3-multiple-ciphers');
const key = require('fs').readFileSync('/opt/coresight/server/.env', 'utf8').match(/DB_ENCRYPTION_KEY=(.+)/)[1].trim();
const db = new Database('/opt/coresight/server/data/coresight.db');
db.pragma('key=\'' + key + '\'');
const result = db.pragma('integrity_check');
console.log(result);
db.close();
"Si le résultat affiche "ok", la base n'est pas corrompue. Sinon, vous devez restaurer une sauvegarde.
Restauration d'une sauvegarde
Le processus d'installation/mise à jour crée automatiquement des sauvegardes dans le dossier /opt/coresight/backups/.
Procédure de restauration complète :
# 1. Arrêter le service
sudo systemctl stop coresight
# 2. Renommer la base actuelle (par précaution)
sudo mv /opt/coresight/server/data/coresight.db /opt/coresight/server/data/coresight.db.broken
# 3. Copier la sauvegarde souhaitée
sudo cp /opt/coresight/backups/coresight_1.1.0_20260623_120000.db /opt/coresight/server/data/coresight.db
# 4. Assurer les bons droits
sudo chown coresight:coresight /opt/coresight/server/data/coresight.db
# 5. Redémarrer
sudo systemctl start coresight