--- title: Kopia created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, backups, deduplication, encryption, cloud, s3, b2, sftp, webdav, kopia, snapshot, incremental, versionning, ui, desktop, docker, go] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Backups, https://github.com/kopia/kopia] --- # 💾 Kopia > **Le challenger moderne dans l'arène des backup tools** : un binaire Go, une **UI desktop** élégante, des **snapshot policies** puissantes, et un support multi-cloud natif qui fait regretter à beaucoup d'avoir découvert Borg en premier. ## 📋 Informations Générales | Champ | Valeur | | :--- | :--- | | **Site web** | [kopia.io](https://kopia.io) | | **GitHub** | [kopia/kopia](https://github.com/kopia/kopia) | | **License** | Apache-2.0 | | **Langage** | Go | | **Étoiles GitHub** | 13,4k ⭐ | | **Dernière MAJ** | 2026-06-06 | | **Catégorie** | [[cat-backups|Backups]] | ## 📝 Description **Kopia** est un outil de sauvegarde **multi-plateforme** (Windows, Linux, macOS, FreeBSD) qui combine un **moteur de déduplication et de chiffrement** à une **interface graphique desktop** élégante. Lancé en 2017, il est né avec l'ambition de **faire mieux que [[app-restic]] et [[app-borg]]** sur trois axes : la simplicité d'usage, le support multi-cloud, et la richesse des politiques de rétention. Le cœur de Kopia est un **format de repository propriétaire** mais bien documenté, qui combine : - une **déduplication par bloc** (Content-Defined Chunking, type CDC) à travers **toutes les snapshots du repo** (déduplication transversale multi-snapshot, comme restic et Borg), - un **chiffrement AES-256-GCM** par défaut, plus moderne que le CTR+Poly1305 de restic, - une **compression zstd ou gzip** *avant* chiffrement (utile sur des données textuelles, contrairement à restic qui refuse la compression pour des raisons de pureté cryptographique), - des **blobs packés** dans des fichiers de grande taille pour réduire le nombre d'objets S3 et donc les coûts d'API. Kopia se distingue surtout par son **écosystème de frontends** : c'est un des rares outils de backup qui a une **UI desktop officielle** (Electron, multi-plateforme) en plus de la CLI. L'UI permet de connecter un repository, de définir des **sources** (dossiers à sauvegarder), de créer des **snapshot policies** (rétention, planification), et de **restaurer** de manière granulaire (fichier, dossier, ou snapshot complète). Pour les homelabs, c'est un **game changer** par rapport à la pure CLI. Côté backends, Kopia supporte nativement un large panel : `local`, `sftp`, `webdav`, et tous les principaux **object stores** : `S3`, `Backblaze B2`, `Google Cloud Storage`, `Azure Blob`, `OpenStack Swift`, `Rackspace Cloudfiles`, `S3-compatible` (Wasabi, MinIO, Scaleway, OVH, etc.). Il n'a pas encore de backend SSH natif distinct du SFTP, mais le SFTP couvre les usages SSH. Le concept de **snapshot policy** est particulièrement agréable à utiliser : on définit une politique « garder 7 daily, 4 weekly, 6 monthly, 3 yearly » une seule fois, et Kopia l'applique à *toutes* les sources qui pointent vers cette policy. Pas besoin de configurer la rétention source par source. Comparé à ses principaux rivaux : - **vs [[app-restic]]** : Kopia a une **UI** (que restic n'a pas nativement), la **compression** (que restic refuse), des **policies** plus ergonomiques. Restic reste plus simple, plus minimal, et a un format de repo plus transparent. - **vs [[app-borg]]** : Kopia est plus lent sur de très gros volumes (Borg a un cache local imbattable), mais **multi-cloud natif**, contrairement à Borg qui n'a pas de backend S3. - **vs [[app-duplicati]]** : Kopia est **plus moderne**, **plus rapide** sur les incréments, **plus actif** côté release. Duplicati reste pertinent pour qui veut une **UI web self-hosted** (Kopia a une UI desktop, pas web — sauf à passer par [[app-backrest]] qui est web au-dessus de restic, pas Kopia). - **vs [[app-backrest]]** : Backrest est l'UI web pour restic ; si on veut une UI web + Kopia, il n'y a pas d'équivalent exact, mais Kopia Desktop + tunnel SSH = acceptable. **Public cible** : **intermédiaire**. Pour qui veut une UI moderne et du multi-cloud sans se battre avec la ligne de commande, Kopia est **probablement le meilleur choix en 2026** dans la catégorie backup self-hosted « moderne ». ## 🚀 Installation ### Option 1 : Docker Compose (UI Desktop via VNC — niche d'usage) Kopia n'a pas d'image Docker officielle « serveur », car son usage principal est la **CLI ou l'UI desktop** lancée par l'utilisateur. Le pattern courant est : - soit **lancer Kopia Desktop** sur le poste qui sauvegarde (cas d'usage typique), - soit **lancer Kopia dans un cron Docker** (un `Dockerfile` maison) qui pousse vers S3/B2. Pour les homelabs qui veulent automatiser depuis un serveur, voici un `docker-compose.yml` minimal qui **wrap Kopia dans un cron** : ```yaml # docker-compose.yml version: '3.8' services: kopia-server: build: context: . dockerfile_inline: | FROM golang:1.22-alpine RUN apk add --no-cache ca-certificates openssh-client curl bash RUN curl -L https://github.com/kopia/kopia/releases/download/v0.18.0/kopia-0.18.0-linux-x64.tar.gz \ | tar -xz -C /usr/local/bin kopia RUN adduser -D -u 1000 kopia USER kopia ENTRYPOINT ["kopia"] image: kopia/kopia:latest container_name: kopia-runner restart: unless-stopped environment: - KOPIA_PASSWORD=${KOPIA_PASSWORD} - KOPIA_REPOSITORY=${KOPIA_REPOSITORY} # ex: s3://kopia-bucket/repo - KOPIA_CACHE_DIR=/var/cache/kopia - TZ=Europe/Paris volumes: - /mnt/source:/source:ro - kopia-cache:/var/cache/kopia - kopia-config:/home/kopia/.config/kopia - /etc/localtime:/etc/localtime:ro # Aucun port exposé : tout passe par cron. L'UI reste sur le poste client. volumes: kopia-cache: kopia-config: ``` En pratique, **l'installation recommandée** reste le binaire natif ou l'UI desktop. ### Option 2 : Natif (toutes plateformes) ```bash # Linux (script d'install officiel) curl -sSLf https://get.kopia.io | sh # macOS brew install kopia # Windows (Chocolatey) choco install kopia # Snap (Linux) sudo snap install kopia # Vérification kopia --version ``` ### Premier pas en CLI ```bash # Connecter un repo S3 kopia repository create s3 --bucket=kopia-backups --prefix=homelab \ --access-key=... --secret-access-key=... # Connecter un repo B2 (plus économique) kopia repository create b2 --bucket=kopia-backups \ --key-id=... --key=... # Définir une politique kopia policy set --global --keep-latest=10 --keep-daily=7 \ --keep-weekly=4 --keep-monthly=6 --keep-annual=3 --compression=zstd # Snapshot d'un dossier kopia snapshot create /home /etc /var/data # Lister kopia snapshot list kopia repo status # Restaurer kopia restore /tmp/restore ``` ## ⚙️ Configuration Initiale 1. **Installer l'UI desktop** depuis [kopia.io/download](https://kopia.io/download/) (Windows / macOS / Linux) ou utiliser la CLI. 2. **Connecter un repository** : bouton *New Repository* → choisir le backend (S3, B2, SFTP, local…) → saisir credentials. Kopia chiffrera côté client avant l'upload. 3. **Définir le mot de passe du repository** : c'est la **clé maîtresse**. La stocker dans un gestionnaire de mots de passe (KeePassXC, Bitwarden). Sans elle, le repo est irrécupérable. 4. **Créer une snapshot policy globale** : *Preferences → Policies* → configurer `keep-daily=7`, `keep-weekly=4`, `keep-monthly=6`, `keep-annual=3`, et `compression=zstd` (ou `gzip` si les CPU sont limités). 5. **Ajouter des sources** : *Add source* → sélectionner un dossier → Kopia propose d'appliquer la policy globale. Répéter pour chaque source (répertoire home, `/etc`, base de données, etc.). 6. **Planifier l'exécution** : dans l'UI, onglet *Scheduling* → activer pour qu'il tourne toutes les X heures. Sous Linux, c'est Kopia qui s'auto-configure avec un timer systemd ; sur Windows, c'est une Task Scheduler entry. ## 🔄 Alternatives ### Open Source - [[app-restic]] — Plus minimaliste, format plus simple, pas d'UI native. - [[app-borg]] — Plus rapide, compression native, mais pas de S3 natif. - [[app-duplicati]] — UI web self-hosted, 20+ backends, mais en perte de vitesse. - [[app-backrest]] — UI web pour restic, le concurrent direct *UI web* de Kopia. - [[app-duplicacy]] — Concurrent propriétaire avec déduplication globale multi-utilisateur. ### Comparaison Kopia vs alternatives modernes | Critère | Kopia | [[app-restic]] | [[app-backrest]] | [[app-borg]] | | :--- | :--- | :--- | :--- | :--- | | UI | Desktop | ❌ | Web | ❌ (tiers : [[app-borg-ui]]) | | Compression | ✅ zstd, gzip | ❌ | = restic (non) | ✅ lz4, zstd, lzma | | Backends | 10+ | 10+ | = restic | SSH/SFTP, +rclone | | Snapshot policies | Très riches | Basique | Basique (délégué à restic) | Basique (cron + `borg prune`) | | Déduplication transversale | ✅ | ✅ | = restic | ✅ | | Format de repo | Spécifique | Spécifique simple | = restic | Spécifique | | Licence | Apache-2.0 | BSD-2-Clause | MIT | BSD-3-Clause | | Chiffrement | AES-256-GCM | AES-256-CTR+Poly1305 | = restic | AES-256-OCB+BLAKE2b | | Cadence de release | Très active | Active | Active | Mature | **Verdict** : Kopia est **le meilleur compromis « moderne, UI, multi-cloud »** en 2026. Pour un homelab neuf, c'est le choix par défaut si on veut éviter la CLI. ### Propriétaires (ce que Kopia remplace) - **Duplicati Cloud** — Pas de SaaS Duplicati, mais CrashPlan/B2 sont les équivalents commerciaux. - **Backblaze Personal** — Pas self-hosted, mais très simple, 7 $/mois/poste. - **iDrive** — Concurrent commercial, multi-poste, ~60 $/an pour 5 To. - **Acronis True Image** — Référence desktop, ~50 $/an/poste, fermé. - **MSP360 (CloudBerry)** — Outil commercial basé sur des backends S3 compatibles. - **Veeam Agent** — Pour les VMs, ~40 $/poste/an. ### Backends de stockage | Service | Coût (~$ / To / mois) | Egress | Idéal pour | | :--- | :--- | :--- | :--- | | **Backblaze B2** | 6 $ | 10 $ / To | Homelab standard | | **Wasabi** | 7 $ | 0 $ | Lecture fréquente, EU | | **Scaleway Object Storage** | 7,5 € | 0,01 € / Go | EU, souverain | | **OVH Object Storage** | 7,2 € | sortant | EU | | **Hetzner Storage Box** | ~3,5 € / To / mois | 0 | SMB EU | | **MinIO** (self-hosted) | Coût serveur | 0 $ | 100% on-prem | ## 🔐 Sécurité - **Chiffrement AES-256-GCM** : le repo est **chiffré côté client** avant tout upload. Le serveur de stockage (S3, B2, etc.) ne voit jamais de données en clair. La clé est dérivée du mot de passe du repository via PBKDF2/Argon2. - **Règle 3-2-1** : Kopia ne fait pas la politique — c'est à l'utilisateur. Setup classique : - Backup **local** sur un disque USB ou un NAS (snapshot Kopia vers `/mnt/backup-local`). - Backup **cloud** sur B2 ou Wasabi (snapshot Kopia vers S3-compatible). - Optionnel : rotation mensuelle d'un disque USB hors-ligne (air-gapped contre rançongiciels). - **Clé/mot de passe du repo** : c'est **LE** point critique. Sans lui, le repo est une poubelle chiffrée. À stocker dans un gestionnaire de mots de passe **indépendant** de la machine sauvegardée (ex. : Bitwarden, KeePassXC synchronisé via un autre canal). - **Test de restauration régulier** : restaurer **manuellement** un dossier aléatoire sur une machine vierge au moins tous les 30-90 jours. Les backups non testés ne sont **pas** des backups. - **Vérification d'intégrité** : `kopia repository validate --verify-percent=5` lit aléatoirement 5 % des blobs et vérifie qu'ils se déchiffrent et se désérialisent correctement. À programmer en cron mensuel. - **Air-gapped backup** : Kopia supporte `sftp` et `local` — on peut très bien avoir un script qui monte un disque USB chiffré (LUKS), fait un snapshot Kopia dessus, démonte, et range le disque dans un coffre. ## 📚 Ressources - [Site officiel kopia.io](https://kopia.io) - [Documentation complète](https://kopia.io/docs/) - [GitHub kopia/kopia](https://github.com/kopia/kopia) - [Forum communautaire](https://kopia.discourse.group/) - [Releases et changelogs](https://github.com/kopia/kopia/releases) ## Pages Liées - [[cat-backups]] — Catégorie Backups - [[strategie-backup-321]] — La règle 3-2-1 expliquée - [[app-restic]] — Concurrent direct, plus minimaliste - [[app-borg]] — Concurrent plus rapide, compression native - [[app-backrest]] — UI web au-dessus de restic - [[app-duplicati]] — Concurrent UI web self-hosted - [[app-portainer]] — Visualiser les conteneurs - [[app-traefik]] — Reverse-proxy HTTPS - [[securisation-home-lab]] — Bonnes pratiques de sécurité - [[glossaire-homelab]] — Définitions