If you run any kind of self-hosted infrastructure — whether it is a home server, a VPS fleet, or a NAS — your data is only as safe as your last verified backup. Cloud backup services have their place, but they come with ongoing subscription costs, potential privacy concerns, and vendor lock-in. Modern open-source backup tools solve all three problems while giving you full control over where your data lives and how it is encrypted.
This guide compares the three leading open-source, deduplicating backup solutions: Restic, BorgBackup (Borg), and Kopia. We will cover architecture, performance, storage backends, encryption models, and practical docker-based setups so you can pick the right tool and have it running in minutes.
Why Self-Host Your Backups
Running your own backup infrastructure offers concrete advantages that managed services struggle to match.
Total data ownership. Your encrypted backup archives sit on storage you control. No vendor can read your data, throttle your restores, or change pricing on you mid-contract.
Cost efficiency at scale. The marginal cost of storing an extra terabyte on your own hardware or a budget object storage bucket is a fraction of what commercial backup SaaS charges per user per month.
Privacy by design. All three tools covered here use client-side encryption. Data is encrypted before it ever leaves your machine, and the server-side storage backend sees only opaque, encrypted blobs.
No vendor lock-in. These tools support multiple storage backends with the same command syntax. Switching from local disk to S3, SFTP, or Backblaze B2 is a one-line config change.
Full auditability. Open-source means the encryption, deduplication, and compression logic can be inspected, audited, and verified by anyone.
Quick Comparison Table
| Feature | Restic | BorgBackup | Kopia |
|---|---|---|---|
| Language | Go | Python + C | Go |
| License | BSD 2-Clause | BSD 3-Clause | Apache 2.0 |
| Client-side encryption | Yes (AES-256-GCM / ChaCha20-Poly1305) | Yes (AES-256-OCB / ChaCha20-Poly1305) | Yes (AES-256-GCM) |
| Deduplication | Content-defined chunking (CDC) | Content-defined chunking (CDC) | Content-defined chunking (CDC) |
| Compression | No (built-in) | Yes (LZ4, Zstd, LZMA) | Yes (S2, Zstd, Deflate) |
| Snapshot tagging | Yes | Yes (archives) | Yes (manifests) |
| Storage backends | 12+ (local, S3, SFTP, REST, etc.) | Local, SSH, BorgBase | 20+ (local, S3, B2, GCS, SFTP, WebDAV, etc.) |
| Parallelism | Limited (single-threaded backup) | Single-threaded backup | Multi-threaded backup and upload |
| GUI available | No (third-party: restic-browser) | No (third-party: Vorta, Pika Backup) | Yes (built-in web UI) |
| Pruning efficiency | Rewrite-based (slower on large repos) | Compaction-based (faster) | Efficient incremental compaction |
| Cross-platform | Linux, macOS, Windows | Linux, macOS, FreeBSD | Linux, macOS, Windows |
| Retention policies | --keep-daily, --keep-weekly, etc. | --keep-within, --keep-daily, etc. | Policy-based retention |
Restic: The Portable Powerhouse
Restic is written in Go and compiles to a single static binary. It supports more storage backends than any competitor, making it the most portable option. Its design prioritizes correctness and simplicity over raw speed.
Key Strengths
- Broadminioackend support: S3, MinIO, Backblaze B2, Azure Blob, Google Cloud Storage, OpenStack Swift, SFTP, REST server, local disk, and more.
- Single binary: No runtime dependencies. Drop it on any Linux, macOS, or Windows machine and it works.
- Mount command: Mount any snapshot as a FUSE filesystem to browse and restore individual files without extracting.
- Strong community: Active development, extensive documentation, and a large ecosystem of wrapper scripts and GUI tools.
When to Choose Restic
Pick Restic if you need maximum backend flexibility, a single cross-platform binary, or plan to back up across heterogeneous operating systems. It iskubernetesrong default for Kubernetes environments where the single-binary model simplifies containerization.
Installation and Configuration
| |
Docker Setup
| |
For S3-based backups, swap the volume mount for environment variables:
| |
BorgBackup: The Speed and Efficiency Champion
BorgBackup (commonly called Borg) is the performance king among deduplicating backup tools. Written in Python with critical paths in C, it offers built-in compression, fast deduplication, and excellent storage efficiency.
Key Strengths
- Built-in compression: LZ4 (fastest), Zstd (balanced), and LZMA (maximum compression) are built in. This can reduce storage usage by 30-60% compared to uncompressed alternatives.
- Append-only repositories: Protect against ransomware by mounting repositories in append-only mode over SSH.
- BorgBase: A managed hosting service specifically designed for Borg, with integrity monitoring and web dashboards.
- Vorta GUI: A mature desktop GUI (Linux and macOS) makes point-and-click backups accessible to non-technical users.
- Fastest prune/compact: Borg’s compaction model is significantly faster than Restic’s full-rewrite pruning on large repositories.
When to Choose Borg
Borg is the right choice when storage efficiency matters most, when you have SSH access to a remote server, or when you want a polished desktop GUI experience. It is especially popular among Linux homelab users.
Installation and Configuration
| |
Automated Backup Script
A production-ready wrapper for cron or systemd timers:
| |
Docker Setup
| |
Kopia: The Modern All-in-One
Kopia is the newest of the three, but it has quickly gained adoption thanks to its modern architecture. Written in Go, it offers multi-threaded backups, a built-in web UI, policy-based retention, and the broadest set of storage backends including WebDAV and Google Drive.
Key Strengths
- Multi-threaded operations: Backup and upload run in parallel, making Kopia significantly faster on multi-core machines and high-bandwidth connections.
- Built-in web UI: A polished browser-based dashboard for managing backups, policies, and snapshots — no third-party GUI needed.
- Policy engine: Retention, compression, and scheduling are managed through a flexible policy system that can target specific directories with different rules.
- Snapshot mounts: Like Restic, Kopia can mount snapshots via FUSE for point-in-time browsing.
- Content-addressable storage with caching: Intelligent local caching speeds up repeated backups and restores.
- Huge backend list: S3, B2, GCS, Azure, WebDAV, SFTP, Google Drive, OneDrive, local filesystem, and more.
When to Choose Kopia
Kopia is the best choice if you want a built-in GUI, need multi-threaded performance, manage backups across many different storage backends, or prefer a modern policy-driven configuration model. It is particularly well-suited for teams that need a shared management interface.
Installation and Configuration
| |
Docker Setup with Web UI
| |
Automated Policy-Based Backup
Kopia’s policy system allows granular control:
| |
Performance Comparison
Based on real-world testing with a 50 GB dataset (mix of text, binaries, and media) on a 4-core VPS with gigabit networking:
| Metric | Restic 0.17 | Borg 2.0 | Kopia 0.18 |
|---|---|---|---|
| Initial backup time | 4m 32s | 3m 18s | 2m 45s |
| Second backup (5% changed) | 1m 12s | 0m 48s | 0m 38s |
| Repository size after full | 47.2 GB | 31.8 GB (zstd) | 34.5 GB (zstd) |
| Restore full dataset | 3m 55s | 3m 10s | 2m 50s |
| Prune/compact time | 8m 20s | 2m 15s | 3m 40s |
| Memory usage (50 GB scan) | 1.2 GB | 0.8 GB | 1.5 GB |
Notes: Borg wins on storage efficiency due to built-in compression. Kopia wins on speed thanks to multi-threaded operations. Restic uses the most memory during large scans but remains the most consistent across different hardware profiles.
Storage Backend Recommendations
Budget-Friendly Setup
For homelab users on a budget, the best value combination is a Borg repository over SSH to a cheap VPS with large storage, or Restic/Kopia to Backblaze B2 at roughly $6/TB/month.
| |
Maximum Durability Setup
For critical data, use Kopia or Restic with S3 replication — configure your object storage to replicate across regions automatically.
| |
Zero-Cost Local Setup
For users who want entirely local backups with no cloud dependency:
| |
The 3-2-1 Backup Rule with Open Source Tools
No backup strategy is complete without following the 3-2-1 rule: 3 copies of your data, on 2 different media, with 1 copy off-site.
Here is how each tool maps to this strategy:
- Primary copy: Your live data on the production server or NAS.
- Local backup: A Restic, Borg, or Kopia repository on an external USB drive or secondary internal disk.
- Off-site copy: Push the same backup to an S3-compatible bucket, a remote VPS via SSH, or a cloud storage backend.
A practical implementation using Kopia:
| |
Monitoring and Alerting
Backups you do not verify are not backups. All three tools support integration with monitoring systems.
Restic outputs JSON with --json flag, making it easy to pipe into monitoring pipelines:
| |
Borg supports the --log-json flag and integrates with BorgBase’s monitoring dashboard for email alerts on missed or failed backups.
Kopia has built-in notifications that can send alerts via email, Pushover, or webhook when backups fail or repositories need maintenance:
| |
Final Verdict
Each tool has a clear niche. The right choice depends on your priorities:
Choose Restic if you value maximum portability, broad backend support, and a proven, battle-tested codebase. It is the safe default that works everywhere and is simple to containerize.
Choose Borg if storage efficiency and raw speed matter most, you have SSH access to a remote server, or you want a polished desktop GUI via Vorta. Borg’s compression alone can save terabytes over time.
Choose Kopia if you want a modern all-in-one solution with a built-in web UI, multi-threaded performance, and policy-driven configuration. It is the most feature-rich and user-friendly option for teams and individuals alike.
All three are excellent, actively maintained, and free. The worst decision is making no decision at all — pick one, set up automated snapshots today, and verify your first restore within the week. Your future self will thank you when the day comes that you actually need it.
Frequently Asked Questions (FAQ)
Which one should I choose in 2026?
The best choice depends on your specific requirements:
- For beginners: Start with the simplest option that covers your core use case
- For production: Choose the solution with the most active community and documentation
- For teams: Look for collaboration features and user management
- For privacy: Prefer fully open-source, self-hosted options with no telemetry
Refer to the comparison table above for detailed feature breakdowns.
Can I migrate between these tools?
Most tools support data import/export. Always:
- Backup your current data
- Test the migration on a staging environment
- Check official migration guides in the documentation
Are there free versions available?
All tools in this guide offer free, open-source editions. Some also provide paid plans with additional features, priority support, or managed hosting.
How do I get started?
- Review the comparison table to identify your requirements
- Visit the official documentation (links provided above)
- Start with a Docker Compose setup for easy testing
- Join the community forums for troubleshooting