Retour aux outils
SauvegardesIntermédiaireOpen sourceAuto-hébergeable

Borg UI

**L'interface web moderne pour Borg Backup** : gestion centralisée de repos distants, cron jobs, mon

MAJ 2026-06-14
Borg UI
Site officiel Code source

Borg UI (par [karanhudia](https://github.com/karanhudia/borg-ui)) est une interface web moderne pour piloter [[app-borg]] sans toucher au terminal. L'idée est simple : laisser les administrateurs sys configurer leurs archives, cron jobs, hook scripts et alertes via une UI claire, et laisser les util

Description

Borg UI (par karanhudia) est une interface web moderne pour piloter [[app-borg]] sans toucher au terminal. L'idée est simple : laisser les administrateurs sys configurer leurs archives, cron jobs, hook scripts et alertes via une UI claire, et laisser les utilisateurs moins techniques lancer un backup, browse, ou restaurer un fichier en quelques clics.

L'application supporte plusieurs backends de stockage — S3, SFTP, disque local — et permet de gérer plusieurs repos Borg depuis un seul dashboard. Un système de monitoring intégré remonte les statuts de chaque job, et des alertes Telegram/Discord notifient en cas d'échec. On évite ainsi le piège classique : « mon backup s'arrête depuis 3 mois, je ne m'en rends compte qu'au moment où j'en ai besoin ».

Le projet est jeune mais bien plus moderne que l'interface officielle (qui n'existe pas) ou que [[app-kopia]] (qui pourtant inclut sa propre UI). Idéal pour les labs familiaux, freelances, ou petites équipes qui veulent industrialiser leurs sauvegardes Borg sans se battre avec des scripts bash.

  • ✅ MIT : 100 % open source
  • ✅ UI moderne : React + Tailwind, agréable à utiliser
  • ✅ Multi-repos : gérer tous vos repos Borg depuis une seule instance
  • ✅ Backends S3, SFTP, local
  • ✅ Cron jobs intégrés (plus besoin de crontab)
  • ✅ Alertes Telegram / Discord / Webhook
  • ✅ Browse & restore par archive / fichier
  • ✅ Hook pre/post-backup (ex : snapshot BTRFS, notifier FinTS)
  • ✅ Auth multi-utilisateurs
  • ⚠️ Borg doit être installé sur l'hôte (dépendance externe)
  • ⚠️ Projet jeune : moins battle-tested que [[app-restic]] + RestiWeb
  • ⚠️ Mono-hôte : ne pilote pas plusieurs machines distantes simultanément

Installation

Docker Compose (recommandé) avec Traefik

# docker-compose.yml
version: '3.8'
services:
  borg-ui:
    image: harbor.karanhudia.com/library/borg-ui:latest
    container_name: borg-ui
    restart: unless-stopped
    ports:
      - "8081:8081"  # Web UI
    volumes:
      - borg-ui-data:/home/borg/.config/borg
      - borg-repos:/repos        # Stockage des archives Borg
      - borg-ssh:/home/borg/.ssh  # Clés SSH pour SFTP
    environment:
      - BORG_UI_PORT=8081
      - TZ=Europe/Paris
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.borgui.rule=Host(`backup.example.com`)"
      - "traefik.http.routers.borgui.entrypoints=websecure"
      - "traefik.http.routers.borgui.tls.certresolver=letsencrypt"
      - "traefik.http.services.borgui.loadbalancer.server.port=8081"

volumes:
  borg-ui-data:
  borg-repos:
  borg-ssh:

⚠️ Important : Borg UI s'exécute souvent dans un conteneur, mais le client Borg doit pouvoir atteindre ses backends. Pour un dépôt local, montez le même volume. Pour S3 ou SFTP distant, configurez les credentials dans l'UI.

Installation bare-metal (Node.js)

git clone https://github.com/karanhudia/borg-ui.git
cd borg-ui
npm install
npm run build
npm start

Borg (≥ 1.2) doit être installé sur l'hôte (apt install borgbackup ou brew install borgbackup).

Configuration

  1. Accéder à l'UI : http://IP:8081 puis créer le compte administrateur au premier lancement.
  2. Ajouter un repository : Settings > Repositories > New :
    • Choisir le type : Local path / S3 / SFTP
    • Définir le chemin du repo (/repos/mon-serveur)
    • Définir la passphrase (stockée chiffrée côté serveur).
  3. Créer un premier job : Jobs > New :
    • Repository ciblé
    • Paths à sauvegarder (/etc, /home, /var/lib, ...)
    • Exclusions (--exclude patterns)
    • Planification cron (ex : 0 3 * * *)
  4. Configurer les alertes : Settings > Notifications → ajouter un webhook Telegram ou Discord.
  5. Tester un backup : bouton Run now depuis l'écran du job, vérifier dans Jobs > History que l'archive apparaît.
  6. Restaurer : Browse > [archive] > [fichier] > Restore — choisir l'emplacement de destination (local ou download).

Alternatives

Open Source

  • [[app-kopia]] — UI intégrée native, FOSS, plus mature
  • [[app-restic]] + Restic Web UI (k8up, resticprofile) — plus DIY
  • [[app-borg]] + Borg Web — Plusieurs UIs tierces (kde-breeze, etc.)
  • [[app-duplicacy]] — GUI payante officielle
  • Pika Backup — GNOME, simple, Linux
  • Vorta — Client macOS natif pour Borg
  • Pychter — TUI Python pour Borg

Propriétaires (SaaS)

  • BorgBase (€5/mois) — Hébergement Borg clé en main
  • Hetzner Storage Box — Backend SFTP compatible Borg
  • Arq Backup — macOS/Windows, GUI native payante
  • Duplicacy GUI (€50) — Voir [[app-duplicacy]]

Comparaison Borg UI vs alternatives

CritèreBorg UI[[app-kopia]]Restic + RestiWebBorgBase
LicenseMITApache-2.0BSD-2 (UI tierces)Propriétaire
BackendS3, SFTP, localS3, SFTP, B2, localTrès largeS3 + leur infra
Multi-repos✅ UI claire✅ UI claire⚠️ DIYN/A
Cron intégré✅✅❌ (cron système)✅
AlertesTG/Discord/WebhookEmail/WebhookDIYEmail
HébergementSelfSelfSelfCloud
MaturitéJeune (2023+)MatureVariableTrès mature
PrixGratuitGratuitGratuitFreemium

Verdict : Borg UI est la meilleure option si vous utilisez déjà [[app-borg]] et voulez une UI propre, moderne, avec alertes. Pour une stack 100 % clé en main, [[app-kopia]] est une alternative FOSS plus endurante. Pour zéro opération, BorgBase est imbattable.

Sécurité

  • Règle 3-2-1 : configurez au moins 2 backends dans Borg UI (ex : local + S3) pour respecter la copie hors-site.
  • Chiffrement : Borg chiffre nativement les archives (AES-256 + HMAC). La passphrase doit être stockée hors-ligne (gestionnaire type KeePass, Bitwarden, ou Yubikey) — sa perte rend les archives irrécupérables.
  • HTTPS obligatoire : exposez Borg UI derrière [[app-traefik]] avec un certificat valide. Sans HTTPS, la passphrase transiterait en clair sur le réseau.
  • 2FA : activez le 2FA pour le compte admin de Borg UI (Settings > Account > 2FA).
  • Test de restauration : simulez une restauration complète sur une VM jetable au moins 1×/trimestre.
  • Clé hors-ligne : exportez la base ~/.config/borg + passphrases sur une clé USB chiffrée stockée en coffre.
  • Audit : surveillez les logs Borg UI pour détecter les restaurations anormales (volume, fichiers sensibles).
  • Rotation : la rotation des clés SSH et des tokens S3 doit se faire annuellement.

Ressources