Sauvegardes chiffrées avec Borg
BorgBackup (Borg) effectue des sauvegardes dédupliquées et chiffrées — idéal pour protéger /etc, sites web et bases sur un VPS Linux HolyCloud avant migration ou incident. Ce guide installe Borg, initialise un dépôt local ou distant (SSH, compatible BorgBase), planifie des archives et vérifie la restauration.
Prérequis
- VPS HolyCloud Ubuntu/Debian, accès sudo
- Espace disque suffisant pour le dépôt (local ou distant)
- Pour BorgBase ou autre hébergeur : compte, dépôt créé, clé SSH enregistrée
- Phrase secrète (passphrase) Borg notée dans un gestionnaire de mots de passe — sans elle, les données sont irrécupérables
Conseil : testez
borg extractsur un fichier isolé avant de compter uniquement sur Borg en production.
Étape 1 : installation
sudo apt update
sudo apt install -y borgbackup
borg --version
Étape 2 : initialiser un dépôt local (test)
sudo mkdir -p /var/borg/repos
sudo borg init --encryption=repokey /var/borg/repos/vps-holycloud
Choisissez une passphrase forte. Export de la clé (à stocker hors du VPS) :
sudo borg key export /var/borg/repos/vps-holycloud /root/borg-key-backup.txt
sudo chmod 600 /root/borg-key-backup.txt
Étape 3 : première archive
sudo borg create --verbose --stats --progress \
/var/borg/repos/vps-holycloud::'{hostname}-{now:%Y-%m-%d}' \
/etc \
/var/www \
/home \
--exclude '/var/www/*/cache' \
--exclude '*.tmp'
Lister :
sudo borg list /var/borg/repos/vps-holycloud
sudo borg info /var/borg/repos/vps-holycloud
Étape 4 : dépôt distant via SSH (BorgBase ou autre serveur)
Sur le VPS, clé dédiée :
ssh-keygen -t ed25519 -f ~/.ssh/borg_remote -N ""
cat ~/.ssh/borg_remote.pub
Ajoutez la clé publique côté BorgBase (interface web) ou authorized_keys sur le serveur de backup.
~/.ssh/config :
Host borgbase
HostName repo.borgbase.com
User VOTRE_ID_BORGBASE
IdentityFile ~/.ssh/borg_remote
IdentitiesOnly yes
Initialisation distante :
borg init --encryption=repokey borgbase:./repo-vps
Première archive distante :
borg create --verbose --stats \
borgbase:./repo-vps::'{hostname}-{now:%Y-%m-%d}' \
/etc /var/www /home
Étape 5 : politique de rétention (prune)
sudo borg prune --list --keep-daily 7 --keep-weekly 4 --keep-monthly 6 \
/var/borg/repos/vps-holycloud
Script combiné create + prune :
sudo nano /opt/scripts/borg-backup.sh
#!/bin/bash
set -euo pipefail
export BORG_PASSPHRASE='VOTRE_PASSPHRASE'
REPO=/var/borg/repos/vps-holycloud
ARCHIVE="$(hostname)-$(date +%Y-%m-%d_%H%M)"
borg create "$REPO::$ARCHIVE" /etc /var/www /home \
--exclude '/var/www/*/cache'
borg prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6 "$REPO"
borg compact "$REPO"
sudo chmod 700 /opt/scripts/borg-backup.sh
Préférez un fichier /root/.borg-passphrase en mode 600 plutôt qu'une passphrase en clair dans le script.
Étape 6 : cron
0 3 * * * root /opt/scripts/borg-backup.sh >> /var/log/borg-backup.log 2>&1
Étape 7 : restauration (test)
Lister le contenu d'une archive :
sudo borg list /var/borg/repos/vps-holycloud::hostname-2026-06-22
sudo borg extract --dry-run /var/borg/repos/vps-holycloud::hostname-2026-06-22 etc/hostname
Extraire un fichier :
sudo mkdir -p /tmp/borg-restore
cd /tmp/borg-restore
sudo borg extract /var/borg/repos/vps-holycloud::hostname-2026-06-22 etc/passwd
ls -la etc/passwd
Montage exploratoire (FUSE) :
sudo apt install -y python3-borgbackup 2>/dev/null || true
mkdir -p /mnt/borg
sudo borg mount /var/borg/repos/vps-holycloud::hostname-2026-06-22 /mnt/borg
ls /mnt/borg
sudo borg umount /mnt/borg
Vérification
sudo borg check /var/borg/repos/vps-holycloud
sudo borg list /var/borg/repos/vps-holycloud | tail -5
df -h /var/borg
tail -20 /var/log/borg-backup.log
borg check sans erreur ; la dernière archive date du jour prévu.
Besoin d'aide HolyCloud
- Passphrase incorrect : aucune récupération possible sans export de clé + passphrase
- Dépôt verrouillé :
borg break-lock REPO - Espace disque :
borg compact, augmenter le volume HolyCloud ou prune plus agressif - Support HolyCloud : type de dépôt (local/SSH), sortie
borg check, espace disquedf -h