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

8.4 KiB
Raw Blame History


title: Borg UI created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, backups, borg, ui, typescript, nodejs, react, monitoring] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Backups, https://github.com/karanhudia/borg-ui]

💾 Borg UI

L'interface web moderne pour Borg Backup : gestion centralisée de repos distants, cron jobs, monitoring, alertes Telegram/Discord. Pour qui aime la puissance de app-borg mais déteste la ligne de commande.

💡 Borg UI ne remplace pas Borg : c'est une surcouche web qui pilote Borg en arrière-plan. Vous avez toujours besoin de Borg installé sur l'hôte (la couche de sauvegarde reste inchangée).

📋 Informations Générales

Champ Valeur
Site web (GitHub)
GitHub karanhudia/borg-ui
License MIT
Langage TypeScript (Node.js + React)
Étoiles GitHub 1 495
Dernière MAJ 2026-06-06
Catégorie [[cat-backups

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

  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ère Borg UI app-kopia Restic + RestiWeb BorgBase
License MIT Apache-2.0 BSD-2 (UI tierces) Propriétaire
Backend S3, SFTP, local S3, SFTP, B2, local Très large S3 + leur infra
Multi-repos UI claire UI claire ⚠️ DIY N/A
Cron intégré (cron système)
Alertes TG/Discord/Webhook Email/Webhook DIY Email
Hébergement Self Self Self Cloud
Maturité Jeune (2023+) Mature Variable Très mature
Prix Gratuit Gratuit Gratuit Freemium

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

Pages Liées