13 KiB
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 |
| GitHub | kopia/kopia |
| License | Apache-2.0 |
| Langage | Go |
| Étoiles GitHub | 13,4k ⭐ |
| Dernière MAJ | 2026-06-06 |
| Catégorie | [[cat-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
Dockerfilemaison) 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 :
# 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)
# 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
# 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 <snapshot-id> /tmp/restore
⚙️ Configuration Initiale
- Installer l'UI desktop depuis kopia.io/download (Windows / macOS / Linux) ou utiliser la CLI.
- Connecter un repository : bouton New Repository → choisir le backend (S3, B2, SFTP, local…) → saisir credentials. Kopia chiffrera côté client avant l'upload.
- 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.
- Créer une snapshot policy globale : Preferences → Policies → configurer
keep-daily=7,keep-weekly=4,keep-monthly=6,keep-annual=3, etcompression=zstd(ougzipsi les CPU sont limités). - 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.). - 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).
- Backup local sur un disque USB ou un NAS (snapshot Kopia vers
- 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=5lit 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
sftpetlocal— 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
- Documentation complète
- GitHub kopia/kopia
- Forum communautaire
- Releases et changelogs
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