--- title: Duplicati created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, backups, deduplication, encryption, cloud, s3, b2, sftp, webdav, duplicati, snapshot, incremental, versionning, docker, csharp, lgpl] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Backups, https://github.com/duplicati/duplicati] --- # 💾 Duplicati > **Le backup « grand public » self-hosted** : une interface web simple, un wizard de configuration, plus de 20 backends supportés, et un chiffrement AES-256 natif. Idéal pour un utilisateur qui veut *juste* que ça marche. ## 📋 Informations Générales | Champ | Valeur | | :--- | :--- | | **Site web** | [duplicati.com](https://www.duplicati.com) | | **GitHub** | [duplicati/duplicati](https://github.com/duplicati/duplicati) | | **License** | LGPL-2.1 | | **Langage** | C# (Mono / .NET) | | **Étoiles GitHub** | 14,6k ⭐ | | **Dernière MAJ** | 2026-06-05 | | **Catégorie** | [[cat-backups|Backups]] | ## 📝 Description **Duplicati** est un client de sauvegarde **multi-plateforme** (Windows, Linux, macOS) avec une **interface web intégrée**. Sa philosophie est radicalement opposée à celle de [[app-restic]] : là où restic est un outil CLI pur pensé pour des sysadmins, Duplicati vise explicitement **l'utilisateur domestique ou la PME** qui veut programmer des sauvegardes chiffrées vers le cloud **sans toucher au terminal**. Le moteur de Duplicati implémente la déduplication **par bloc** (taille variable, par défaut 100 KB) couplée à un **chiffrement AES-256** côté client. Chaque sauvegarde est découpée en volumes (`dlist`, `dblock`, `dindex`) qui sont envoyés au backend, ce qui permet d'avoir des **incréments légers** : après le premier full, un ajout de quelques fichiers ne transfère que les nouveaux blocs. Le format de fichier est **spécifique à Duplicati** (ce n'est pas un format ouvert comme restic ou Kopia), ce qui signifie qu'on ne peut restaurer qu'avec Duplicati lui-même. Le point fort historique de Duplicati, c'est **l'extraordinaire variété de backends** supportés : `S3`, `B2`, `Google Cloud Storage`, `Azure Blob`, `WebDAV`, `SFTP`, `SSH`, `FTP`, `OpenStack Object Storage / Swift`, `Rackspace Cloudfiles`, `OneDrive`, `Google Drive`, `Dropbox`, `Hubic`, `Box.com`, `Amazon Cloud Drive`, `S3-compatible` (Wasabi, MinIO, Scaleway, OVH…), et même `file://` pour un disque local. C'est l'un des rares outils où l'on peut changer de provider cloud **sans réécrire sa config**. L'UI web, servie par défaut sur le port `8200`, propose un **wizard de configuration en 5 étapes** : on donne un nom, on choisit le backend, on saisit les credentials, on sélectionne les fichiers source, on fixe la planification, et c'est parti. C'est exactement la cible que vise Duplicati : **« backup en 5 minutes pour quelqu'un qui ne connaît rien à Linux »**. Le revers de la médaille : Duplicati est écrit en **C# et tourne sur Mono** (anciennement) puis sur **.NET** (depuis la v2). Il a souffert pendant plusieurs années d'un **ralentissement de la cadence de release** et d'une équipe principale en sous-effectif. La v2 stable a longtemps tardé, et l'écosystème est moins dynamique que celui de [[app-restic]] ou [[app-kopia]]. Le projet reste **fonctionnel et maintenu**, mais il est raisonnable de le considérer comme **en perte de vitesse** par rapport à des alternatives plus modernes. Comparé à ses principaux rivaux : - **vs [[app-restic]]** : restic est un outil CLI plus minimaliste, avec un format ouvert, plus rapide, plus léger (un seul binaire Go). Duplicati gagne sur l'UI web prête à l'emploi et la variété de backends. - **vs [[app-kopia]]** : Kopia est plus jeune, propose une UI **desktop** (pas web), un format de repo plus moderne, et une cadence de release plus soutenue. C'est aujourd'hui le principal challenger dans la même catégorie. - **vs [[app-duplicacy|Duplicacy]]** : Duplicacy mise sur une **déduplication globale multi-utilisateur** (lock-free) qui permet de mutualiser un backend entre plusieurs clients ; Duplicati est mono-tenant. **Public cible** : **débutant à intermédiaire**. Parfait pour un homelab qui veut une UI web sans se battre avec un cron et un binaire CLI. ## 🚀 Installation ### Option 1 : Docker Compose (recommandé) ```yaml # docker-compose.yml version: '3.8' services: duplicati: image: lscr.io/linuxserver/duplicati:latest container_name: duplicati restart: unless-stopped environment: - PUID=1000 - PGID=1000 - TZ=Europe/Paris - CLI_ARGS= volumes: - duplicati-config:/config - /mnt/data:/source/data:ro - /mnt/backups-local:/backups labels: - "traefik.enable=true" - "traefik.http.routers.duplicati.rule=Host(`duplicati.example.com`)" - "traefik.http.routers.duplicati.entrypoints=websecure" - "traefik.http.routers.duplicati.tls.certresolver=letsencrypt" volumes: duplicati-config: ``` > **Note** : l'image `linuxserver/duplicati` est recommandée car elle inclut Mono et toutes les dépendances système correctement configurées, là où l'image officielle `duplicati/duplicati` reste plus austère. ### Option 2 : Natif (Windows / Linux / macOS) ```bash # Linux : .deb / .rpm disponibles sur duplicati.com wget https://updates.duplicati.com/beta/duplicati_2.0.8.1-1_all.deb sudo dpkg -i duplicati_2.0.8.1-1_all.deb # Ou en mode headless mono Duplicati.CommandLine.exe backup "sftp://user@host//path?auth-username=user&auth-password=pass" \ /source/path --encryption-password="change-me" # macOS / Windows : installer graphique depuis le site officiel ``` ## ⚙️ Configuration Initiale 1. **Accéder à l'UI web** sur `https://duplicati.example.com` (ou `http://IP:8200`). 2. **Configurer un premier backup** via le wizard : - *General* : nom du backup, encryption passphrase (AES-256). - *Destination* : choix du backend (S3, B2, SFTP, local…) + credentials. - *Source data* : sélection du dossier à sauvegarder (avec ou sans filtres d'exclusion). - *Schedule* : planification (manuel, daily, weekly, custom cron). 3. **Choisir la politique de rétention** : combien de versions garder, supprimer automatiquement les sauvegardes de plus de X jours/semaines/mois. 4. **Tester un premier run** : bouton *Run now* et inspecter les logs (`Show log → Verbose`). Vérifier la taille transférée (au moins aussi grosse qu'attendu pour le premier, puis faible pour les incréments). 5. **Activer les notifications** : onglet *Settings → Notifications* → e-mail, Sentry, ou webhook générique. 6. **Tester une restauration** : onglet *Restore*, choisir une sauvegarde, sélectionner un sous-ensemble, et restaurer dans un dossier temporaire. Indispensable : un backup non testé n'est **pas** un backup. ## 🔄 Alternatives ### Open Source - [[app-restic]] — Standard CLI, format ouvert, plus rapide, plus moderne. - [[app-kopia]] — UI desktop + CLI, snapshot policies riches, format propriétaire moderne. - [[app-backrest]] — UI web *au-dessus* de restic, l'alternative moderne à Duplicati pour qui aime les UIs. - [[app-borg]] — Pour les backups locaux rapides, format fermé mais éprouvé. - **Bacula** — La référence entreprise, mais complexité bien supérieure (catalogue, directeur, storage daemon…). ### Comparaison des outils à UI web / desktop | Critère | Duplicati | [[app-kopia]] | [[app-backrest]] | [[app-duplicacy]] | | :--- | :--- | :--- | :--- | :--- | | Interface | Web | Desktop (Win/macOS/Linux) | Web | CLI + GUI (payant) | | Multi-plateforme | ✅ | ✅ | ✅ | ✅ | | UI web self-hosted | ✅ | ❌ (desktop) | ✅ | ❌ | | Licence | LGPL-2.1 | Apache-2.0 | MIT | Custom (propriétaire) | | Cadence de release | Lente (en perte de vitesse) | Active | Active | Commercial | | Backends | 20+ | 8+ | Repos restic natifs | 10+ | | Format de repo | Spécifique Duplicati | Kopia (propriétaire) | = restic (ouvert) | Duplicacy (propriétaire) | **Verdict** : Duplicati reste un **excellent choix si on veut une UI web prête à l'emploi** et qu'on ne veut pas apprendre la CLI. Pour un homelab neuf en 2026, on lui préférera souvent [[app-kopia]] (plus moderne, UI desktop) ou [[app-backrest]] (UI web *au-dessus* de restic, plus rapide). ### Propriétaires (ce que Duplicati remplace) - **CrashPlan for Small Business** — Backup cloud illimité, ~10 $/mois/poste. E2E, mais fermé. - **Backblaze Personal** — 7 $/mois/poste, illimité, mais pas self-hosted. - **Carbonite Safe** — Backup cloud grand public, fermé. - **iDrive** — 60 $/an pour 5 To, multi-poste, mais chiffré côté serveur par défaut. - **Acronis True Image** — Référence, mais licence fermée et chère. ### Backends de stockage | Service | Coût (~$ / To / mois) | Egress | Idéal pour | | :--- | :--- | :--- | :--- | | **Backblaze B2** | 6 $ | 10 $ / To | Homelab, illimité en egress raisonnable | | **Wasabi** | 7 $ | 0 $ | Lecture fréquente, EU | | **Scaleway Object Storage** | 7,5 $ | 0,01 € / Go | EU, souverain | | **OVH Object Storage** | 7,2 € | trafic sortant | EU | | **Hetzner Storage Box** | ~3,5 € / To / mois (forfait) | 0 | EU, SMB | | **MinIO** (self-hosted) | Coût serveur | 0 $ | 100% on-prem | ## 🔐 Sécurité - **Chiffrement AES-256 natif** : activé par défaut dans le wizard, protège chaque bloc avant envoi. Le mot de passe de chiffrement doit être stocké **séparément** (gestionnaire de mots de passe, KeePassXC, vault papier). - **Règle 3-2-1** : Duplicati ne fait pas la politique à votre place — c'est à l'utilisateur de prévoir **2 supports différents minimum** (ex. : B2 + disque USB local) et **1 copie offsite** (cloud ou autre site physique). - **Test de restauration régulier** : restaurer **manuellement** au moins un fichier arbitraire tous les 30 jours. Les backups non testés ne sont **pas** des backups. Penser aussi à tester la restauration sur une **machine neuve** (pas celle de production) pour valider que le moteur Duplicati + Mono + .NET est bien autoportant. - **Rançongiciels** : un Duplicati qui tourne en root sur le serveur de prod est une **cible de choix** pour chiffrer *et* les données *et* les backups. Idéalement : - Sur un serveur **dédié** aux backups, isolé du LAN principal (VLAN backups). - Avec les credentials S3 stockés dans un secret (Vault, Bitwarden) et non en clair dans l'UI. - Avec un **air-gap** : déconnecter le backend B2/S3 entre deux fenêtres de backup (ou utiliser un compte B2 avec MFA + IP allowlist). - **Vérification d'intégrité** : activer l'option `no-backend-verification=true` **non**, et activer `backup-test-samples=5` pour que Duplicati télécharge et vérifie aléatoirement des blocs après chaque run. ## 📚 Ressources - [Site officiel duplicati.com](https://www.duplicati.com) - [Documentation utilisateur](https://duplicati.readthedocs.io/) - [GitHub duplicati/duplicati](https://github.com/duplicati/duplicati) - [Forum officiel](https://forum.duplicati.com/) - [Wiki technique](https://github.com/duplicati/duplicati/wiki) ## Pages Liées - [[cat-backups]] — Catégorie Backups - [[strategie-backup-321]] — La règle 3-2-1 expliquée - [[app-restic]] — Concurrent CLI, format ouvert - [[app-kopia]] — Concurrent moderne, UI desktop - [[app-backrest]] — UI web moderne au-dessus de restic - [[app-duplicacy]] — Concurrent propriétaire avec dédup globale - [[app-borg]] — Concurrent pour backups locaux rapides - [[app-portainer]] — Visualiser les conteneurs - [[app-traefik]] — Reverse-proxy HTTPS - [[securisation-home-lab]] — Bonnes pratiques de sécurité - [[glossaire-homelab]] — Définitions