Pourquoi automatiser vos sauvegardes avec Restic
Un VPS héberge souvent des données irremplaçables : bases de données, volumes Docker, fichiers de configuration. Restic répond à trois exigences clés d'une bonne stratégie : le chiffrement (AES-256, le dépôt est inutilisable sans le mot de passe), la déduplication (les blocs identiques ne sont stockés qu'une fois, ce qui réduit drastiquement le volume et le coût), et le support de backends variés (S3, Backblaze B2, SFTP, stockage local). Self-héberger Restic sur le VPS plutôt que de dépendre d'un service de backup managé vous donne le contrôle total du chiffrement : la clé reste chez vous, le fournisseur de stockage ne voit que des blobs opaques. C'est la base d'une stratégie 3-2-1 sérieuse.
Ce que Restic vous apporte
- Chiffrement AES-256 côté client : le backend de stockage ne voit que des données illisibles.
- Déduplication par blocs qui réduit fortement la taille et le coût des sauvegardes successives.
- Snapshots incrémentaux rapides : seuls les nouveaux blocs sont transférés à chaque run.
- Backends multiples (S3, Backblaze B2, SFTP, rest-server, local) sans changer de workflow.
- Restauration granulaire : un fichier, un dossier ou tout un snapshot via
restic restore. - Politique de rétention automatisée avec
forget --prune(garder N quotidiens, M hebdos...).
Prérequis pour ce déploiement
Restic est frugal : il fonctionne sur n'importe quel VPS, y compris 1 vCPU et 1 Go de RAM, la déduplication consommant un peu de mémoire proportionnellement à la taille du dépôt. Vous avez besoin du binaire restic (paquet de la distribution ou téléchargement direct), d'un backend de destination distant (un bucket S3-compatible chez un fournisseur, ou un autre serveur en SFTP) et de ses identifiants. Pas de Docker obligatoire ici : Restic est un outil en ligne de commande. Prévoyez cron ou un timer systemd pour l'automatisation, et un emplacement sûr hors du VPS pour conserver le mot de passe du dépôt.
Mettre en place des sauvegardes Restic automatisées
Installer Restic et préparer les variables d'environnement
Installez le binaire (apt install restic puis restic self-update). Créez un fichier /root/.restic-env contenant RESTIC_REPOSITORY, RESTIC_PASSWORD et les clés d'accès du backend (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY pour un bucket S3-compatible). Restreignez ses droits avec chmod 600.
Initialiser le dépôt chiffré
Chargez l'environnement puis exécutez restic init. Cette commande crée la structure du dépôt et scelle le chiffrement avec votre mot de passe. Sauvegardez ce mot de passe ailleurs que sur le VPS : sans lui, aucune restauration n'est possible.
Lancer une première sauvegarde
Sauvegardez vos répertoires critiques, par exemple restic backup /etc /var/www /opt/docker-data. Pour une base de données, faites un dump dans un fichier puis incluez-le, ou pipez le dump dans restic backup --stdin.
Définir une politique de rétention
Évitez l'accumulation infinie avec restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune. La passe --prune supprime physiquement les blocs devenus orphelins et libère l'espace dans le backend.
Automatiser via cron ou systemd timer
Créez un script backup.sh qui source .restic-env, lance restic backup puis restic forget --prune, et journalise le résultat. Planifiez-le quotidiennement, par exemple 0 3 * * * /root/backup.sh dans le crontab.
Tester une restauration et vérifier l'intégrité
Une sauvegarde non testée est une illusion. Listez les snapshots avec restic snapshots, restaurez vers un dossier temporaire (restic restore latest --target /tmp/test-restore) et lancez restic check périodiquement pour valider l'intégrité du dépôt.
Protégez vos sauvegardes contre le ransomware en activant le mode "append-only" côté backend : déployez rest-server distant avec l'option --append-only, ou utilisez un bucket S3 avec une politique IAM interdisant les suppressions. Ainsi, même si votre VPS est compromis et que l'attaquant obtient les identifiants, il ne pourra ni effacer ni chiffrer vos snapshots existants. Combinez cela avec une exécution de restic forget --prune depuis une machine distincte disposant, elle, des droits de suppression.