1 Sauvegardes
pepper edited this page 2026-06-27 03:07:53 +00:00

💾 Sauvegardes & restauration

Éléments sauvegardés

Élément Contenu
docker-compose.yml Définition de la stack
.env Variables d'environnement
secrets/ Tous les mots de passe et clés
postgres/ Données PostgreSQL (toutes les bases)
postgres-init/ Script d'initialisation
authentik/ Config + media + certs
forgejo/ Données git + config
nextcloud/ Config Nextcloud (pas les fichiers user — trop volumineux)
qbittorrent/ Config qBittorrent (pas les downloads)
swag/ Config nginx, certificats, fail2ban
wireguard/ Config WireGuard
jellyfin/ Config Jellyfin
monitoring/ Config Prometheus, Loki, Alloy, Grafana (pas les données WAL)
git-push.sh Script de push Forgejo

Exclus (données régénérables) : WAL Prometheus/Loki/Alloy, cache Jellyfin, téléchargements qBittorrent.


backup.sh

# Sauvegarde à FROID (recommandé) — arrête la stack le temps du tar
sudo ./backup.sh

# Sauvegarde à CHAUD — sans arrêter (moins sûr pour PostgreSQL)
sudo ./backup.sh --hot

Comportement à froid :

  1. docker compose down -v
  2. tar -czf back-up_<jour>_<date>.tar.gz de tous les éléments
  3. Vérification de l'intégrité de l'archive (tar -tzf)
  4. docker compose up -d
  5. Rotation (conserve les 7 plus récentes)
  6. Copie hors-site vers REMOTE_DIR (si monté via sshfs)
  7. Nettoyage des images Docker dangling

Localisation des archives : /home/debian/docker/back-up_*.tar.gz Copie distante : /home/debian/jellyfin/home/ (montage sshfs)


restore.sh

# Restaurer une archive spécifique
sudo ./restore.sh back-up_lundi_01-01-2026_02h00.tar.gz

Comportement :

  1. Arrêt de la stack
  2. Extraction de l'archive dans /home/debian/docker/
  3. Redémarrage de la stack

⚠️ La restauration écrase les données actuelles. Faire une sauvegarde préalable si nécessaire.


Planification automatique (cron)

# Éditer la crontab root
sudo crontab -e

# Exemple : sauvegarde à froid tous les jours à 2h00
0 2 * * * /home/debian/docker/backup.sh >> /home/debian/docker/backup.log 2>&1

Vérifier les archives

# Lister les archives avec leur taille
ls -lh /home/debian/docker/back-up_*.tar.gz

# Vérifier l'intégrité
tar -tzf /home/debian/docker/back-up_<nom>.tar.gz > /dev/null && echo "OK"

# Lister le contenu d'une archive
tar -tzf /home/debian/docker/back-up_<nom>.tar.gz | head -50

Restauration sélective

# Extraire uniquement les secrets
tar -xzf back-up_<nom>.tar.gz secrets/

# Extraire la config d'un seul service
tar -xzf back-up_<nom>.tar.gz swag/