From 73189f574bb4c6d3948c2ff363be7405e88d32b5 Mon Sep 17 00:00:00 2001 From: "sebastien.roy" Date: Fri, 6 Mar 2026 08:48:58 +0100 Subject: [PATCH] readme --- backup_vaultwarden/README.md | 136 +++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 backup_vaultwarden/README.md diff --git a/backup_vaultwarden/README.md b/backup_vaultwarden/README.md new file mode 100644 index 0000000..6750d0b --- /dev/null +++ b/backup_vaultwarden/README.md @@ -0,0 +1,136 @@ +FONCTIONNEMENT DU SCRIPT + +########################################################################################################################################################################>############################################################################################################### +COMPRESSION DES DONNÉES +####################################################################################################################################################################################################################################################################################### + +Le dossier data de Vaultwarden est compressé afin de créer une archive: + +Exemple: tar -czf "$LOCAL_BACKUP" -C "$(dirname "$DATA_DIR")" "$(basename "$DATA_DIR")" + +Le nom du fichier contient la date du jour : + + DATE=$(date +%F) + BACKUP_NAME="vaultwarden-backup-$DATE.tar.gz" + +Cela permet d’avoir des sauvegardes facilement identifiables. + + +####################################################################################################################################################################################################################################################################################### +TRANSFERT VERS LE SERVEUR DE BACKUP +####################################################################################################################################################################################################################################################################################### + +La sauvegarde est envoyée vers une machine dédiée grâce à SCP. +Pour éviter de saisir un mot de passe à chaque fois, une clé SSH est utilisée. + +Exemple: scp "${SSH_OPTS[@]}" "$LOCAL_BACKUP" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/" + +Cette clé SSH est générée sur la machine de backup et autorisée sur la machine Vaultwarden. + + +####################################################################################################################################################################################################################################################################################### +NOTIFICATION DISCORD +####################################################################################################################################################################################################################################################################################### + +Le script envoie une notification sur un salon Discord pour informer de l’état de la sauvegarde. Cela se fait grâce à un webhook Discord. + +Exemple d'envoi de message: + + curl -fsS -H "Content-Type: application/json" \ + -d "{\"content\":\"$msg\"}" \ + "$DISCORD_WEBHOOK_URL" + +Le message indique: + +-si la sauvegarde a réussi 🟢 +-si elle a échoué 🔴 +-le nom du backup +-les détails de l’erreur si nécessaire + + +####################################################################################################################################################################################################################################################################################### +PLANIFICATION AVEC CRON +####################################################################################################################################################################################################################################################################################### + +Le script est exécuté automatiquement chaque jour grâce à cron. + +Configuration: crontab -e + +Puis : 0 19 * * * /home/matt/vaultwarden/scripts/backup-vaultwarden.sh >> /home/matt/ vaultwarden/scripts/backup.log 2>&1 + +Signification: + +0 19 * * * +│ │ │ │ │ +│ │ │ │ └── tous les jours de la semaine +│ │ │ └──── tous les mois +│ │ └────── tous les jours du mois +│ └──────── 19h +└────────── minute 0 + +Tous les jours à 19h, le script est exécuté. +Les logs sont enregistrés dans : backup.log +Cela permet d’analyser les erreurs si un problème survient. + + +################################################################################################################################################################################################################################################################################################################################################################################## +SÉCURITÉ AVEC LE FICHIER .ENV +####################################################################################################################################################################################################################################################################################### + +Les informations sensibles ne sont pas stockées directement dans le script. +Elles sont placées dans un fichier .env + +Exemple: + + WEBHOOK_URL=... + REMOTE_USER=... + REMOTE_HOST=... + SSH_KEY=... + DATA_DIR=... + +Le script les valeurs : REMOTE_USER=$(grep -E '^REMOTE_USER=' .env | cut -d '=' -f2-) + +Explication: + +-grep recherche la variable dans le fichier .env +-cut récupère uniquement la valeur après = + +Exemple : REMOTE_USER="user" +Le script récupère uniquement : "user" + +Cela permet: + +-d’améliorer la sécurité +-d’éviter de modifier le script si un paramètre change + + +################################################################################################################################################################################################################################################################### +NETTOYAGE +################################################################################################################################################################################################################################################################### + +Une fois la sauvegarde envoyée sur la machine distante, le fichier temporaire est supprimé: + + [rm -f "$LOCAL_BACKUP"] + +Cela permet de garder le serveur propre et éviter de remplir le disque. + + +################################################################################################################################################################################################################################################################### +RÉSUMÉ : +################################################################################################################################################################################################################################################################### + +Le script automatise complètement les sauvegardes Vaultwarden : + +-sauvegarde du dossier data +-compression et datation +-transfert sécurisé via SSH +-notification Discord +-exécution automatique avec cron +-sécurisation des paramètres via .env + +Cela permet d’avoir une sauvegarde quotidienne fiable et surveillée. + + +################################################################################################################################################################################################################################################################### + +