--- title: Zerobyte created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, backups, deduplication, encryption, cloud, s3, b2, sftp, restic, web-ui, agpl, typescript, docker] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Backups, https://github.com/nicotsx/zerobyte] --- # đŸ’Ÿ Zerobyte > **Une UI web moderne et lĂ©gĂšre pour orchestrer [[app-restic]]** : interface rĂ©active (Next.js), planification visuelle, support de multiples repos, et installation simplifiĂ©e. Le challenger direct de [[app-backrest]] avec une approche plus « app moderne ». ## 📋 Informations GĂ©nĂ©rales | Champ | Valeur | | :--- | :--- | | **Site web** | (GitHub) | | **GitHub** | [nicotsx/zerobyte](https://github.com/nicotsx/zerobyte) | | **License** | AGPL-3.0 | | **Langage** | TypeScript (Next.js, React) + Go (intĂ©gration restic) | | **Étoiles GitHub** | 6,5k ⭐ | | **DerniĂšre MAJ** | 2026-06-06 | | **CatĂ©gorie** | [[cat-backups|Backups]] | ## 📝 Description **Zerobyte** est un **orchestrateur web pour [[app-restic]]** : un peu comme [[app-backrest]], il fournit une **UI web self-hosted** pour gĂ©rer plusieurs repos restic, dĂ©finir des plans de backup, et dĂ©clencher des restorations. LĂ  oĂč Backrest est un projet « personnel » d'un dĂ©veloppeur solo (Gareth George), Zerobyte se veut une **plateforme plus complĂšte** avec une UI plus soignĂ©e (Next.js + Tailwind) et une architecture pensĂ©e pour un usage multi-utilisateurs. Fonctionnellement, Zerobyte permet : - de **connecter un ou plusieurs repos** restic (S3, B2, SFTP, local, etc.), - de dĂ©finir des **schedules** (planification cron-like) par source, - de dĂ©clencher des **backups Ă  la demande** depuis l'UI, - de **restaurer** des fichiers ou dossiers depuis n'importe quel snapshot, - de gĂ©rer des **utilisateurs** (multi-tenants lĂ©gers, authentification locale + support OIDC), - d'afficher les **logs**, l'historique, l'espace consommĂ©, et l'Ă©tat de chaque run. L'UI est plus moderne et plus rĂ©active que celle de Backrest (Next.js avec React server components), avec une navigation par sidebar, des modales pour les actions, et un thĂšme sombre par dĂ©faut. C'est l'un des points qui distingue Zerobyte : pour un usage « familial » ou un petit team, l'UX est plus agrĂ©able. CĂŽtĂ© technique, Zerobyte **embarque le binaire restic** (comme Backrest), donc : - **100 % compatible** avec n'importe quel repo restic existant, - mĂȘme **chiffrement AES-256-CTR + Poly1305** (cĂŽtĂ© restic), - mĂȘme support de **tous les backends** restic, - et **mĂȘme principe de repo file** que vous pouvez continuer Ă  manipuler en CLI en parallĂšle. La **licence AGPL-3.0** est un point Ă  noter : si vous voulez forker Zerobyte et le proposer en SaaS, l'AGPL vous y oblige (vs MIT pour Backrest). Pour un usage personnel / homelab, c'est sans incidence. Pour un produit commercial dĂ©rivĂ©, c'est un frein. ComparĂ© Ă  ses principaux rivaux : - **vs [[app-backrest]]** : Backrest est plus mature, plus actif, plus simple. Zerobyte est plus moderne cĂŽtĂ© UI, plus axĂ© multi-utilisateurs. Les deux couvrent 95 % le mĂȘme usage. - **vs [[app-kopia]]** : Kopia a sa propre UI desktop ; Zerobyte est web. Si vous tenez Ă  l'UI web, Zerobyte (ou Backrest) > Kopia. - **vs [[app-duplicati]]** : Duplicati a une UI web, mais un moteur diffĂ©rent (C# / .NET) en perte de vitesse, sans la maturitĂ© de restic en back-end. - **vs [[app-borg-ui]]** : Borg UI est l'Ă©quivalent pour Borg. **Public cible** : **intermĂ©diaire**. Pour qui veut une UI web moderne au-dessus de restic, Zerobyte est une alternative sĂ©rieuse Ă  Backrest. Le choix entre les deux se fait souvent sur des critĂšres esthĂ©tiques et de licence (MIT vs AGPL). ## 🚀 Installation ### Option 1 : Docker Compose (recommandĂ©) ```yaml # docker-compose.yml version: '3.8' services: zerobyte: image: nicolasgodineau/zerobyte:latest container_name: zerobyte restart: unless-stopped environment: - NODE_ENV=production - DATABASE_URL=file:/app/data/zerobyte.db - AUTH_SECRET=${AUTH_SECRET} # openssl rand -base64 32 - NEXT_PUBLIC_APP_NAME=Zerobyte - TZ=Europe/Paris volumes: - zerobyte-data:/app/data - /mnt/source:/source:ro # adapter au chemin Ă  sauvegarder labels: - "traefik.enable=true" - "traefik.http.routers.zerobyte.rule=Host(`zerobyte.example.com`)" - "traefik.http.routers.zerobyte.entrypoints=websecure" - "traefik.http.routers.zerobyte.tls.certresolver=letsencrypt" volumes: zerobyte-data: ``` > **Note** : il n'est **pas nĂ©cessaire** d'exposer le socket Docker dans Zerobyte, contrairement Ă  Backrest. Zerobyte n'exĂ©cute pas de hooks Docker par dĂ©faut ; il se contente de piloter restic. ### Option 2 : Bare-metal (Node.js + restic) ```bash # PrĂ©-requis : Node 20+, restic, sqlite3 curl -L https://github.com/nicotsx/zerobyte/releases/latest/download/zerobyte.tar.gz | tar -xz cd zerobyte npm ci --production AUTH_SECRET=$(openssl rand -base64 32) node server.js ``` L'installation bare-metal est plus complexe ; l'option Docker est **clairement recommandĂ©e** pour un homelab. ## ⚙ Configuration Initiale 1. **AccĂ©der Ă  l'UI** sur `https://zerobyte.example.com` (ou `http://IP:3000`). 2. **CrĂ©er un compte administrateur** lors du premier accĂšs (Zerobyte gĂšre nativement ses utilisateurs ; vous n'avez pas besoin d'un Authelia externe pour l'auth de base). 3. **Ajouter un repository** : *Repositories → Add* → choisir le backend (S3, B2, SFTP, Local
) → saisir l'URI, les credentials, le **mot de passe de chiffrement** du repo. Zerobyte le stocke dans sa base SQLite chiffrĂ©e. 4. **DĂ©finir un plan de backup** : *Plans → New* → sĂ©lectionner le repo + un ou plusieurs **chemins source** + une **planification cron**. Les politiques de rĂ©tention (keep-daily, keep-weekly, etc.) sont configurables. 5. **Premier run** : *Plans → Run Now* → suivre les logs. VĂ©rifier la taille transfĂ©rĂ©e et l'absence d'erreur. 6. **Tester une restauration** : onglet *Restore* → choisir une snapshot → sĂ©lectionner un fichier → restaurer. **Un backup non testĂ© n'est pas un backup.** ## 🔄 Alternatives ### Open Source - [[app-backrest]] — Le principal concurrent direct (MIT, plus mature). - [[app-restic]] — Le moteur pilotĂ© par Zerobyte. - [[app-kopia]] — Concurrent avec UI desktop intĂ©grĂ©e. - [[app-duplicati]] — Concurrent UI web, moteur diffĂ©rent et en perte de vitesse. - [[app-borg-ui]] — Équivalent pour l'Ă©cosystĂšme **Borg**. ### Comparaison Zerobyte vs concurrents directs | CritĂšre | Zerobyte | [[app-backrest]] | [[app-borg-ui]] | [[app-duplicati]] | | :--- | :--- | :--- | :--- | :--- | | Moteur | restic | restic | borg | Duplicati (C#) | | UI | Web (Next.js) | Web (React) | Web | Web (C#/Mono) | | Framework | Next.js | React | TypeScript | Mono | | Multi-utilisateurs | ✅ (intĂ©grĂ©) | ❌ (basicauth Ă  mettre devant) | ❌ | ❌ | | Auth intĂ©grĂ©e | ✅ | ❌ | ❌ | ✅ (basique) | | Hooks pre/post | ⚠ basique | ✅ (Docker exec) | ⚠ | ⚠ | | Prune policy | ✅ | ✅ (visuelle, plus riche) | ✅ | ✅ | | Licence | AGPL-3.0 | MIT | MIT | LGPL-2.1 | | Cadence de release | Active | TrĂšs active | Active | Lente | **Verdict** : Zerobyte est une **bonne alternative Ă  Backrest**, particuliĂšrement si on veut une UI plus moderne et une gestion d'utilisateurs intĂ©grĂ©e. Pour un homelab personnel mono-utilisateur, Backrest reste lĂ©gĂšrement plus mature et plus simple (MIT, plus de recul). Pour un team ou un usage multi-utilisateurs, Zerobyte a un avantage. ### PropriĂ©taires (ce que Zerobyte remplace) - **Veeam Backup & Replication** — Standard entreprise VM, hors budget homelab. - **Acronis Cyber Protect** — Commercial, fermĂ©, ~80 $/an/poste. - **MSP360 (CloudBerry)** — UI commerciale au-dessus de S3-compatibles. - **Bacula Enterprise** — La rĂ©fĂ©rence open source entreprise, mais bien plus complexe. - **Backblaze B2 + console web** — Suffisant pour de trĂšs petits usages, mais aucune orchestration. ## 🔐 SĂ©curitĂ© - **Chiffrement AES-256-CTR + Poly1305** (cĂŽtĂ© restic) : Zerobyte **ne chiffre rien lui-mĂȘme** — c'est restic qui chiffre le repo. La **clĂ© de chiffrement** du repo est stockĂ©e dans la base SQLite de Zerobyte, qui est elle-mĂȘme sur disque (chiffrez ce disque avec LUKS pour plus de sĂ©curitĂ©). - **Stockage des credentials** : Zerobyte stocke en base (chiffrĂ©e via la couche OS) les mots de passe de repos et les credentials cloud. Pour un attaquant qui aurait accĂšs Ă  la base, c'est Ă©quivalent Ă  un accĂšs root sur les repos. **Renforcez l'auth de l'UI** (mot de passe fort + 2FA si possible + IP allowlist). - **RĂšgle 3-2-1** : Zerobyte peut gĂ©rer **plusieurs plans vers plusieurs repos** (S3, B2, local, SFTP). Configurez au minimum : - Un plan **local** (disque USB ou NAS) pour la copie primaire. - Un plan **cloud** (B2 ou S3) pour la copie offsite. - Optionnel : un plan vers un **HDD USB rotatif mensuel** (air-gapped contre les rançongiciels). - **Test de restauration rĂ©gulier** : onglet *Restore* → restaurer un fichier au moins une fois par mois. **Les backups non testĂ©s ne sont pas des backups.** - **ClĂ© du repo** : copier le mot de passe de chiffrement de chaque repo dans un gestionnaire indĂ©pendant (Bitwarden, KeePassXC) ou l'imprimer sur papier dans un coffre. **Sans lui, le repo est irrĂ©cupĂ©rable.** - **Air-gapped backup** : un plan Zerobyte vers un disque USB montĂ© dans `/mnt/usb-backup` (bind mount dans le conteneur) est une 3e copie air-gapped excellente contre les rançongiciels. ## 📚 Ressources - [GitHub nicotsx/zerobyte](https://github.com/nicotsx/zerobyte) - [Wiki et guides](https://github.com/nicotsx/zerobyte/wiki) - [Releases](https://github.com/nicotsx/zerobyte/releases) - [DĂ©mo en ligne](https://demo.zerobyte.app/) (si disponible) ## Pages LiĂ©es - [[cat-backups]] — CatĂ©gorie Backups - [[strategie-backup-321]] — La rĂšgle 3-2-1 expliquĂ©e - [[app-restic]] — Le moteur pilotĂ© par Zerobyte - [[app-backrest]] — Concurrent direct, plus mature (MIT) - [[app-kopia]] — Concurrent avec UI desktop intĂ©grĂ©e - [[app-duplicati]] — Concurrent UI web, moteur diffĂ©rent - [[app-borg]] + [[app-borg-ui]] — Équivalent pour Borg - [[app-portainer]] — Visualiser les conteneurs - [[app-traefik]] — Reverse-proxy HTTPS - [[securisation-home-lab]] — Bonnes pratiques de sĂ©curitĂ© - [[glossaire-homelab]] — DĂ©finitions