Sauvegarder un Raspberry Pi sur un NAS avec Restic : guide chiffré pas à pas

Schéma de sauvegarde chiffrée entre un Raspberry Pi et un NAS

Un Raspberry Pi qui héberge des conteneurs, des fichiers ou une instance Home Assistant contient vite des données irremplaçables. Une copie manuelle ne protège ni d’une carte microSD défaillante ni d’une suppression accidentelle. Voici comment installer Restic pour envoyer une sauvegarde chiffrée vers un NAS en SFTP, avec une rétention et un vrai test de restauration.

Les 3 points clés

  • Restic chiffre les fichiers avant de les envoyer vers le NAS.
  • La déduplication évite de recopier inutilement les données inchangées.
  • Une sauvegarde n’est fiable qu’après une restauration de test.

Résultat attendu : votre Pi crée chaque nuit un point de restauration chiffré dans un dépôt dédié du NAS, sans ouvrir le NAS sur Internet.

Schéma de sauvegarde chiffrée entre un Raspberry Pi et un NAS
Le Raspberry Pi chiffre localement ; le NAS ne reçoit que le dépôt chiffré.

Prérequis et limites

Ce guide vise Raspberry Pi OS 64 bits sur Pi 3, 4 ou 5, ainsi qu’un NAS ou un second Linux fournissant SSH/SFTP. Créez sur le NAS un compte backup sans privilèges d’administration et un dossier vide, par exemple /volume1/backup/pi-restic. Ajoutez une clé SSH du Pi à ce compte. Une copie locale ne protège pas du vol ou d’un incendie : pour des données critiques, ajoutez ensuite une copie hors domicile.

Étape 1 — Installer Restic et tester SSH

sudo apt update
sudo apt install -y restic openssh-client
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "pi-restic"
ssh backup@nas-maison.local 'mkdir -p /volume1/backup/pi-restic && chmod 700 /volume1/backup/pi-restic'

Copiez le contenu de ~/.ssh/id_ed25519.pub dans les clés autorisées du compte de sauvegarde du NAS. La dernière commande doit réussir sans demander le mot de passe du NAS. Adaptez le nom d’hôte et le chemin à votre modèle de NAS.

Étape 2 — Créer le dépôt chiffré

Le mot de passe du dépôt est indispensable à toute restauration. Utilisez une phrase longue, stockez-la aussi dans un gestionnaire de mots de passe et ne la mettez jamais dans le script.

mkdir -p ~/.config/restic
umask 077
printf 'UNE_PHRASE_LONGUE_ET_UNIQUE\n' > ~/.config/restic/password
export RESTIC_PASSWORD_FILE="$HOME/.config/restic/password"
export RESTIC_REPOSITORY='sftp:backup@nas-maison.local:/volume1/backup/pi-restic'
restic init

restic init ne s’exécute qu’une fois par dépôt. En cas de permission denied, vérifiez d’abord la clé, le chemin SFTP réel et les droits du dossier sur le NAS.

Étape 3 — Écrire une sauvegarde reproductible

Créez le script suivant. Ajustez les chemins : pour Docker, incluez les fichiers compose.yml, les fichiers .env et les volumes réellement utilisés. Pour une base de données, sauvegardez un export cohérent produit par l’application plutôt que ses fichiers actifs.

mkdir -p ~/bin
nano ~/bin/restic-backup.sh
#!/bin/sh
set -eu
export RESTIC_REPOSITORY='sftp:backup@nas-maison.local:/volume1/backup/pi-restic'
export RESTIC_PASSWORD_FILE="$HOME/.config/restic/password"
restic backup /home/pi /opt/stacks --exclude /home/pi/.cache --tag raspberry-pi
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
restic check
chmod 700 ~/bin/restic-backup.sh
~/bin/restic-backup.sh
Visuel de terminal pour les commandes Restic backup et check
Après chaque premier lancement, contrôlez le dépôt et un point de restauration.

Étape 4 — Tester la restauration

Ne vous arrêtez pas au message de succès. Listez les snapshots et restaurez un fichier non sensible dans un dossier temporaire :

export RESTIC_PASSWORD_FILE="$HOME/.config/restic/password"
export RESTIC_REPOSITORY='sftp:backup@nas-maison.local:/volume1/backup/pi-restic'
restic snapshots
mkdir -p /tmp/restic-test
restic restore latest --target /tmp/restic-test --include /home/pi/IMPORTANT.txt
ls -l /tmp/restic-test/home/pi/IMPORTANT.txt
restic check
rm -rf /tmp/restic-test

Ouvrez le fichier restauré avant de supprimer le dossier de test. Pour un sinistre, arrêtez le service concerné, restaurez vers un répertoire temporaire puis recopiez les données validées.

Étape 5 — Lancer la sauvegarde chaque nuit

Dans la crontab de l’utilisateur qui possède les fichiers, ajoutez une ligne. Elle produit un journal exploitable sans afficher le mot de passe :

crontab -e
30 2 * * * /home/pi/bin/restic-backup.sh >> /home/pi/restic-backup.log 2>&1

Le lendemain, lancez tail -n 30 ~/restic-backup.log, puis restic snapshots. Refaite un test de restauration après un changement de configuration et au moins une fois par trimestre.

Checklist de validation

Point À vérifier
SSH La connexion au compte backup fonctionne sans saisie interactive.
Secret Le fichier password est privé et possède une copie hors du Pi.
Données Les exports de bases et volumes nécessaires sont inclus.
Restauration Un fichier restauré a été lu depuis le dossier de test.
Rétention Le NAS a assez d’espace pour sept jours, quatre semaines et six mois.

Vidéo de prise en main

Cette introduction à Restic complète les commandes ci-dessus. Consultez toujours la documentation correspondant à votre version.

Dépannage et variantes

  • Repository does not exist : corrigez la syntaxe sftp:user@hote:/chemin et vérifiez le chemin côté NAS.
  • Wrong password : sélectionnez le bon fichier dans RESTIC_PASSWORD_FILE ; sans ce secret, le dépôt n’est pas récupérable.
  • NAS plein : réduisez la rétention puis relancez restic forget … --prune.
  • Base incohérente : créez d’abord un export pg_dump ou mariadb-dump.

Un disque USB distinct est une variante rapide mais ne protège pas contre le vol. Un dépôt S3 compatible apporte une copie hors site, avec un coût et une configuration supplémentaires. BorgBackup est une alternative SSH solide ; Restic est très pratique pour un NAS SFTP et sa gestion de rétention.

Questions fréquentes

Restic chiffre-t-il les fichiers sur le NAS ?

Oui. Le contenu, les noms de fichiers et les métadonnées sont chiffrés côté Raspberry Pi.

Puis-je sauvegarder Home Assistant ?

Oui : créez d’abord sa sauvegarde native ou un export cohérent, puis incluez ce fichier dans Restic. Home Assistant OS suit une procédure d’accès différente.

Une carte microSD suffit-elle comme destination ?

Non. Elle reste dans le même appareil ; choisissez un NAS, un disque séparé ou du stockage hors site.

Sources officielles


Vincent Vandegans — Passionné de Raspberry Pi, Linux et informatique pratique, Vincent partage des tutoriels pour construire une maison numérique plus autonome.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *