Potion Bottle Icon Manuel d'alchimie du code Potion Bottle Icon

Borg pour les sauvegardes sur Yunohost

- 827 mots - Temps de lecture estimé: 5 minutes

Offre de formation

Potion Bottle IconHéberger ton entreprise ou ton OBNL avec YunohostPotion Bottle Icon

Arrête de payer par utilisateur·ice pour des outils qui analysent tes données. Expérimente l'autohébergement sur un vrai serveur avec Yunohost et ses centaines d'applications libres.

Héberge tes données au Québec

Dans ce billet, je te présente comment j’ai configuré l’outil Borg pour faire des sauvegardes de l’ensemble de mon infrastructure Yunohost.

🌘 Le serveur d’autohébergement Yunohost


Sun Face IconComment configurer Borg pour sauvegarder complètement un serveur Yunohost sur rsync.net ?Sun Face Icon


Ce guide pas à pas explique l’installation de Borg via ‘yunohost app install borg’, la configuration des variables d’environnement (BORG_REMOTE_PATH, BORG_RSH), la génération et partage des clés SSH Ed25519, la création du dépôt ‘backup’, les sauvegardes manuelles par app via yunohost backup, et l’automatisation avec systemd (borg.timer/service). Idéal pour des backups dédupliqués, chiffrés et restaurables de toute l’infrastructure Yunohost-Debian.

Logo Yunohost pour les systèmes d'exploitation de serveur

Yunohost est une distribution GNU/Linux basée sur Debian qui offre une infrastructure de type plateforme applicative pour l’autohébergement. Elle simplifie la gestion du cycle de vie d’applications web orientée pour un usage personnel ou en petits groupes. Elle répond aux besoins des particuliers, travailleurs autonomes, organismes et petites entreprises.

L’association LinuQ où je m’implique bénévolement a fait de nombreuses explorations sur cette plateforme sur son wiki.

🌘 Le logiciel Borg

Logo Borg Backup


Sun Face IconQuelles sont les unités systemd pour automatiser Borg sur Yunohost ?Sun Face Icon


Borg utilise deux services systemd : ‘borg.timer’ pour l’ordonnancement périodique des backups (tourne en permanence), et ‘borg.service’ pour exécuter la tâche de sauvegarde puis s’arrêter. Lancez ‘systemctl start borg’ pour tester.

Borg est un logiciel de gestion de sauvegarde.

Ces deux services permettent l’exécution de Borg en arrière-plan:

🌘 Le service rsync.net

rsync.net est un service d’hébergement infonuagique qui se spécialise dans les sauvegardes avec le logiciel rsync. C’est un service sécuritaire et peu dispendieux pour garder des sauvegardes de ses systèmes.

Une fois obtenu, le service sera accessible via la commande ssh seulement. Vous aurez un nom d’utilisateur numérique ainsi qu’un mot de passe pour accéder au service. Un des serveurs de rsync.net, identifié par un sous-domaine de la forme SUB.rsync.net, héberge votre espace. Il faudra utiliser celui-ci pour la configuration de Borg.


Sun Face IconComment configurer rsync.net pour Borg sur Yunohost ?Sun Face Icon


Définissez RSYNC_SUB (sous-domaine comme ‘usw1’) et RSYNC_USER (numérique). Accédez via SSH avec mot de passe initial, puis partagez la clé ~/.ssh/id_borg_ed25519.pub dans .ssh/authorized_keys distant via rsync pour des connexions sans mot de passe.

Pour des fins de simplification de cette présentation, je vais configurer ces deux variables d’environnement. Je vous conseille aussi de faire de même:

# Sous-domaine du serveur de sauvegarde rsync.net
RSYNC_SUB=
# Nom d'utilisateur rsync.net
RSYNC_USER=

🌘 Borg et Yunohost

La façon la plus simple d’installer Borg sur un serveur Yunohost est par la ligne de commande, en tant que superutilisateur

yunohost app install borg

On vous demandera ensuite de fournir certains paramètres afin de personnaliser l’installation:

Il faut ensuite configurer une variable d’environnement qui permettra de bien utiliser le service Borg disponible sur rsync.net

export BORG_REMOTE_PATH=/usr/local/bin/borg1/borg1

L’installation de Borg par Yunohost va générer une paire de clés cryptographiques avec l’algorithme Ed25519. Celles-ci sont situées dans le répertoire /root/.ssh/ et ont le nom de fichier id_borg_ed25519. Il faudra d’ailleurs, pour se connecter au serveur rsync.net sans spécifier de mot de passe, partager cette clé sur celui-ci:

Attention

# Récupérer les clés actuelles 
ssh ${RSYNC_USER}@${RSYNC_SUB}.rsync.net cat .ssh/authorized_keys > ~/borg_authorized_keys
# Ajouter la nouvelle clé 
cat ~/.ssh/id_borg_ed25519.pub >> ~/borg_authorized_keys
# Synchroniser les nouvelles clés 
rsync -av ~/borg_authorized_keys ${RSYNC_USER}@${RSYNC_SUB}.rsync.net:.ssh/authorized_keys

Puis, à chaque connexion, préciser cette clé lors des connexions au serveur rsync.net, notamment avec le paramètre
-i /root/.ssh/id_borg_ed25519 de la commande ssh ou avec la variable d’environnement suivante pour Borg:

export BORG_RSH="ssh -i /root/.ssh/id_borg_ed25519 -oStrictHostKeyChecking=yes"

Créer manuellement le répertoire backup

ssh -i /root/.ssh/id_borg_ed25519 -oStrictHostKeyChecking=yes ${RSYNC_USER}@${RSYNC_SUB}.rsync.net mkdir backup

Pour démarrer une première sauvegarde, une fois que tous les services sont configurés. Comme celle-ci peut prendre plusieurs minutes lors de la première exécution, il est recommandé de travailler dans une session screen ou tmux.

systemctl start borg


Sun Face IconComment vérifier une sauvegarde Borg sur rsync.net ?Sun Face Icon


Utilisez ‘borg list ${RSYNC_USER}@${RSYNC_SUB}.rsync.net:~/backup’ pour lister les archives horodatées après la première exécution (lancez en screen/tmux car longue).

On peut ensuite valider la présence de la sauvegarde sur le serveur avec la commande suivante:

borg list ${RSYNC_USER}@${RSYNC_SUB}.rsync.net:~/backup

🌘 Sauvegarde manuelle

Ce petit script te permettra de déclencher une sauvegarde manuelle de toutes tes applications

for app in $(yunohost app list --json | jq '.apps | .[] | .id' | tr -d '"') 
do 
  yunohost backup create -n "auto_$app" --method borg_app --apps "$app" 
done

🌘 Références

Offre de service

Crescent Moon IconAuto-hébergement tout-inclus sans GAFAM — 3600 $Crescent Moon Icon

Libère-toi des frais par utilisateur·ice qui explosent. Héberge tes données au Québec avec des logiciels libres et facilite ta conformité à la loi 25.

Héberge tes données au Québec
Abonne-toi au fil RSS pour ne rien manquer.

Étiquettes