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

FeatureDuplicatiBorgBackup
Latest versionv2.2.0.31.4.3
Docker imagelscr.io/linuxserver/duplicati:2.2.0b3vis/borgbackup:1.4.3 (community)
LanguageC# (.NET)Python + C
InterfaceWeb UICLI only
DeduplicationBlock-levelChunk-level (content-defined)
EncryptionAES-256AES-256-CTR + HMAC-SHA256 (authenticated)
CompressionBuilt-in (zip, 7z, LZMA)LZ4, ZSTD, ZLIB, LZMA, none
Cloud storage backends20+ (S3, B2, SFTP, FTP, WebDAV, Rclone, etc.)SSH/SFTP only (native)
Local backupYesYes
Incremental backupsYes (block-level)Yes (chunk-level)
SchedulingBuilt-in (web UI)External (cron or Borgmatic)
Restore granularityIndividual files via web UIIndividual files via CLI
Backup verificationBuilt-in verify + repairborg check command
Retention policiesTime-based + version countKeep-daily, keep-weekly, keep-monthly
Cross-platformWindows, Linux, macOSLinux, macOS, FreeBSD
LicenseLGPL-2.1BSD-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

StepDuplicatiBorgBackup
Docker deploymentSingle containerSingle container (or bare metal install)
Initial setupWeb UI wizardborg init CLI command
Configure first backupWeb UI (click-through)Edit Borgmatic YAML or write shell script
Schedule backupsBuilt-in scheduler in UICron + Borgmatic
Learning curveLow (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:

BackendDuplicatiBorgBackup
Local disk/NASYesYes
SSH/SFTPYesYes
Amazon S3YesVia Rclone only
Backblaze B2YesVia Rclone only
Google DriveYesVia Rclone only
OneDriveYesVia Rclone only
WebDAVYesVia Rclone only
FTPYesVia Rclone only
Rclone (any backend)YesVia 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:

ScenarioDuplicatiBorgBackup
VM disk images (shifting content)Moderate dedupExcellent dedup
Database dumpsGood dedupExcellent dedup
Static files (photos, documents)Good dedupGood dedup
Config files with small changesGood dedupExcellent 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

MetricDuplicatiBorgBackup
RAM (during backup)~300-500 MB~200-400 MB
Backup speed (first run)ModerateFast
Backup speed (incremental)ModerateVery fast
CPU usageModerate (C# runtime)Low-moderate (C extensions)
Restore speedModerateFast

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 check verifies 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.

Comments