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

FeatureBorgBackupDuplicacy
DeduplicationContent-defined chunkingLock-free content-defined chunking
EncryptionAES-256-OCB, ChaCha20-Poly1305AES-256-GCM, RSA
CompressionLZ4, zstd, zlib, lzmaLZ4, zstd
Storage backendsLocal, SSH/SFTPLocal, SFTP, S3, B2, GCS, Azure, Dropbox, OneDrive, Google Drive, WebDAV, and more (17+)
Multi-machine backupNot supported (repo locking)Lock-free — multiple machines to one repo
Cross-platformLinux, macOS, FreeBSD (experimental Windows WSL)Linux, macOS, Windows (native)
GUINone (CLI only; Borgmatic for config)Web GUI edition (paid)
Docker supportOfficial Borgmatic Docker imageCommunity Docker image (saspus/duplicacy-web)
Mount backupsYes (FUSE)No native mount
Database dump hooksBuilt-in via Borgmatic (PostgreSQL, MySQL, MongoDB, SQLite)Via external scripts
Retention policiesBuilt-in (keep-daily, keep-weekly, etc.)Built-in (keep, prune commands)
Backup verificationborg check / borg extract --dry-runduplicacy check
LicenseBSD-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
MaturitySince 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.

Comments