Description
Borg Backup Server (BBS) est un serveur d'orchestration pour [[app-borg]]. Borg est fantastique mais c'est un outil mono-machine : vous devez gérer manuellement borg init, borg create, borg prune sur chaque hôte. Quand vous avez 5, 10, 20 machines à sauvegarder, ça devient vite pénible.
BBS joue exactement le même rôle que [[app-borg-ui]] mais avec une orientation serveur central : vous déployez BBS quelque part, et depuis son UI web vous pouvez :
- ✅ Déclarer des clients (endpoints Linux/Windows où tourne un agent BBS)
- ✅ Créer un repository Borg distant (SFTP, local, Rclone) côté serveur
- ✅ Définir des politiques de sauvegarde (sources, exclusions, rétention, schedule)
- ✅ Déclencher des jobs à distance (push ou pull, selon le sens du réseau)
- ✅ Surveiller l'état : dernière exécution, taille, durée, exit code
- ✅ Restaurer un fichier depuis l'UI sans avoir à se connecter en SSH sur l'endpoint
- ✅ Multi-clients : un seul BBS peut orchestrer des dizaines de machines
- ✅ API REST pour intégration maison
- ✅ Notifications : email / webhook en cas d'échec
- ✅ S'appuie sur Borg : zéro réinvention, toute la puissance de Borg (chiffrement, déduplication, compression) reste disponible
Public cible : admins qui ont plusieurs machines à sauvegarder avec Borg et qui veulent un point central de pilotage sans monter une stack Bacula / Bareos / Pluton. C'est le « Borg UI distribué ».
Installation
Docker Compose
# docker-compose.yml
version: '3.8'
services:
borg-backup-server:
image: ghcr.io/marcpope/borgbackupserver:latest
container_name: borg-backup-server
restart: unless-stopped
ports:
- "8081:8080" # UI web
volumes:
- bbs-data:/data
- bbs-config:/config
- /var/run/docker.sock:/var/run/docker.sock:ro # optionnel, pour agents
environment:
- TZ=Europe/Paris
- BBS_SECRET_KEY=*** labels:
- "traefik.enable=true"
- "traefik.http.routers.bbs.rule=Host(`bbs.example.com`)"
- "traefik.http.routers.bbs.entrypoints=websecure"
- "traefik.http.routers.bbs.tls.certresolver=letsencrypt"
volumes:
bbs-data:
bbs-config:
ℹ️ Les clients BBS s'installent séparément sur chaque endpoint à sauvegarder (binaire Python ou conteneur side-car). Ils dialoguent avec le serveur via HTTPS.
Configuration
- Démarrer le serveur :
docker compose up -d, puishttps://bbs.example.com. - Créer le compte admin et configurer le SSH host key (BBS utilise SSH/SFTP pour parler aux clients Borg).
- Ajouter un client (Clients > Add) : hostname, IP/hostname de l'endpoint, clé SSH publique à pré-installer sur l'endpoint.
- Créer un repository Borg (Repositories > New) : choisir le mode (local sur BBS, SFTP vers un NAS tiers, Rclone vers S3/B2), saisir la passphrase.
- Créer un job (Jobs > New) : lier client + repository + sources (chemins à sauvegarder) + exclusions + schedule (cron).
- Installer l'agent sur l'endpoint, vérifier qu'il apparaît « Online » dans le dashboard, lancer un premier backup de test, et tester une restauration depuis l'UI.
Alternatives
Open Source
- [[app-borg]] — Borg seul, sans orchestration (mono-machine).
- [[app-borg-ui]] — UI web mono-machine (Borg UI), pas d'orchestration multi-clients.
- [[app-restic]] + [[app-backrest]] — Backrest offre une UI web d'orchestration multi-repos, philosophie très proche.
- [[app-pluton]] — concurrent direct, plus de fonctionnalités (multi-destinations, GFS, etc.), mais plus jeune.
- BorgWarehouse — autre UI web pour Borg, plus simple.
- PlexGuide / PGBlitz — stack complète qui inclut du backup Borg orchestré.
Comparaison Borg Backup Server vs autres
| Critère | Borg Backup Server | Borg UI | Backrest (restic) | Pluton |
|---|---|---|---|---|
| Multi-clients | ✅ (natif) | ❌ | ⚠️ (multi-repos) | ✅ (natif) |
| UI web | ✅ | ✅ | ✅ | ✅ |
| Base technique | Borg | Borg | Restic | Custom |
| Chiffrement E2E | ✅ (Borg) | ✅ | ✅ | ✅ |
| Rétention | Borg prune | Borg prune | Restic forget | GFS custom |
| Notifications | Email/webhook | Limité | ✅ | ✅ |
| Maturité | Moyen | Stable | Stable | Jeune |
Verdict : Borg Backup Server est le bon choix si vous êtes un utilisateur convaincu de [[app-borg]] et que vous voulez piloter plusieurs endpoints depuis une seule UI. Si vous repartez de zéro, [[app-restic]] + [[app-backrest]] est plus jeune mais plus activement développé.
Propriétaires
- BorgBase (cloud commercial) — utilise Borg en backend, UI web fournie, pas self-hosted.
- Veeam / Acronis — propriétaires, hors scope.
- CrashPlan for Small Business — abandonné pour les particuliers.
Sécurité
- Règle 3-2-1 : BBS orchestre les backups mais ne décide pas des destinations. Configurez au moins 2 destinations (par ex. : NAS local + S3 B2) pour appliquer la règle — voir [[strategie-backup-321]].
- Chiffrement : tout repose sur le chiffrement natif de [[app-borg]] (AES-256-CTR, AES-256-GCM en 1.3+). Les passphrases doivent être uniques par repository et stockées dans un gestionnaire (Bitwarden / Vaultwarden).
- Clé hors-ligne : exportez la clé de chiffrement Borg (fichier
key) sur une clé USB chiffrée LUKS stockée dans un coffre — sans elle, aucun snapshot n'est déchiffrable. Voir [[securisation-home-lab]]. - SSH : utilisez des clés SSH ed25519 dédiées par client, pas de mot de passe. Rotate les clés annuellement.
- Test de restauration : BBS permet de restaurer depuis l'UI — testez au moins un fichier critique par client par trimestre.

