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.
FAQ
Can I switch between Restic, Kopia, and BorgBackup without losing data?
No — each tool uses an incompatible repository format. Switching requires restoring data from the old tool and creating a new backup with the new tool. There is no direct migration path between any of these three. Plan for this by keeping the old repository accessible until you've verified the new backup is complete.
Which tool works best with Backblaze B2?
Restic has the most mature B2 integration. It supports B2 natively as a backend and handles large uploads efficiently with chunked transfers. Kopia also supports B2 well. BorgBackup does not support B2 directly — you need to mount B2 as a filesystem using rclone or use a network storage layer, which adds complexity and can reduce performance.
Can I use these tools to back up Docker volumes?
Yes, all three can back up Docker volumes. The approach is the same: stop the container (or use a database dump for databases), then back up the volume directory on the host. Borgmatic and Kopia's built-in scheduling make this easier to automate. Restic requires a wrapper script or cron job to handle the stop/backup/start sequence.
Do any of these tools support Windows?
Restic and Kopia support Windows natively with official binaries. BorgBackup does not have official Windows support — it runs on Linux and macOS only. If you need to back up Windows machines, Restic or Kopia are your options. For mixed environments, Restic is the safest choice due to its broader platform support.
Which tool is fastest for large backups (1 TB+)?
BorgBackup is typically fastest for local backups due to its efficient deduplication and compression pipeline. For cloud backups, Restic and Kopia perform similarly — both parallelize uploads and handle large repositories well. The bottleneck for cloud backups is usually network bandwidth, not the tool itself. All three handle multi-terabyte repositories without issues.
Can I monitor backup health with these tools?
Kopia has a built-in web UI showing backup status, schedules, and repository health. Restic and BorgBackup are CLI-only — you need external monitoring. A common approach is using Healthchecks or Uptime Kuma to monitor whether backup scripts complete on schedule. Borgmatic (the BorgBackup wrapper) supports Healthchecks pings natively.
Top comments (0)