Retourner sur le site

Sauvegardes chiffrées avec Borg

Configurez BorgBackup sur VPS HolyCloud : dépôt chiffré, sauvegardes incrémentales, exclusions et synchronisation vers stockage distant (BorgBase ou SSH).

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 extract sur 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 disque df -h