BorgBackup vs Kopia: CLI Power vs Web UI
Two Philosophies for the Same Problem
BorgBackup and Kopia both deduplicate, encrypt, and compress your backups. The difference is how you interact with them. BorgBackup is a Unix-philosophy CLI tool — do one thing well, compose with scripts. Kopia ships a web UI, a desktop app, and speaks directly to S3, B2, Google Cloud, Azure, and SFTP without needing rclone or other glue.
Pick Kopia if you want a graphical interface, native cloud storage support, and a single binary that handles everything. Pick BorgBackup if you want battle-tested deduplication, SSH-based repos, and the flexibility to wrap it with Borgmatic or custom scripts.
Feature Comparison
| Feature | BorgBackup 1.4.3 | Kopia 0.19.0 |
|---|---|---|
| Deduplication | Variable-length chunking (content-defined) | Content-defined chunking |
| Encryption | AES-256-CTR + HMAC-SHA256 | AES-256-GCM or ChaCha20-Poly1305 |
| Compression | LZ4, ZSTD, ZLIB, LZMA | ZSTD, S2, pgzip, gzip |
| Web UI | None | Built-in (port 51515) |
| Desktop app | None | KopiaUI (Windows, macOS, Linux) |
| Cloud storage | Via rclone mount | Native S3, B2, GCS, Azure, SFTP |
| Local repos | Filesystem, SSH | Filesystem |
| Remote repos | SSH (borg serve) | Kopia Repository Server |
| Docker image | No official image | kopia/kopia:0.19.0 |
| Scheduling | External (cron, systemd) | Built-in policy-based scheduling |
| Retention policies | Manual borg prune or Borgmatic | Policy-based, per-directory |
| Restore granularity | File-level, mount as FUSE | File-level, mount as FUSE, web UI browse |
| Active development | Borg 2.0 in beta | Active (monthly releases) |
| License | BSD-3-Clause | Apache-2.0 |
Storage Backend Flexibility
This is where the tools diverge most. BorgBackup speaks SSH natively and expects a filesystem-like target. Want S3 or B2? You need rclone to mount cloud storage as a local path — doable, but adds complexity and a potential failure point.
Kopia talks to cloud providers directly:
# Kopia: connect directly to S3
kopia repository create s3 \
--bucket=my-backups \
--access-key=AKIAXXXXXXXX \
--secret-access-key=xxxxxxxx
# BorgBackup: needs rclone mount first
rclone mount b2:my-backups /mnt/b2-backup --daemon
borg init --encryption=repokey /mnt/b2-backup/borg-repo
If your backup destination is cloud storage, Kopia eliminates an entire layer of tooling.
User Experience
BorgBackup is strictly CLI. You learn the commands, write scripts or use Borgmatic, and check logs for status. There’s no dashboard showing backup health at a glance.
Kopia gives you options. The web UI shows repository status, snapshot history, estimated next backup time, and storage usage. You can browse snapshots and restore individual files through the browser. Or ignore the UI entirely and use kopia snapshot create from the CLI — it’s equally capable both ways.
For a self-hoster managing backups for 10+ services, Kopia’s dashboard is genuinely useful. For a single-server setup with good automation, BorgBackup’s CLI is sufficient.
Performance
Both tools are fast. BorgBackup’s Cython-optimized chunking engine is slightly faster for large file trees (millions of files). Kopia’s Go implementation is more consistent across platforms and handles concurrent operations better.
| Metric | BorgBackup | Kopia |
|---|---|---|
| Initial full backup (100 GB mixed files) | ~15-25 min | ~15-30 min |
| Incremental backup (1% changed) | ~30-90 sec | ~30-120 sec |
| Deduplication ratio (typical) | 3-10x | 3-10x |
| Memory during backup | 200-500 MB | 150-400 MB |
| CPU usage | Moderate (Cython) | Moderate (Go) |
| Concurrent snapshots | Not supported | Supported |
Real-world performance depends on your storage I/O more than the tool itself.
Maturity and Trust
BorgBackup has been around since 2015 (forked from Attic, 2010). It’s used by universities, research institutions, and has survived real data recovery scenarios thousands of times. The codebase is audited and well-understood.
Kopia is newer (2019) but has matured rapidly. It’s backed by a growing community and has its own repository format. The 0.x version number concerns some people, but it’s been stable in production for years.
If “proven in disaster recovery” matters most to you, BorgBackup has the longer track record. If “actively developed with modern features” matters more, Kopia is moving faster.
Docker Setup Comparison
Kopia has an official Docker image with the web UI:
services:
kopia:
image: kopia/kopia:0.19.0
restart: unless-stopped
ports:
- "51515:51515"
volumes:
- kopia-config:/app/config
- kopia-cache:/app/cache
- /path/to/backup-source:/data:ro
- /path/to/backup-repo:/repository
environment:
- KOPIA_PASSWORD=your-repo-password
command: server start --insecure --address=0.0.0.0:51515
volumes:
kopia-config:
kopia-cache:
BorgBackup doesn’t have an official Docker image. Most self-hosters use Borgmatic for containerized backups instead:
services:
borgmatic:
image: ghcr.io/borgmatic-collective/borgmatic:1.9.14
restart: unless-stopped
volumes:
- ./borgmatic/config.yaml:/etc/borgmatic/config.yaml:ro
- borg-cache:/root/.cache/borg
- /path/to/backup-source:/data:ro
- /path/to/backup-repo:/repository
environment:
- BORG_PASSPHRASE=your-repo-passphrase
volumes:
borg-cache:
FAQ
Can I migrate from BorgBackup to Kopia?
Not directly — different repository formats. You’d need to create a new Kopia repository and re-backup your data. Both support FUSE mounting, so you could mount the borg repo and back it up with Kopia.
Which uses less disk space?
Comparable. Both achieve similar deduplication ratios. Kopia’s default ZSTD compression may edge out BorgBackup’s default LZ4 in size, but LZ4 is faster.
Can I use Kopia with Borgmatic?
No. Borgmatic is specifically a BorgBackup wrapper. Kopia has its own policy engine and scheduling built in.
Which is better for backing up to a remote server?
BorgBackup via SSH is simpler — borg serve on the remote end, no additional software. Kopia requires a Kopia Repository Server on the remote end, which is more setup but supports multiple clients writing concurrently.
Final Verdict
Kopia is the better choice for most self-hosters starting fresh. The web UI, native cloud storage support, and built-in scheduling reduce the number of moving parts. You get a single tool instead of BorgBackup + Borgmatic + rclone + cron.
BorgBackup is the better choice if you already use it and it works, you need SSH-based remote repos (simpler than Kopia Repository Server), or you trust the longer track record for critical data.
Both tools will protect your data reliably. The choice comes down to whether you prefer a graphical dashboard or a CLI-first workflow.
Related
Get self-hosting tips in your inbox
New guides, comparisons, and setup tutorials — delivered weekly. No spam.