Duplicati vs BorgBackup: Backup Tools Compared
If you need encrypted, deduplicated backups for your self-hosted services but haven’t decided between a GUI-driven tool and a CLI-first one, Duplicati and BorgBackup represent the two main approaches. Duplicati targets users who want a web interface and cloud storage integration. BorgBackup targets users who want maximum efficiency and don’t mind the command line.
Feature Comparison
| Feature | Duplicati | BorgBackup |
|---|---|---|
| Latest version | v2.2.0.3 | 1.4.3 |
| Docker image | lscr.io/linuxserver/duplicati:2.2.0 | b3vis/borgbackup:1.4.3 (community) |
| Language | C# (.NET) | Python + C |
| Interface | Web UI | CLI only |
| Deduplication | Block-level | Chunk-level (content-defined) |
| Encryption | AES-256 | AES-256-CTR + HMAC-SHA256 (authenticated) |
| Compression | Built-in (zip, 7z, LZMA) | LZ4, ZSTD, ZLIB, LZMA, none |
| Cloud storage backends | 20+ (S3, B2, SFTP, FTP, WebDAV, Rclone, etc.) | SSH/SFTP only (native) |
| Local backup | Yes | Yes |
| Incremental backups | Yes (block-level) | Yes (chunk-level) |
| Scheduling | Built-in (web UI) | External (cron or Borgmatic) |
| Restore granularity | Individual files via web UI | Individual files via CLI |
| Backup verification | Built-in verify + repair | borg check command |
| Retention policies | Time-based + version count | Keep-daily, keep-weekly, keep-monthly |
| Cross-platform | Windows, Linux, macOS | Linux, macOS, FreeBSD |
| License | LGPL-2.1 | BSD-3-Clause |
Architecture
Duplicati runs as a web server with a browser-based interface. You configure backup jobs through the UI — select source directories, choose a destination, set encryption, define schedule. Everything is managed through the web interface, including restores. Under the hood, Duplicati splits files into blocks, deduplicates, compresses, encrypts, and uploads to your chosen backend.
BorgBackup is a command-line tool. You initialize a repository, then run borg create to make archives. There’s no daemon, no web UI, no built-in scheduler. For automated backups, wrap Borg in Borgmatic (a configuration-driven wrapper) or plain cron jobs. Borg’s strength is its deduplication algorithm — content-defined chunking achieves better dedup ratios than Duplicati’s fixed-block approach for most workloads.
Installation and Setup
| Step | Duplicati | BorgBackup |
|---|---|---|
| Docker deployment | Single container | Single container (or bare metal install) |
| Initial setup | Web UI wizard | borg init CLI command |
| Configure first backup | Web UI (click-through) | Edit Borgmatic YAML or write shell script |
| Schedule backups | Built-in scheduler in UI | Cron + Borgmatic |
| Learning curve | Low (GUI) | Moderate (CLI + config files) |
| Time to first backup | ~10 minutes | ~15-30 minutes |
Duplicati is easier for anyone who prefers GUIs. Click through the wizard, select folders, pick a cloud destination, set a password, choose a schedule. Done.
BorgBackup requires comfort with the command line. Typical workflow: install Borg, initialize a repository, write a backup script or configure Borgmatic, add a cron job. More steps, but more control over exactly what happens.
Backup Destinations
This is Duplicati’s biggest advantage. It supports 20+ storage backends natively:
| Backend | Duplicati | BorgBackup |
|---|---|---|
| Local disk/NAS | Yes | Yes |
| SSH/SFTP | Yes | Yes |
| Amazon S3 | Yes | Via Rclone only |
| Backblaze B2 | Yes | Via Rclone only |
| Google Drive | Yes | Via Rclone only |
| OneDrive | Yes | Via Rclone only |
| WebDAV | Yes | Via Rclone only |
| FTP | Yes | Via Rclone only |
| Rclone (any backend) | Yes | Via borg mount + Rclone FUSE |
BorgBackup only supports local paths and SSH/SFTP natively. For cloud storage, you need an intermediary — either Rclone mounting a cloud destination as a local path, or a BorgBase-compatible service. This makes Duplicati the clear choice if you’re backing up to cloud storage directly.
Deduplication Efficiency
BorgBackup’s content-defined chunking produces better dedup ratios than Duplicati’s fixed-block approach. In practice:
| Scenario | Duplicati | BorgBackup |
|---|---|---|
| VM disk images (shifting content) | Moderate dedup | Excellent dedup |
| Database dumps | Good dedup | Excellent dedup |
| Static files (photos, documents) | Good dedup | Good dedup |
| Config files with small changes | Good dedup | Excellent dedup |
Content-defined chunking adapts to inserted or deleted data without invalidating surrounding chunks. Fixed-block dedup can miss dedup opportunities when data shifts within a file. For large, frequently-changing files (database dumps, VM images), BorgBackup’s approach saves significantly more space.
Performance
| Metric | Duplicati | BorgBackup |
|---|---|---|
| RAM (during backup) | ~300-500 MB | ~200-400 MB |
| Backup speed (first run) | Moderate | Fast |
| Backup speed (incremental) | Moderate | Very fast |
| CPU usage | Moderate (C# runtime) | Low-moderate (C extensions) |
| Restore speed | Moderate | Fast |
BorgBackup is faster for both initial and incremental backups. Its C-optimized chunking and hashing outperform Duplicati’s .NET implementation, especially on large datasets. Borg also caches file metadata, allowing it to skip unchanged files without re-reading them.
Duplicati’s .NET runtime adds overhead, and its web UI contributes to baseline memory usage even when no backup is running.
Reliability and Recovery
Both tools support backup verification, but their approaches differ:
- Duplicati includes a “Repair” function that can reconstruct damaged backup metadata from the remote storage. This is useful if the local database gets corrupted. However, Duplicati has had historical stability issues — interrupted backups occasionally leaving the database in an inconsistent state.
- BorgBackup stores all metadata within the repository itself.
borg checkverifies both repository integrity and archive consistency. Recovery from corruption is straightforward — the repository is the single source of truth.
BorgBackup has a stronger track record for reliability. Duplicati v2 improved significantly over v1, but community reports of backup database corruption still surface.
Use Cases
Choose Duplicati If…
- You want a web interface for managing backups without touching the CLI
- You’re backing up directly to cloud storage (S3, B2, Google Drive, OneDrive)
- You need Windows support alongside Linux
- You want built-in scheduling without configuring cron
- Your backup sources are mostly personal files and documents
Choose BorgBackup If…
- You want the best deduplication ratios and backup speed
- You’re comfortable with CLI tools and cron/Borgmatic
- You’re backing up to a local NAS, another server via SSH, or BorgBase
- Reliability is your top priority — you can’t afford corrupted backups
- You’re backing up large, frequently-changing files (databases, VMs)
Final Verdict
If you back up to cloud storage and prefer a GUI, Duplicati is the practical choice. Its 20+ storage backends and web interface make it accessible to users who don’t want to write scripts or manage cron jobs.
If you prioritize speed, deduplication efficiency, and proven reliability, BorgBackup is the stronger tool. Pair it with Borgmatic for configuration management and scheduling, and you get a backup system that’s both powerful and maintainable. For backing up Docker volumes on a home server to a NAS or remote machine, BorgBackup + Borgmatic is the gold standard.
Frequently Asked Questions
Can I use BorgBackup with cloud storage like Backblaze B2?
Not directly. BorgBackup only writes to local paths and SSH/SFTP. You can mount B2 as a local path using Rclone FUSE, but this adds latency and complexity. If cloud storage is your primary destination, Duplicati or Restic (which supports S3/B2 natively) is a better fit.
Is Borgmatic required for BorgBackup?
No. You can run borg create directly from a shell script or cron job. Borgmatic adds YAML-based configuration, automatic pruning, pre/post hooks, and health checks. It’s strongly recommended but not mandatory.
Which is better for backing up Docker volumes?
Both work. BorgBackup + Borgmatic is more common in the self-hosting community for Docker volume backups because it’s faster and has better dedup for frequently-changing data. Duplicati works too if you prefer the web UI for managing backup jobs.
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