Skip to content

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 :

  1. Vérifiez le fichier d'environnement : cat /opt/coresight/server/.env
  2. Si vous avez restauré une ancienne base de données sans restaurer le fichier .env correspondant, vous devez retrouver la clé d'origine.
  3. 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)

bash
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 :

bash
# 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

CoreSight Documentation