Sauvegarde & Restauration
Sauvegarde automatique
CoreSight sauvegarde automatiquement la base de données avant chaque mise à jour (via le script update.sh ou la mise à jour web).
Les sauvegardes sont stockées dans :
/opt/coresight/backups/
└── coresight_1.1.0_20260623_120000.db # Format: version_date_heure.dbLes 10 sauvegardes les plus récentes sont conservées automatiquement.
Sauvegarde manuelle
Base de données
bash
# Copier la base de données vers un fichier daté
sudo cp /opt/coresight/server/data/coresight.db \
/opt/coresight/backups/manual_$(date +%Y%m%d_%H%M%S).dbSauvegarde complète (données + config)
bash
#!/bin/bash
# backup-coresight.sh
BACKUP_DIR="/backup/coresight"
DATE="$(date +%Y%m%d_%H%M%S)"
mkdir -p "${BACKUP_DIR}"
# Base de données
cp /opt/coresight/server/data/coresight.db "${BACKUP_DIR}/db_${DATE}.db"
# Configuration (sans la clé de chiffrement si stockée séparément)
cp /opt/coresight/server/.env "${BACKUP_DIR}/env_${DATE}.bak"
# Certificats
cp /opt/coresight/server/certs/cert.pem "${BACKUP_DIR}/cert_${DATE}.pem"
cp /opt/coresight/server/certs/key.pem "${BACKUP_DIR}/key_${DATE}.pem"
# Uploads (logos, etc.)
tar -czf "${BACKUP_DIR}/uploads_${DATE}.tar.gz" \
/opt/coresight/server/data/uploads/
echo "Sauvegarde complète dans ${BACKUP_DIR}"Automatiser les sauvegardes
Via cron (toutes les nuits à 2h)
bash
# Éditer le crontab root
sudo crontab -e
# Ajouter la ligne :
0 2 * * * /opt/coresight/scripts/backup.sh >> /var/log/coresight-backup.log 2>&1Via systemd timer (recommandé)
bash
# /etc/systemd/system/coresight-backup.service
[Unit]
Description=CoreSight — Sauvegarde quotidienne
[Service]
Type=oneshot
ExecStart=/bin/bash -c '\
DATE=$(date +%%Y%%m%%d_%%H%%M%%S); \
cp /opt/coresight/server/data/coresight.db /backup/coresight/db_${DATE}.db; \
find /backup/coresight/ -name "db_*.db" -mtime +30 -delete'bash
# /etc/systemd/system/coresight-backup.timer
[Unit]
Description=CoreSight — Timer sauvegarde quotidienne
[Timer]
OnCalendar=*-*-* 02:00:00
RandomizedDelaySec=600
Persistent=true
[Install]
WantedBy=timers.targetbash
sudo systemctl daemon-reload
sudo systemctl enable --now coresight-backup.timerRestauration
Restaurer depuis une sauvegarde
bash
# 1. Arrêter le service
sudo systemctl stop coresight
# 2. Copier la sauvegarde (remplacer par le bon fichier)
sudo cp /opt/coresight/backups/coresight_1.1.0_20260623_120000.db \
/opt/coresight/server/data/coresight.db
# 3. Corriger les permissions
sudo chown coresight:coresight /opt/coresight/server/data/coresight.db
sudo chmod 660 /opt/coresight/server/data/coresight.db
# 4. Redémarrer
sudo systemctl start coresight
# 5. Vérifier
curl -k https://localhost/api/healthClé de chiffrement
La base de données sauvegardée utilise la même clé de chiffrement que lors de la sauvegarde. Assurez-vous que le fichier .env contient la bonne DB_ENCRYPTION_KEY.
Migration vers un nouveau serveur
bash
# Sur l'ancien serveur : exporter
sudo tar -czf coresight-migration.tar.gz \
/opt/coresight/server/data/coresight.db \
/opt/coresight/server/.env \
/opt/coresight/server/certs/ \
/opt/coresight/server/data/uploads/
# Transférer vers le nouveau serveur
scp coresight-migration.tar.gz admin@nouveau-serveur:/tmp/
# Sur le nouveau serveur : installer CoreSight d'abord
sudo bash install.sh --no-le # Sauter la génération de cert initial
# Puis restaurer les données AVANT de démarrer le service
sudo systemctl stop coresight
cd /tmp && sudo tar -xzf coresight-migration.tar.gz -C /
sudo chown -R coresight:coresight /opt/coresight/
sudo systemctl start coresight