BorgBackup vs Duplicacy: Which Backup Tool Wins?
Quick Verdict
BorgBackup is the better choice for Linux-focused setups where you back up to local disks or remote servers over SSH. It has superior compression, a massive community, and Borgmatic makes scheduling effortless. Duplicacy wins if you need to back up across multiple operating systems or push backups to cloud storage like S3, B2, or Google Drive — its lock-free deduplication and 17+ storage backends are unmatched. For most self-hosters running Linux servers, BorgBackup with Borgmatic is the stronger pick.
Overview
BorgBackup (Borg) is a deduplicating, encrypting backup program that has been a mainstay in the Linux backup ecosystem for over a decade. It uses content-defined chunking to deduplicate data, supports multiple compression algorithms, and encrypts everything with AES-256 or ChaCha20-Poly1305. It is CLI-only, but Borgmatic wraps it with YAML-based configuration, cron scheduling, and database dump hooks.
Duplicacy is a cross-platform backup tool built around lock-free deduplication — meaning multiple machines can back up to the same storage simultaneously without coordination. It supports over 17 storage backends out of the box, from local disks to S3, Backblaze B2, Google Drive, OneDrive, and more. It ships as both a CLI tool (free for personal use) and a paid web GUI edition.
Both tools deduplicate and encrypt. The core difference is philosophy: BorgBackup optimizes for efficiency on Linux with SSH-based repos, while Duplicacy optimizes for flexibility across platforms and cloud storage providers.
Feature Comparison
| Feature | BorgBackup | Duplicacy |
|---|---|---|
| Deduplication | Content-defined chunking | Lock-free content-defined chunking |
| Encryption | AES-256-OCB, ChaCha20-Poly1305 | AES-256-GCM, RSA |
| Compression | LZ4, zstd, zlib, lzma | LZ4, zstd |
| Storage backends | Local, SSH/SFTP | Local, SFTP, S3, B2, GCS, Azure, Dropbox, OneDrive, Google Drive, WebDAV, and more (17+) |
| Multi-machine backup | Not supported (repo locking) | Lock-free — multiple machines to one repo |
| Cross-platform | Linux, macOS, FreeBSD (experimental Windows WSL) | Linux, macOS, Windows (native) |
| GUI | None (CLI only; Borgmatic for config) | Web GUI edition (paid) |
| Docker support | Official Borgmatic Docker image | Community Docker image (saspus/duplicacy-web) |
| Mount backups | Yes (FUSE) | No native mount |
| Database dump hooks | Built-in via Borgmatic (PostgreSQL, MySQL, MongoDB, SQLite) | Via external scripts |
| Retention policies | Built-in (keep-daily, keep-weekly, etc.) | Built-in (keep, prune commands) |
| Backup verification | borg check / borg extract --dry-run | duplicacy check |
| License | BSD-3-Clause (fully open source) | Free for personal CLI use; $50/year per machine commercial; web GUI is proprietary |
| Community size | ~13K GitHub stars, large ecosystem | ~5.2K GitHub stars, smaller community |
| Maturity | Since 2010 (fork of Attic) | Since 2016 |
Installation and Setup
BorgBackup is a CLI tool, not a Docker-native application. However, Borgmatic provides a well-maintained Docker image that bundles both Borg and Borgmatic with cron scheduling. This is the recommended way to run automated BorgBackup in a self-hosted Docker environment.
Duplicacy is also primarily a CLI/desktop tool. The community-maintained saspus/duplicacy-web Docker image wraps the Duplicacy Web GUI for container-based deployments.
BorgBackup with Borgmatic (Docker Compose)
Create a docker-compose.yml:
services:
borgmatic:
image: ghcr.io/borgmatic-collective/borgmatic:1.8.13
container_name: borgmatic
restart: unless-stopped
environment:
- TZ=UTC
- BORG_PASSPHRASE=${BORG_PASSPHRASE}
- BACKUP_CRON=0 2 * * * # Run backups daily at 2 AM
volumes:
- ./borgmatic/config:/etc/borgmatic.d # Borgmatic YAML config
- ./borgmatic/borg-keys:/root/.config/borg # Borg encryption keys -- back this up separately
- ./borgmatic/borg-cache:/root/.cache/borg # Chunk cache for faster operations
- ./borgmatic/state:/root/.local/state/borgmatic # State files for periodic checks
- ./borgmatic/ssh:/root/.ssh # SSH keys for remote repos
- /path/to/your/data:/mnt/source:ro # Data to back up (read-only)
- /path/to/borg/repo:/mnt/borg-repository # Local backup repository
Create a .env file:
# CHANGE THIS -- use a strong passphrase, store it separately
BORG_PASSPHRASE=your-strong-passphrase-change-me
Create a Borgmatic config file at ./borgmatic/config/config.yaml:
repositories:
- path: /mnt/borg-repository
label: local
source_directories:
- /mnt/source
encryption_passcommand: "echo ${BORG_PASSPHRASE}"
compression: auto,zstd,3
keep_daily: 7
keep_weekly: 4
keep_monthly: 6
checks:
- name: repository
frequency: 2 weeks
- name: archives
frequency: 4 weeks
Initialize the repository and start:
# Initialize the Borg repository first
docker compose run --rm borgmatic borgmatic init --encryption repokey
# Start the scheduled backup container
docker compose up -d
Duplicacy Web GUI (Docker Compose)
Create a docker-compose.yml:
services:
duplicacy-web:
image: saspus/duplicacy-web:v1.8.3
container_name: duplicacy-web
hostname: duplicacy-server # Important -- Duplicacy license is tied to hostname
restart: unless-stopped
environment:
- TZ=UTC
- USR_ID=1000 # UID of the user that owns backup files
- GRP_ID=1000 # GID of the user that owns backup files
ports:
- "3875:3875" # Duplicacy Web GUI
volumes:
- duplicacy_config:/config # Configuration and license data
- duplicacy_logs:/logs # Log files
- duplicacy_cache:/cache # Deduplication cache
- /path/to/your/data:/backuproot:ro # Data to back up (read-only)
volumes:
duplicacy_config:
duplicacy_logs:
duplicacy_cache:
Start the stack:
docker compose up -d
Access the web GUI at http://your-server:3875. On first launch, set a password and configure your backup storage destination and schedule through the web interface. No additional CLI initialization is required.
Performance and Resource Usage
BorgBackup is highly efficient on initial and incremental backups. Its content-defined chunking algorithm is mature and well-tuned. Compression options (especially zstd) significantly reduce repository size. Borg’s chunk cache (stored locally) speeds up subsequent backups by avoiding redundant hash calculations. Expect moderate RAM usage that scales with the number of files — around 200-500 MB for typical workloads.
Duplicacy’s lock-free deduplication trades some single-machine efficiency for multi-machine flexibility. Initial backup speed is competitive, but incremental backups can be slightly slower than Borg because Duplicacy re-scans the snapshot database on each run rather than maintaining a persistent cache. RAM usage is generally lower than Borg for comparable workloads. When backing up to cloud storage, network bandwidth is typically the bottleneck, not CPU or RAM.
For local and SSH backups, BorgBackup is faster. For cloud storage targets, Duplicacy’s native backend integration means less overhead than piping Borg output through rclone.
Multi-Machine and Cloud Storage
This is where the tools diverge most sharply.
BorgBackup locks the repository during operations. One machine backs up at a time. If you have multiple servers, you need separate repositories or careful scheduling to avoid lock conflicts. Cloud storage is not natively supported — you would need to layer rclone or mount cloud storage as a filesystem, which adds complexity and failure modes.
Duplicacy was designed from the ground up for multi-machine backups to shared storage. Its lock-free architecture means five servers can all back up to the same S3 bucket simultaneously without any coordination. Cross-machine deduplication still works — if two machines have the same file, it is stored once. This is a genuine architectural advantage that BorgBackup cannot match without a fundamental redesign.
If you back up multiple machines to cloud storage, Duplicacy is the clear winner.
Community and Ecosystem
BorgBackup has a larger community and a richer ecosystem. Borgmatic alone adds YAML configuration, database dump hooks (PostgreSQL, MySQL, MongoDB, SQLite), monitoring integration (Healthchecks.io, Cronitor, Apprise notifications), and filesystem snapshot support (ZFS, Btrfs, LVM). The Borgmatic Docker image is actively maintained by the borgmatic-collective. Documentation is extensive and well-organized.
Duplicacy’s community is smaller but dedicated. The Duplicacy forum is active and the developer (Gilbert Chen) is responsive. The web GUI is polished and functional. However, the ecosystem is thinner — there are no equivalents to Borgmatic’s hook system, and Docker support relies on community images rather than official ones.
BorgBackup is BSD-3-Clause licensed — fully open source with no restrictions. Duplicacy’s CLI is free for personal use, but commercial use requires a $50/year per-machine license. The web GUI is proprietary. This matters if you are running backups for a business or want full source access.
Use Cases
Choose BorgBackup If…
- You run Linux servers and back up to local disks or remote servers over SSH
- You want the best compression ratios (lzma, zstd with tunable levels)
- You need built-in database dump hooks (PostgreSQL, MySQL) via Borgmatic
- You want FUSE-mountable archives for easy browsing and restoring individual files
- You prefer fully open-source tools with no licensing restrictions
- You already use Borgmatic and want a battle-tested, well-documented ecosystem
Choose Duplicacy If…
- You need to back up Windows, macOS, and Linux machines to the same storage
- You want native support for S3, Backblaze B2, Google Drive, OneDrive, or other cloud backends
- You run multiple servers that need to back up to the same repository concurrently
- You prefer a web GUI for configuration and monitoring
- Cross-machine deduplication matters to you (shared data across machines stored once)
- You need a single tool that handles both local and cloud backup destinations
Final Verdict
For the typical self-hoster running one or two Linux servers with local or SSH-based backup destinations, BorgBackup with Borgmatic is the better choice. It is faster for local backups, has superior compression, offers built-in database hooks, and benefits from a large open-source ecosystem. The Borgmatic Docker image makes scheduling and automation straightforward.
If your setup involves multiple operating systems, cloud storage backends, or concurrent multi-machine backups to a shared repository, Duplicacy is the stronger tool. Its lock-free deduplication and native cloud storage integration solve real problems that BorgBackup cannot address without workarounds.
Both are excellent backup tools — the decision comes down to your storage targets and platform requirements, not quality.
Related
Get self-hosting tips in your inbox
New guides, comparisons, and setup tutorials — delivered weekly. No spam.