Restic vs Kopia vs BorgBackup: Best Backup Tool?
Quick Verdict
Restic is the best choice for most people — broad cloud backend support, strong deduplication, and the largest community. BorgBackup wins if storage efficiency is your top priority (best-in-class compression). Kopia is the best pick if you want a web UI or need a centralized repository server.
Overview
All three are open-source, deduplicated, encrypted backup tools. They solve the same core problem — creating reliable, space-efficient backups — but differ in philosophy, features, and ecosystem.
| Aspect | Restic | Kopia | BorgBackup |
|---|---|---|---|
| Language | Go | Go | Python + C |
| First release | 2015 | 2019 | 2015 (forked from Attic) |
| License | BSD-2 | Apache-2.0 | BSD-3 |
| GitHub stars | 27,000+ | 8,500+ | 11,500+ |
| Approach | Cloud-first, multi-backend | Modern, UI-enabled | Compression-first, SSH-focused |
Feature Comparison
| Feature | Restic | Kopia | BorgBackup |
|---|---|---|---|
| Deduplication | Content-defined chunking | Content-defined chunking | Content-defined chunking |
| Compression | zstd (v0.16+) | zstd, gzip, s2 | zstd, lz4, zlib, lzma |
| Encryption | AES-256 in CTR mode + Poly1305 | AES-256-GCM or ChaCha20 | AES-256-CTR + HMAC-SHA256 |
| Web UI | No | Yes (built-in) | No |
| Repository server | Via rest-server (separate tool) | Built-in (kopia server) | Via borg serve |
| Cloud backends | S3, B2, Azure, GCS, SFTP, local, REST | S3, B2, Azure, GCS, SFTP, local, WebDAV | SFTP, local only (natively) |
| Rclone integration | Yes (40+ cloud providers) | No | Via rclone mount (workaround) |
| Snapshot browsing | restic mount (FUSE) | Web UI or kopia mount | borg mount (FUSE) |
| Parallel backup | Yes | Yes | No (single-threaded by default) |
| Pruning/retention | Time-based policies | Flexible policies | Time + count-based |
| Lock-free operations | No (uses locks) | Yes (optimistic concurrency) | No (uses locks) |
| Integrity verification | restic check | kopia snapshot verify | borg check |
| Docker image | Yes (official) | Yes (official) | Yes (community) |
Cloud Storage Support
This is the biggest differentiator. If you want to back up to cloud storage, Restic and Kopia pull far ahead.
| Backend | Restic | Kopia | BorgBackup |
|---|---|---|---|
| Local filesystem | Yes | Yes | Yes |
| SFTP/SSH | Yes | Yes | Yes |
| Amazon S3 | Yes | Yes | No |
| Backblaze B2 | Yes | Yes | No |
| Google Cloud Storage | Yes | Yes | No |
| Azure Blob | Yes | Yes | No |
| MinIO / S3-compatible | Yes | Yes | No |
| Wasabi | Yes | Yes | No |
| WebDAV | Via rclone | Yes | No |
| Rclone (40+ providers) | Yes | No | No (workaround) |
BorgBackup limitation: Borg only supports local and SSH-based repositories natively. Backing up to S3 or B2 requires mounting via rclone or using BorgBase (managed hosting). This is by design — Borg optimizes for direct repository access.
Performance Comparison
Performance depends heavily on data characteristics, but general patterns:
| Metric | Restic | Kopia | BorgBackup |
|---|---|---|---|
| Initial backup speed | Fast (parallel) | Fastest (parallel + modern chunking) | Medium (single-threaded) |
| Incremental backup speed | Fast | Fast | Fast |
| Deduplication ratio | Good (variable chunks) | Good (variable chunks) | Best (variable chunks + compression) |
| Storage efficiency | Good | Good | Best (superior compression options) |
| Memory usage | Moderate (100-500 MB) | Moderate (100-500 MB) | Higher (500 MB - 2 GB for large repos) |
| Repository overhead | ~1-3% | ~1-2% | ~1-2% |
Key insight: BorgBackup typically achieves 10-30% smaller repositories than Restic for the same data, thanks to its superior compression. Kopia falls between them, with zstd compression closing the gap against Borg.
Automation and Scheduling
| Feature | Restic | Kopia | BorgBackup |
|---|---|---|---|
| Built-in scheduler | No | Yes (via server mode) | No |
| Recommended scheduler | cron / systemd timer | Built-in or cron | Borgmatic (wrapper) |
| Docker scheduling | Via cron in container | Via server or cron | Via Borgmatic |
| Pre/post backup hooks | Via wrapper scripts | Built-in actions | Via Borgmatic |
| Email notifications | Via wrapper scripts | Built-in (server mode) | Via Borgmatic |
Restic and BorgBackup both need external scheduling. Borgmatic wraps BorgBackup with YAML-based configuration, scheduling, and monitoring hooks — making Borg much easier to automate.
Setup Complexity
Restic — Moderate
# Initialize repository
restic init --repo /path/to/backup
# Run backup
restic backup /data --repo /path/to/backup
# S3 example
restic init --repo s3:s3.amazonaws.com/my-bucket
restic backup /data --repo s3:s3.amazonaws.com/my-bucket
Kopia — Easiest
# Initialize repository (local)
kopia repository create filesystem --path /path/to/backup
# Or use the web UI
kopia server start --insecure --address 0.0.0.0:51515
# Run backup
kopia snapshot create /data
BorgBackup — Moderate (Easy with Borgmatic)
# Initialize repository
borg init --encryption=repokey /path/to/backup
# Run backup
borg create /path/to/backup::backup-{now} /data
# With Borgmatic (recommended)
borgmatic init
borgmatic
Use Cases
Choose Restic If…
- You want to back up to cloud storage (S3, B2, Wasabi)
- You need rclone integration for exotic backends
- You want the largest community and most documentation
- You prefer a simple, well-documented CLI
- You back up from multiple machines to a shared repository
Choose Kopia If…
- You want a web UI for managing backups
- You need a centralized repository server for multiple clients
- You want built-in scheduling without external tools
- You prefer modern, actively-developing software
- Lock-free operation matters (concurrent backups to same repo)
Choose BorgBackup If…
- Storage efficiency is your top priority
- You back up over SSH to a remote server or NAS
- You don’t need cloud storage backends
- You want the most mature, battle-tested deduplication
- You’re comfortable with Borgmatic for automation
Final Verdict
| Use Case | Winner | Why |
|---|---|---|
| Cloud backup (S3/B2) | Restic | Most backends, rclone integration |
| NAS/SSH backup | BorgBackup | Best compression, proven reliability |
| GUI management | Kopia | Only one with built-in web UI |
| Multi-device backup | Kopia | Built-in repository server |
| Storage efficiency | BorgBackup | Best-in-class deduplication + compression |
| Community/ecosystem | Restic | Largest community, most documentation |
| Beginner-friendly | Kopia | Web UI, built-in scheduling |
For a self-hosting setup backing up to Backblaze B2 or S3, Restic is the default recommendation. For local NAS backups where storage cost matters, BorgBackup with Borgmatic. For those who want the easiest experience with a visual interface, Kopia.
Related
Get self-hosting tips in your inbox
Get the Docker Compose configs, hardware picks, and setup shortcuts we don't put in articles. Weekly. No spam.
Comments