Duplicati vs Restic: Which Backup Tool to Self-Host?
Quick Verdict
Restic is the better choice for most self-hosters who are comfortable with the command line. It’s faster, more reliable, and has better deduplication. Duplicati is better if you need a web UI for configuring backups or prefer a point-and-click interface over writing scripts.
Overview
Duplicati is a backup tool with a web-based UI that supports 25+ backup destinations. Restic is a command-line backup tool that prioritizes speed, simplicity, and reliability. Both encrypt backups by default and support incremental backups with deduplication.
Feature Comparison
| Feature | Duplicati | Restic |
|---|---|---|
| Interface | Web UI | Command line |
| Docker deployment | Yes (LSIO image) | Not typical (CLI tool) |
| Backup destinations | 25+ (S3, B2, SFTP, Google Drive, etc.) | 15+ (S3, B2, SFTP, REST, etc.) |
| Encryption | AES-256 | AES-256 (always on) |
| Deduplication | Block-level | Content-defined chunking (superior) |
| Incremental backups | Yes | Yes (snapshot-based) |
| Backup scheduling | Built-in (web UI) | External (cron/systemd timer) |
| Backup verification | Yes (built-in) | Yes (restic check) |
| Restore granularity | File/folder level | File/folder level |
| Mount backups | No | Yes (restic mount via FUSE) |
| Compression | Yes (built-in) | Yes (zstd, since v0.16) |
| Speed | Moderate | Fast |
| Reliability | Good (some reported DB corruption) | Excellent |
| RAM usage | ~200-500 MB | ~100-500 MB (varies with repo size) |
| Community | Active | Very active |
| Maturity | Stable (but “beta” since 2016) | Stable (v0.18.x) |
Installation Complexity
Duplicati runs as a Docker container via the LinuxServer.io image (lscr.io/linuxserver/duplicati:v2.2.0.3). The web UI at port 8200 handles everything — selecting sources, choosing a destination, setting a schedule, configuring encryption. No command line needed.
Restic is a CLI tool — you install it with apt install restic or use the official Docker image for one-off runs. Backups are configured by writing scripts and scheduling them with cron or systemd timers. There’s no web UI.
For users who prefer GUIs, Duplicati is significantly easier to set up. For users who prefer scripts, Restic is simpler and more predictable.
Performance and Resource Usage
Restic is faster for both backup and restore operations, largely due to its superior deduplication algorithm (content-defined chunking). It processes changes more efficiently and uses less network bandwidth for incremental backups.
Duplicati’s deduplication is block-level, which works well but isn’t as efficient as Restic’s approach for large file changes.
Both can be memory-hungry when processing large backup sets, but Restic generally uses less memory for equivalent workloads.
Community and Support
Both have active communities. Restic has more GitHub stars, more frequent releases, and is more commonly recommended in self-hosting communities. Duplicati has been in “beta” since 2016, which concerns some users despite it being widely used in production.
Use Cases
Choose Duplicati If…
- You want a web UI for backup management
- You prefer point-and-click over command line
- You need backup scheduling without writing cron jobs
- You want a Docker-native backup solution
- You’re backing up to Google Drive, OneDrive, or other consumer cloud storage
Choose Restic If…
- You’re comfortable with the command line
- You want the fastest backup/restore performance
- You need to mount and browse backups (FUSE mount)
- Reliability is your top priority
- You’re backing up to S3, B2, or SFTP
- You want to integrate backups into existing automation scripts
Final Verdict
Restic wins for reliability and performance. Its deduplication is superior, restores are faster, and the FUSE mount feature for browsing backups is genuinely useful. If you can write a backup script, Restic is the better tool.
Duplicati wins for accessibility. The web UI lowers the barrier to entry significantly. If you want backups running without touching the command line, Duplicati delivers.
Consider also: Borgmatic wraps BorgBackup (Restic’s main competitor) with a YAML config file and Docker support, offering a middle ground between Restic’s bare CLI and Duplicati’s full GUI.
FAQ
Can I switch from Duplicati to Restic without losing backups?
Your existing Duplicati backups remain accessible through Duplicati — you do not lose them by installing Restic. However, Restic cannot read Duplicati’s backup format, so you will need to run a fresh full backup with Restic. Keep Duplicati installed alongside Restic until you are confident your new Restic backups are working and your Duplicati retention period has passed.
Is Duplicati still in beta?
Technically yes — Duplicati has carried a “beta” label since 2016. In practice, it is widely used in production by thousands of users. The beta label reflects the developers’ cautious approach to versioning rather than actual instability. That said, some users have reported database corruption issues with Duplicati’s internal tracking database, which is why Restic’s simpler architecture appeals to reliability-focused users.
Can Restic back up to Google Drive or OneDrive?
Not directly. Restic’s native backends are local, S3, B2, Azure, GCS, SFTP, and REST server. For Google Drive, OneDrive, or other consumer cloud storage, pair Restic with Rclone using restic -r rclone:remote:path. Duplicati supports Google Drive and OneDrive natively without additional tools.
Which is better for backing up Docker volumes?
Both work. The approach is the same: mount the Docker volume data directory as a source path and run the backup. The key consideration is stopping database containers before backup to ensure consistency. Restic is faster for large volume backups. Duplicati is easier to configure if you want to set it up via the web UI and forget about it.
How do I schedule Restic backups without a web UI?
Use a systemd timer or cron job. Create a backup script that runs restic backup /path/to/data, then schedule it. For a more managed approach, use Borgmatic — it wraps BorgBackup (similar to Restic) with YAML configuration, pre/post hooks, and healthcheck pings, all schedulable via cron or Docker.
Can I verify backup integrity with both tools?
Yes. Restic has restic check which verifies the repository structure and optionally reads all data blobs to confirm integrity. Duplicati has a built-in verification step that can run after each backup and a “Repair” function for fixing database inconsistencies. Restic’s verification is faster and more straightforward.
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