TL;DR — Quick Summary
Set up Kopia for fast, encrypted, deduplicated backups. Supports S3, B2, SFTP, local, and NAS destinations. Includes web UI, snapshot policies, retention, and comparison with Restic and BorgBackup.
What Is Kopia?
Kopia is a fast, open-source backup tool that provides encrypted, deduplicated, compressed snapshots of your files to any storage backend. It is the modern alternative to Restic and BorgBackup, with a built-in web UI and native snapshot policies.
Key features:
- Client-side encryption — AES-256-GCM, zero-knowledge
- Content-level deduplication — across all snapshots and machines
- Compression — zstd, gzip, s2 (default: zstd)
- Incremental snapshots — only changed data is uploaded
- Built-in web UI — manage backups from the browser
- Snapshot policies — retention, scheduling, ignore rules
- Server mode — centralized backup management for multiple machines
- 40+ storage backends — via native support and Rclone
Storage Backends
| Backend | Command | Best For |
|---|---|---|
| Local / NAS | kopia repo create filesystem --path /mnt/backup | Fast, simple |
| S3 / MinIO | kopia repo create s3 --bucket=name | Cloud, self-hosted S3 |
| Backblaze B2 | kopia repo create b2 --bucket=name | Cheap cloud ($0.005/GB) |
| SFTP | kopia repo create sftp --host=server | Remote server |
| Google Cloud | kopia repo create gcs --bucket=name | GCP users |
| Azure Blob | kopia repo create azure --container=name | Azure users |
| Rclone | kopia repo create rclone --remote-path=name:path | 40+ providers |
Quick Start
Install
# Ubuntu/Debian
curl -s https://kopia.io/signing-key | sudo gpg --dearmor -o /etc/apt/keyrings/kopia-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kopia-keyring.gpg] http://packages.kopia.io/apt/ stable main" | sudo tee /etc/apt/sources.list.d/kopia.list
sudo apt update && sudo apt install kopia
# macOS
brew install kopia
# Docker
docker pull kopia/kopia:latest
Create Repository & First Snapshot
# Create local repository
kopia repository create filesystem --path /backup/kopia
# Create first snapshot
kopia snapshot create /home/user/documents
# List snapshots
kopia snapshot list
# Restore a snapshot
kopia restore <snapshot-id> /tmp/restore/
Snapshot Policies
# Set retention policy
kopia policy set /home/user/documents \
--keep-latest 10 \
--keep-hourly 24 \
--keep-daily 30 \
--keep-weekly 8 \
--keep-monthly 12 \
--keep-annual 3
# Set automatic snapshot interval
kopia policy set /home/user/documents --snapshot-interval 4h
# Ignore patterns
kopia policy set /home/user --add-ignore "node_modules" --add-ignore ".cache"
Web UI
kopia server start --ui --address=0.0.0.0:51515
Access at http://localhost:51515 for visual management of repositories, snapshots, policies, and restoration.
Docker Compose (Server Mode)
services:
kopia:
image: kopia/kopia:latest
container_name: kopia
restart: always
ports:
- "51515:51515"
command: server start --ui --address=0.0.0.0:51515 --server-control-username=admin --server-control-password=changeme
volumes:
- /backup/kopia:/repository
- kopia-config:/app/config
- /home:/sources:ro
volumes:
kopia-config:
Kopia vs. Restic vs. BorgBackup
| Feature | Kopia | Restic | BorgBackup |
|---|---|---|---|
| Encryption | ✅ AES-256-GCM | ✅ AES-256 | ✅ AES-256 |
| Deduplication | ✅ Content-level | ✅ Content-level | ✅ Block-level |
| Compression | ✅ zstd, gzip, s2 | ❌ (v0.16+ only) | ✅ lz4, zstd, zlib |
| Web UI | ✅ Built-in | ❌ (3rd party) | ❌ (Borgmatic) |
| Snapshot policies | ✅ Built-in | ❌ (manual) | ❌ (Borgmatic) |
| Server mode | ✅ | ❌ | ✅ (append-only) |
| S3 support | ✅ | ✅ | ❌ (via Rclone) |
| Speed | Fast | Fast | Moderate |
| Maturity | Newer (2019) | Mature (2015) | Mature (2015) |
Summary
Kopia is the modern backup tool that combines Restic’s cloud flexibility with BorgBackup’s compression and adds a built-in web UI and snapshot policies. Its client-side encryption and content deduplication make it ideal for self-hosted backup infrastructure.