Skip to content

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.db

Les 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).db

Sauvegarde 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>&1

Via 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.target
bash
sudo systemctl daemon-reload
sudo systemctl enable --now coresight-backup.timer

Restauration

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/health

Clé 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

CoreSight Documentation