What Duplicati Does
- Encrypted Backups: AES-256 encryption before data leaves your machine — cloud provider cannot read your data
- Incremental: Only backs up changed files after the first full backup, saving bandwidth and storage
- Deduplication: Block-level deduplication to minimize storage usage across backups
- Compression: Zip or 7z compression to reduce backup size
- Scheduling: Automatic scheduled backups (hourly, daily, weekly, custom cron)
- Versioning: Keep multiple backup versions with configurable retention policies
- Verification: Regular integrity verification to ensure backups are restorable
- Web UI: Browser-based interface for configuration and monitoring
- CLI: Command-line interface for scripting and automation
Supported Storage Backends
| Backend | Protocol |
|---|---|
| Amazon S3 | S3 API |
| Google Drive | OAuth |
| Google Cloud Storage | OAuth |
| Microsoft OneDrive | OAuth |
| Backblaze B2 | B2 API |
| Dropbox | OAuth |
| SFTP / SSH | SFTP |
| FTP / FTPS | FTP |
| WebDAV | HTTP |
| OpenStack Swift | Swift API |
| MinIO | S3 API |
| Wasabi | S3 API |
| Local / Network | File path / SMB |
| Rclone | Any rclone backend |
| Mega.nz | Mega API |
| Jottacloud | Jotta API |
| Storj | Storj API |
Self-Hosting
Docker Compose
services:
duplicati:
image: lscr.io/linuxserver/duplicati:latest
ports:
- "8200:8200"
environment:
PUID: 1000
PGID: 1000
TZ: Asia/Shanghai
volumes:
- duplicati-config:/config
- /path/to/backup/source:/source:ro
- /path/to/local/backups:/backups
restart: unless-stopped
volumes:
duplicati-config:Backup Configuration
Web UI Setup
- Add Backup → Name your backup job
- Encryption → Set a strong passphrase (AES-256)
- Destination → Choose storage backend (S3, Google Drive, etc.)
- Source → Select folders/files to backup
- Schedule → Set frequency (daily at 2am recommended)
- Options → Retention policy, bandwidth limits, file filters
Command Line
# Create backup
duplicati-cli backup
"s3://my-bucket/backups?aws-access-key-id=KEY&aws-secret-access-key=SECRET"
/path/to/source
--passphrase="your-encryption-passphrase"
--backup-name="Daily Backup"
# Restore files
duplicati-cli restore
"s3://my-bucket/backups?aws-access-key-id=KEY&aws-secret-access-key=SECRET"
--restore-path=/path/to/restore
--passphrase="your-encryption-passphrase"
# List backup versions
duplicati-cli list
"s3://my-bucket/backups?aws-access-key-id=KEY&aws-secret-access-key=SECRET"
--passphrase="your-encryption-passphrase"Retention Policies
Keep all backups for: 7 days
Keep one backup per day for: 30 days
Keep one backup per week for: 12 weeks
Keep one backup per month for: 12 monthsKey Features
Block-Level Deduplication
First backup: 100GB data → 100GB uploaded
File changes: 2GB modified → only 2GB uploaded
New files: 5GB added → only 5GB uploaded
Deleted files: 3GB removed → just metadata updated
Total stored after 30 days: ~110GB (not 30 × 100GB)Encryption Flow
Source files
→ Split into blocks (100KB default)
→ Deduplicate (skip unchanged blocks)
→ Compress (zip/7z)
→ Encrypt (AES-256 with your passphrase)
→ Upload to storage backendYour passphrase never leaves your machine. Without it, the backup data is unreadable.
Email Notifications
Configure SMTP to receive:
✅ Backup completed successfully
❌ Backup failed with error details
⚠️ Backup completed with warnings
📊 Weekly backup summary reportDuplicati vs Alternatives
| Feature | Duplicati | Restic | BorgBackup | Rclone |
|---|---|---|---|---|
| Open Source | Yes | Yes (BSD) | Yes (BSD) | Yes (MIT) |
| GUI | Web UI | CLI only | CLI only | Web UI (rclone) |
| Encryption | AES-256 | AES-256 | AES-256 | Crypt |
| Deduplication | Block-level | Chunk-level | Chunk-level | No |
| Cloud backends | 20+ | 20+ | Local/SSH | 40+ |
| Scheduling | Built-in | External (cron) | External (cron) | External (cron) |
| Platform | Win/Mac/Linux | Win/Mac/Linux | Mac/Linux | Win/Mac/Linux |
FAQ
Q: Is backup encryption secure? A: Yes. Duplicati uses AES-256 encryption — a military-grade standard. Keys are derived from your passphrase and never uploaded to the cloud. Even if the storage provider is breached, your data stays safe. Just make sure to store your passphrase securely — if you lose it, your backups are permanently unrecoverable.
Q: How fast are backups? A: The initial full backup depends on data volume and network bandwidth. Subsequent incremental backups only transfer changed blocks and usually finish within minutes. Run large backups during off-peak hours (e.g., overnight).
Q: Does it support backing up databases? A: Duplicati backs up at the filesystem level. For databases, dump first with pg_dump or mysqldump, then back up the exported files with Duplicati to ensure consistency.
Sources & Credits
- GitHub: duplicati/duplicati — 14.4K+ ⭐
- Website: duplicati.com