restic

restic

C'est quoi ?

restic est un programme de sauvegarde en ligne de commande, écrit en Go et livré en un seul exécutable, sans serveur à installer, pour Linux, macOS, Windows, FreeBSD et OpenBSD. Il découpe les fichiers en blocs, n'écrit que ceux qu'il n'a pas encore vus, les compresse et les chiffre avant de les envoyer dans un dépôt : répertoire local, serveur SFTP, bucket S3, rest-server ou tout service joignable par rclone. Chaque restic backup produit un snapshot, que l'on liste (restic ls), compare (restic diff), restaure ou monte en FUSE pour en extraire un seul fichier.

Le comparatif des logiciels de sauvegarde open source met restic face à Plakar et Databasus sur la planification, la rétention et la vérification des sauvegardes.

Pourquoi c'est intéressant ?

  • Binaires reproductibles : depuis la 0.6.1, chaque binaire publié se reconstruit octet pour octet depuis les sources. La v0.19.0 en fournit pour 25 combinaisons de système et d'architecture, en plus d'une image Docker.
  • Chiffrement pensé pour un stockage non sûr : le README suppose que d'autres, administrateurs système compris, accèdent au dépôt. Tout y arrive chiffré en AES-256 (mode CTR) et authentifié par Poly1305-AES, avec une clé dérivée du mot de passe par scrypt, comme le détaille la documentation de conception.
  • Déduplication entre machines : plusieurs hôtes peuvent sauvegarder dans le même dépôt, où un bloc commun n'est stocké qu'une fois. La compression demande le format de dépôt v2, celui que restic crée par défaut.
  • Stockages pris en charge nativement : local, SFTP, rest-server, S3 et compatibles, OpenStack Swift, Backblaze B2, Azure Blob Storage, Google Cloud Storage, et rclone pour le reste.
  • Vérification sans restauration : restic check contrôle la structure du dépôt, --read-data relit les données elles-mêmes, quitte à tout télécharger.
  • Append-only côté serveur : en mode --append-only, rest-server, le serveur HTTP du projet, refuse toute suppression ou modification. Une machine compromise ne peut plus effacer ses anciennes sauvegardes.

Cas d'usage

  • Envoyer chaque nuit un pg_dump dans le dépôt avec --stdin-from-command, lancé par un timer systemd.
  • Garder sept sauvegardes quotidiennes, quatre hebdomadaires et douze mensuelles avec restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune.
  • Recopier un dépôt local vers un bucket distant avec restic copy pour tenir une copie hors site.

À savoir

Ni planificateur, ni interface graphique. La documentation sur la planification le dit tel quel : restic s'exécute quand on l'appelle, ce n'est pas un démon. Le rythme se règle avec cron, un timer systemd, le Planificateur de tâches de Windows ou resticprofile, un outil tiers que la doc suggère, et c'est au script d'éviter deux instances simultanées. Ni le README ni la documentation ne décrivent d'interface graphique. Le montage FUSE ne fonctionne que sous Linux, macOS et FreeBSD.

Les bases de données passent par un dump. La documentation ne prévoit aucun connecteur PostgreSQL ou MySQL : restic sauvegarde la sortie d'une commande. Avec --stdin-from-command, il annule le snapshot si la commande échoue. Le simple tube mysqldump | restic backup --stdin masque cet échec, et la doc prévient qu'un dump raté donne alors un snapshot vide.

Mot de passe perdu ou clé fuitée : pas de rattrapage simple. Le README prévient qu'un mot de passe oublié rend les données irrécupérables. D'après le modèle de menace, une clé qui fuite ouvre les sauvegardes passées et futures, changer le mot de passe n'y change rien, et seul un restic copy vers un nouveau dépôt renouvelle la clé maîtresse. Si plusieurs machines partagent le dépôt, une fuite les expose toutes.

Plakar se présente comme l'étape suivante. Son billet A Short history of backup (mars 2025) range restic avec Borg, Duplicity, Tarsnap et Kopia parmi les outils open source qui ont généralisé chiffrement et déduplication, puis note que la plupart exigeaient une restauration complète pour montrer leur contenu. restic, lui, liste et monte ses snapshots sans rien restaurer. Les écarts tiennent ailleurs : Plakar a une interface web et des archives .ptar, et installe S3 ou PostgreSQL en plugins dont le téléchargement demande un compte, là où restic gère ses stockages nativement. Databasus répond à un autre besoin : un service planifié, avec interface, limité aux bases de données.

Toujours en 0.x après douze ans. Le dépôt date d'avril 2014 et n'a jamais publié de 1.0. La v0.19.0 est sortie le 9 juin 2026, quatorze mois après la 0.18.0, suivie de la v0.19.1 le 5 juillet. Le dernier commit sur master date du 25 septembre 2026.

SOURCES

DÉPÔThttps://github.com/restic/restic
SITEhttps://restic.net
LICENCEBSD-2-Clause