Faisabilité d'une solution de backup "clef en main"

Bonjour !

TL ; DR : Ce que j’imagine en tant qu’utilisateur non technicien, pour proposer une méthode facile pour créer un serveur de backup. En gros, un Debian préconfiguré avec un client VPN, “esclave” ssh, un serveur borg, et un petit fichier chiffré que l’utilisateur doit garder pour récupérer tout ça.

Merci :sparkling_heart: !

Je suis impressionné chaque jour par la facilité d’administrer un serveur Yunohost pour un simple curieux comme moi. Je me dois donc de commencer ce post en saluant le travail incroyable de ce projet, et remercier les personne qui y contribue pour l’émancipation qu’elle rendent accessible.

Le seul “mais”, à mes yeux, est le système de backup. Pour moi, la force de yunohost, c’est de rendre les tâche d’administration simples au point qu’un simple clic suffise : installation d’application, mises à jour, diagnostic, etc. C’est le cas pour toutes les actions que j’estime “essentielles”, sauf pour les backup.

Le rêve :sweat_smile: :

Une solution de backup aussi simple que possible. Plus précisément, une solution de backup distante. J’imagine cela comme une image disque générée par yunohost, qui serait un debian “live”, préconfiguré (téléchargeable depuis l’interface web, ou sur une clef usb par exemple ?). Il suffirait de mettre cette image sur une machine connectée à internet, démarrer cette machine, et alors, elle apparait dans une liste de machine disponibles sur l’interface web de Yunohost. On peut alors choisir pour chaque machine de cette liste, un backup manuel, ou configurer un backup automatique en 1 clic.

Ce que j’imagine dans ma (relative) ignorance technique

Ce post est issu de mon idée ici : https://forum.yunohost.org/t/backup-box-la-brique-de-sauvergarde/
Je vais appelé mon serveur Yunohost “Y”, et le serveur de backup “B”.

Une connexion par VPN

Afin de ne pas avoir de problème d’adresse IP potentiellement dynamique, B pourrait se connecter à travers un VPN dont le serveur serait installé sur Y. Est-ce que c’est possible de créer un iso Debian live avec une configuration VPN complète préinstallée ? Est-ce qu’il faut un VPN dédié à cet usage ?

Un modèle maître-esclave via SSH

Y a un accès root (ou sudo ?) sur B. Est-ce que c’est possible de créer un iso Debian live avec une configuration SSH avec une clef publique de Y ?

BorgBackup

Y peut alors installé sur B un serveur borgbackup, et créer une archive chiffrée.

Fichier de récupération

Yunohost génère alors un fichier de récupération du backup, qui serait nécessaire si Y est complètement perdu. Ce fichier devrait contenir un backup du serveur VPN afin que B puisse se reconnecter sur la nouvelle machine, la clef de chiffrement de l’archive, (et quelques infos du genre les versions du client VPN et de borg, en cas de problème de rétrocompatibilité ?). Ce fichier serait alors téléchargeable depuis l’interface web de yunohost, en rentrant un mot de passe pour le chiffré, avec l’instruction de gardé ce fichier et son mot de passe précieusement en cas de nécessité de restauration.

Interface web de backup

Dans l’interface web, dans le menu “backup”, un nouveau menu, avec la liste des serveurs de backups qui ont été installé. On peut cliquer sur chacun d’entre eux pour :

  • Lancer un Backup “simple” manuellement, en un clic
  • Lancer un Backup “avancé”, où l’on peut choisir quoi backup, comme dans l’interface de backup actuelle
  • Configurer un schéma de backup automatisé, avec choix des choses à backups, et quelques configurations pour borg (fréquence ? compression ? pruning ?)

Récupération

Depuis l’interface web

Dans l’interface web, dans le menu consacré à B, on trouve une liste des backups par ordre antéchronologique, avec un bouton “restore” pour chacun d’entre eux.

Après une perte totale de Y

Lors du process de post installation de yunohost, une option “restauration avec fichier de récupération” permet, en fournissant le fichier décrit plus haut, une restauration automatique du serveur. Je pense que c’est important de pas faire ça après la post-install, parce que je ne sais pas quoi renseigner dans la psot-install. Est-ce que je crée un nouvel utilisateur ? Alors que j’ai déjà mes utilisateurs dans mon backup ! Pareil pour le nom de domaine.

Réflexions générales :

  • Est-ce que ce modèle n’est pas un peu “lourd” pour être implémenté dans yunohost lui-même ? Je pense notamment au VPN, ou au backup journalier.
  • Si oui, est-ce que un expérience proche pourrait être proposé par une application ? Je pense notamment en terme de privilèges donné à cette application.
  • Je n’ai pas de solution simple pour gérer la configuration du système B, notamment d’un point de vu volumes. Par exemple je veux que B soit un raspberry pi avec un disque dur externe, comment savoir quoi quoi formater/monter pour utiliser le disque ? (Le top du top serait d’être capable de lister les volumes accessibles directement dans l’interface web de Y :star_struck:)

Conclusion

J’hésite à faire ce post qui ressemble à une “feature request” d’un random sur internet qui ne contribue pas. Le travail que vous offrez sous licence libre est déjà une merveille qui me sert quotidiennement. Alors encore une fois merci. Ce post est avant tout une réflexion de curieux qui essaye de comprendre ce qui est possible ou non, facile ou non, faisable ou non.

Dans un premier temps, comme environ tout est déjà faisable (le VPN, on a des clients/serveurs, le serveur borg on en a plusieurs (dont un avec une interface web, mais à priori personne ne l’a testé encore), la sauvegarde configurable on l’a déjà (j’ai certains services sauvegardés tous les jours, les autres toutes les semaines), bref, ça se fait !
MAIS ! (forcément oui), un joli tuto avec des captures d’écran et un pas à pas très basique seraient top !

En tous cas, à moi ça me serait utile, j’ai des sauvegardes locales, mais aucune distante, j’aimerai bien mettre un petit ordi chez mon père pour y faire des sauvegardes distantes, mais la flemme est forte en moi !

(Pour la partie où on lance des sauvegardes via le web, ce n’est pas faisable actuellement, mais je suppose que faire une web-app qui le permette ne soit pas trop compliqué parce que tout est bien branché aux API de YunoHost)

Quelques liens :
L’app qui sauvegarde via borg : GitHub - YunoHost-Apps/borg_ynh: An experimental Borg implementation for YunoHost (même la, la doc dit qu’elle est incomplète, un coup de main serait chouette)
L’app pour le serveur borg : GitHub - YunoHost-Apps/borgserver_ynh: Borg server package for YunoHost (je l’utilise pour héberger une sauvegarde distante, pour sauvegarder en local il n’y en a pas besoin)
Et le tout nouveau gestionnaire de serveur borg mais vraiment très frais et peu testé : GitHub - YunoHost-Apps/borgwarehouse_ynh: BorgWarHouse package for YunoHost

Pour les VPN, je n’y connais rien, je sais qu’il y en a, c’est tout :person_shrugging:

Bon courage si tu t’en sors, j’ai hâte de voir une belle doc :heart:

2 Likes

Tu propose d’installer un deuxieme yunohost en tant que machine de backup (“B” dans mon exemple) c’est ça ?

Oui moi aussi c’est létape VPN qui m’effraie vu que j’ai jamais fait :sweat_smile:

Promis, si je m’y colle, je tâcherai de publier quelque part un joli tuto <3

J’aime bien l’idée d’avoir 2x yunohost, comme ça c’est homogène, mais pour le serveur de sauvegarde, tu peux aussi le faire à la main avec juste… ben n’importe quoi avec un serveur borg dessus :grin: