---
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](https://github.com/karanhudia/borg-ui) |
| **License** | MIT |
| **Langage** | TypeScript (Node.js + React) |
| **Étoiles GitHub** | 1 495 ⭐ |
| **Dernière MAJ** | 2026-06-06 |
| **Catégorie** | [[cat-backups|Backups]] |

## 📝 Description

**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 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

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

```bash
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

- [GitHub karanhudia/borg-ui](https://github.com/karanhudia/borg-ui)
- [Documentation officielle](https://github.com/karanhudia/borg-ui/wiki)
- [Borg Backup upstream](https://borgbackup.readthedocs.io/)
- [Demo (Docker Hub)](https://hub.docker.com/r/karanhudia/borg-ui)

## Pages Liées
- [[cat-backups]] — Catégorie Backups
- [[strategie-backup-321]] — Méthode 3-2-1
- [[app-restic]] — Alternative FOSS cloud-first
- [[app-borg]] — Le moteur de sauvegarde sous-jacent
- [[app-kopia]] — Concurrent FOSS avec UI intégrée
- [[securisation-home-lab]] — Bonnes pratiques sécurité
