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:2.1.3
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.
FAQ
Can BorgBackup back up to S3 or Backblaze B2?
Not natively. BorgBackup supports local and SSH repositories only. You can layer rclone on top (mounting cloud storage as a filesystem), but this is fragile and not officially supported. If cloud storage is your primary backup destination, use Duplicacy, Restic, or Kopia — all three support S3 and B2 natively.
Is Duplicacy free for personal use?
The Duplicacy CLI is free and open source for personal use. Commercial use requires a $50/year per-machine license. The web GUI edition costs $20 one-time for personal use, $100/year for commercial use. BorgBackup with Borgmatic is fully free under BSD-3-Clause with no usage restrictions.
Can I browse BorgBackup archives like a filesystem?
Yes. BorgBackup supports FUSE mounting — borg mount /path/to/repo::archive /mnt/point makes the archive browsable as a regular directory. You can navigate, search, and copy individual files. Duplicacy does not support FUSE mounting — you restore files through CLI or web UI commands.
How much storage does cross-machine dedup actually save?
It depends on how similar your machines are. For servers running similar operating systems and software stacks, Duplicacy’s cross-machine deduplication typically saves 30-60% compared to separate per-machine repositories. For machines with completely different data (e.g., a web server and a media server), savings are minimal. Evaluate with a test run before committing.
Which handles incremental backups faster?
BorgBackup is generally faster for incremental backups to local or SSH repositories because its chunk cache is persistent and well-optimized. Duplicacy re-scans the snapshot database on each run, which adds overhead. For cloud storage targets, both are limited by network bandwidth rather than software speed.
Can multiple machines back up to the same BorgBackup repo?
Not safely. BorgBackup locks the repository during operations — concurrent access causes lock conflicts. You can schedule backups at different times, but this is fragile. For true concurrent multi-machine backups to shared storage, use Duplicacy — its lock-free architecture was designed for this exact use case.
Related
- Self-Hosting Duplicacy for Cloud Backup
- How to Self-Host BorgBackup
- How to Self-Host Borgmatic
- Borgmatic vs Restic
- Restic vs BorgBackup
- Duplicati vs Borgmatic
- Borgmatic vs Kopia
- Best Self-Hosted Backup Tools
- Backup Strategy: The 3-2-1 Rule
- How to Back Up Docker Volumes
- Replace CrashPlan
- Replace Backblaze
- Docker Compose Basics
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