{{tag>réseau internet cloud sauvegarde tutoriel}}
{{ :logo:restic.png?130|Logo de Restic}}
====== Sauvegarder sur une box Internet grâce à Restic ======
Ce tutoriel décrit comment mettre mettre en place un dépôt de sauvegarde sur un disque dur connecté à une //box// Internet (ici une //freebox//) afin de sauvegarder ses données depuis n'importe où (et idéalement ailleurs, peut-être chez la famille ou chez des ami·e·s).
Pour ce tutoriel nous utiliserons le //[[:restic#wrappers|wrapper]]// **[[https://github.com/creativeprojects/resticprofile|resticprofile]]** afin de nous faciliter l'utilisation de **[[:restic]]**, et **[[:rclone]]** pour nous connecter à la //freebox//.
===== Prérequis =====
**Resticprofile** est un outil qui s'utilise en [[:tutoriel:console_ligne_de_commande|ligne de commande]], il est donc recommandé d'être à l'aise avec le [[:terminal]], ou au moins d'en connaître les [[:tutoriel:console_commandes_de_base|rudiments]].\\
Si ce n'est pas le cas mieux vaut commencer par essayer de vous former un minimum en consultant [[:tutoriel:console_ligne_de_commande|cette documentation]], en particulier les chapitres concernant les commandes ''[[:tutoriel:console_ligne_de_commande#ls]]'', ''[[:tutoriel:console_ligne_de_commande#cd]]'', ''[[:tutoriel:console_ligne_de_commande#mkdir]]'', ''[[:tutoriel:console_ligne_de_commande#mv]]'', ''[[:tutoriel:console_ligne_de_commande#cp]]'', et ''[[:tutoriel:console_ligne_de_commande#rm]]''.
La plupart de ces outils ne sont malheureusement pas traduits en français pour le moment, ni leurs documentations officielles. N'hésitez pas à demander de l'aide sur le forum si besoin !
==== Nom de domaine ====
//Free// (et peut-être d'autres fournisseurs d'accès) propose de faire pointer un sous-domaine de ''.freeboxos.fr'' vers les connexions de leurs clients. Cette fonctionnalité facilite l'accès à ses services [[:hebergeur#auto-hebergement|auto-hébergés]] depuis n'importe où sur Internet : pas besoin de [[:tutoriel:connaitre_son_adresse_ip|noter une adresse IP]] qui est susceptible de changer, et vous pourrez profiter d'un certificat TLS / RSA valide, le tout sans frais supplémentaire.\\
Pour l'activer rendez-vous sur l'interface de gestion de la //freebox// [[http://mafreebox.freebox.fr]] puis dans les //Paramètres de la Freebox// -> //Nom de domaine// (voir si besoin [[https://www.universfreebox.com/article/53008/le-saviez-vous-vous-pouvez-acceder-aux-contenus-du-freebox-server-depuis-n-importe-ou-avec-un-nom-de-domaine-personnalise|cette documentation]] sur //Univers Freebox//).
Si votre fournisseur d'accès ne propose pas ce service, vous pouvez vous rabattre sur un [[:DNS dynamique]], mais il risque d'être plus compliqué d'[[:tutoriel:comment_creer_un_certificat_ssl|installer un certificat valide]].
===== Partage de l'espace de stockage =====
Une fois le disque dur connecté à la //freebox//, on accède à la gestion de celle-ci en se rendant sur la page [[http://mafreebox.freebox.fr/]].
Dans //Paramètres de la Freebox// (entrez votre mot de passe si nécessaire) cliquez sur FTP, activez le partage par FTP et renseignez un mot de passe extraordinairement complexe et long, sans mot du dictionnaire : ce sera la seule protection de vos données exposées sur Internet.
Activez ensuite l'accès à distance. En bas de la fenêtre est affichée l'[[:web#URL]] de votre partage :\\
> //Votre serveur FTP sera accessible à distance sur ''ftpes:%%//%%freebox@exemple.freeboxos.fr:1234''//\\
Notez ces informations :
* ''freebox'' est votre nom d'utilisateur.
* ''exemple.freeboxos.fr'' est votre hôte.
* ''1234'' est le numéro de port.
* notez évidemment aussi votre mot de passe (avec un gestionnaire de mot de passe, tel que [[:KeePassXC]] par ex.)
===== Rclone =====
[[:Rclone]] va nous permettre de nous connecter au stockage de la Freebox depuis n'importe où.
[[:rclone#installation|Installez rclone]] et mettez-le à jour à sa dernière version :
sudo apt install rclone
sudo rclone selfupdate
Créez un fichier de configuration ''~/.config/rclone/rclone.conf'' qui contiendra les informations de connexion :
[freebox]
type = ftp
host = exemple.freeboxos.fr
user = freebox
port = 1234
pass = hash_du_mot_de_passe
explicit_tls = true
Adaptez évidemment ces informations avec celles recueillies au chapitre précédent !
* Remplacez ''exemple.freeboxos.fr'' par votre hôte.
* ''1234'' par votre numéro de port.
* Pour obtenir le ''hash_du_mot_de_passe'', entrez la commande suivante en remplaçant ''votre_mot_de_passe'' par celui du chapitre précédent : rclone obscure 'votre_mot_de_passe'
Le retour de cette commande est votre //hash//. Conserver un espace au début de la commande (avant ''rclone'') permet d'éviter d'enregistrer votre mot de passe en clair dans votre [[:terminal#l_historique_des_commandes|historique]].
À partir de maintenant on n'aura qu'à simplement utiliser l'identifiant ''freebox:'' de **rclone** pour profiter de cette connexion à la //freebox//.
Vous pouvez vérifier que tout fonctionne bien en tapant
rclone ls freebox:
ou utiliser [[:analyseur_usage_espace_disque#ncdu]] pour explorer le stockage de votre freebox :
rclone ncdu freebox:
===== Restic =====
[[:Restic]] est le moteur de sauvegarde.
[[:restic#installation|Installez-le]] et mettez-le aussi à jour à sa dernière version :
sudo apt install restic
sudo restic self-update
On peut ensuite initier un dépôt restic sur la freebox :
restic -r rclone:freebox:/disque_dur/restic init
* Remplacez ''disque_dur'' par le nom de votre stockage sur la freebox.
* On créera ici un nouveau mot de passe **pour restic** qu'on notera pour la suite. Il permet de chiffrer vos données, ce qui les rend inaccessibles, même aux propriétaires de l'espace de stockage (s'il s'agit de tiers).
Cette commande créera un répertoire ''restic'' à la racine du disque dur contenant votre dépôt restic (donc vos sauvegardes).
===== Resticprofile =====
**[[https://github.com/creativeprojects/resticprofile|Resticprofile]]** permet de simplifier l'usage de **restic** et d'automatiser facilement les sauvegardes.
==== Installation ====
Pour [[https://creativeprojects.github.io/resticprofile/installation/linux/index.html|l'installer]] :
sudo apt install curl
curl -LO https://raw.githubusercontent.com/creativeprojects/resticprofile/master/install.sh
chmod +x install.sh
sudo ./install.sh -b /usr/local/bin
rm install.sh
==== Configuration ====
On peut alors créer un fichier de configuration ''~/.config/resticprofile/profiles.yaml'' :
version: "1"
default:
repository: "rclone:freebox:/disque_dur/restic"
password-file: "password.txt"
backup:
source:
- "/home"
exclude:
- "/**/ImapMail/"
- "/**/cache/"
- "/**/.cache/"
- "/**/cache2/"
- "/**/storage/"
schedule: '*-*-* 20:00:00'
retention:
keep-daily: 7
keep-weekly: 4
keep-monthly: 12
keep-yearly: "unlimited"
* Remplacez ''/disque_dur/'' par le nom de votre stockage sur la freebox.
* Vous pouvez ajuster les éléments à sauvegarder (''source'' du ''backup'') et ceux à exclure (''exclude'') en fonction de vos besoins.
* Voir la [[https://creativeprojects.github.io/resticprofile/schedules/configuration/index.html#schedule|documentation]] pour l'utilisation de ''schedule'', qui permet de **programmer les sauvegardes automatiques** (ici tous les jours à 20h). La syntaxe à utiliser est celle de [[https://www.freedesktop.org/software/systemd/man/latest/systemd.time.html#|systemd.time]].
* Voir aussi la [[https://creativeprojects.github.io/resticprofile/reference/profile/retention/index.html|documentation]] concernant la **politique de rétention** : on conserve ici les instantanés quotidiens pendant 7 jours, les hebdomadaires pendant 4 semaines, les mensuels pendant 12 mois et les annuels éternellement.
On peut définir le mot de passe en clair dans un fichier ''password.txt'' :
echo "mot_de_passe_restic" > ~/.config/resticprofile/password.txt
Attention évidemment à garder ce fichier personnel et secret :
chmod 400 ~/.config/resticprofile/password.txt
==== Utilisation ====
À partir de là on peut utiliser la commande ''resticprofile'' sans avoir besoin de préciser tous les arguments que requiert ''restic'' ni le mot de passe (les [[:restic#utilisation|sous-commandes restic]] sont aussi disponibles avec ''resticprofile'') :
* On pourra ainsi lancer une première sauvegarde avec un simple :resticprofile backup
* Pour lister tous les instantanés il suffit d'entrer :resticprofile
* Et par exempleresticprofile ls latest
pour lister les fichiers de la dernière sauvegarde.
* Si tout va bien et que la sauvegarde se passe bien, on peut activer le déclenchement automatique des sauvegardes régulières avec la sous-commande ''[[https://creativeprojects.github.io/resticprofile/schedules/commands/index.html|schedule]]'' :resticprofile schedule --all
* Pour voir si la programmation des sauvegardes fonctionne bien :resticprofile status
* Pour [[:restic#montage|monter l'intégralité de votre dépôt]] et l'explorer avec le [[:gestionnaire de fichiers]] de votre choix :resticprofile mount /mnt/restic
(''Ctrl'' + ''C'' pour démonter)
----
//Contributeur : [[:utilisateurs:krodelabestiole]]//