---
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 <snapshot-id> /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
