Files
wiki/Catalogue-Self-Hosted/apps/app-borg-backup-server.md
2026-06-09 18:40:21 +02:00

7.1 KiB
Raw Permalink Blame History


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
License MIT
Langage Python
Étoiles GitHub 209
Dernière MAJ 2026-06-07
Catégorie [[cat-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

# 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

Pages Liées