---
title: Borg Backup Server
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, backups, borg, orchestration, python, mit]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Backups, https://github.com/marcpope/borgbackupserver]
---

# 💾 Borg Backup Server

> **L'orchestrateur central pour Borg** : un serveur web qui gère à distance vos clients BorgBackup, crée les repos, planifie les jobs et surveille l'état de tous vos endpoints.

## 📋 Informations Générales

| Champ | Valeur |
| :--- | :--- |
| **Site web** | (GitHub) |
| **GitHub** | [marcpope/borgbackupserver](https://github.com/marcpope/borgbackupserver) |
| **License** | MIT |
| **Langage** | Python |
| **Étoiles GitHub** | 209 ⭐ |
| **Dernière MAJ** | 2026-06-07 |
| **Catégorie** | [[cat-backups|Backups]] |

## 📝 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

```yaml
# 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 Initiale

1. **Démarrer le serveur** : `docker compose up -d`, puis `https://bbs.example.com`.
2. **Créer le compte admin** et configurer le **SSH host key** (BBS utilise SSH/SFTP pour parler aux clients Borg).
3. **Ajouter un client** (Clients > Add) : hostname, IP/hostname de l'endpoint, clé SSH publique à pré-installer sur l'endpoint.
4. **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.
5. **Créer un job** (Jobs > New) : lier client + repository + sources (chemins à sauvegarder) + exclusions + schedule (cron).
6. **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**.

## 📚 Ressources

- [GitHub marcpope/borgbackupserver](https://github.com/marcpope/borgbackupserver)
- [Documentation](https://github.com/marcpope/borgbackupserver#readme)
- [BorgBackup (logiciel sous-jacent)](https://www.borgbackup.org/)

## Pages Liées
- [[cat-backups]] — Catégorie Backups
- [[strategie-backup-321]] — Règle 3-2-1
- [[app-restic]] — Alternative : Restic + Backrest
- [[app-borg]] — Le moteur Borg
- [[app-kopia]] — Backup avec UI
- [[app-portainer]] — Gestion conteneurs
- [[securisation-home-lab]] — Bonnes pratiques
