docker.recipes

Duplicati

beginner

Free backup software with encryption.

Overview

Duplicati is a free, open-source backup client that enables automated, encrypted backups to over 20 cloud storage backends including Amazon S3, Google Drive, Microsoft OneDrive, Backblaze B2, and SFTP servers. Originally developed in 2008, Duplicati has evolved into a comprehensive backup solution that combines strong AES-256 encryption with incremental backups, deduplication, and compression to minimize storage costs while maintaining security. The software features a user-friendly web interface that makes it accessible to non-technical users while providing advanced features for power users. This Docker deployment packages Duplicati in a lightweight container that can protect any data mounted into the container, whether it's personal files, application data, or entire system configurations. The containerized approach isolates the backup process from the host system while maintaining access to source data through bind mounts. Duplicati's incremental backup engine only transfers changed blocks, dramatically reducing bandwidth usage and backup windows compared to full backups. This setup is ideal for homelab enthusiasts, small businesses, and individuals who need reliable, encrypted backups without the complexity of enterprise solutions. Unlike command-line tools like Restic or Borg, Duplicati provides an intuitive web interface for configuring backup jobs, monitoring progress, and restoring files. The wide range of supported backends means users can leverage existing cloud storage subscriptions or mix multiple destinations for redundancy.

Key Features

  • AES-256 encryption with user-controlled passphrases protects data at rest and in transit
  • Incremental backups with block-level deduplication minimize storage usage and transfer time
  • Support for 20+ cloud backends including S3, Google Drive, OneDrive, Dropbox, and SFTP
  • Web-based interface accessible at port 8200 for easy configuration and monitoring
  • Flexible scheduling engine with cron-like expressions for automated backup windows
  • Built-in compression using ZIP or 7Z formats to reduce backup size
  • Email notification system for backup success, failure, and warning alerts
  • File versioning with configurable retention policies to manage storage costs

Common Use Cases

  • 1Homelab server backup to cloud storage with automated scheduling and monitoring
  • 2Personal file backup from NAS or desktop systems to multiple cloud providers
  • 3Small business data protection with encrypted backups to cost-effective cloud storage
  • 4Docker volume and configuration backup for containerized application recovery
  • 5Media library backup with compression to minimize cloud storage costs
  • 6Cross-platform backup solution for mixed Windows, Linux, and macOS environments
  • 7Compliance-focused backup with strong encryption for sensitive business data

Prerequisites

  • Minimum 512MB RAM available for Duplicati container operations
  • Port 8200 available for web interface access
  • Valid cloud storage account (S3, Google Drive, etc.) or SFTP server for backup destination
  • Source data directories properly mounted with appropriate read permissions
  • Sufficient disk space for temporary files during backup operations (typically 10% of source data size)
  • Basic understanding of backup retention policies and encryption key management

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 duplicati:
3 image: linuxserver/duplicati:latest
4 container_name: duplicati
5 restart: unless-stopped
6 environment:
7 PUID: 1000
8 PGID: 1000
9 TZ: UTC
10 volumes:
11 - duplicati_config:/config
12 - /path/to/backups:/backups
13 - /path/to/source:/source:ro
14 ports:
15 - "8200:8200"
16
17volumes:
18 duplicati_config:

.env Template

.env
1# Configure your backup source and destination

Usage Notes

  1. 1Docs: https://docs.linuxserver.io/images/docker-duplicati/
  2. 2Access at http://localhost:8200
  3. 3Supports 20+ backends: S3, B2, Google Drive, OneDrive, SFTP, etc.
  4. 4AES-256 encryption at rest - set strong passphrase
  5. 5Incremental and deduplicated backups save storage
  6. 6Schedule backups and configure retention policies

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 duplicati:
5 image: linuxserver/duplicati:latest
6 container_name: duplicati
7 restart: unless-stopped
8 environment:
9 PUID: 1000
10 PGID: 1000
11 TZ: UTC
12 volumes:
13 - duplicati_config:/config
14 - /path/to/backups:/backups
15 - /path/to/source:/source:ro
16 ports:
17 - "8200:8200"
18
19volumes:
20 duplicati_config:
21EOF
22
23# 2. Create the .env file
24cat > .env << 'EOF'
25# Configure your backup source and destination
26EOF
27
28# 3. Start the services
29docker compose up -d
30
31# 4. View logs
32docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/duplicati/run | bash

Troubleshooting

  • Database corruption errors after container restart: Stop container, delete corrupted database files in config volume, restart and reconfigure backup jobs
  • Backup fails with 'Access Denied' errors: Verify PUID/PGID environment variables match source file ownership and container has read access to mounted directories
  • Web interface shows 'Unable to connect to server': Check that port 8200 is properly exposed and not blocked by firewall, verify container is running and healthy
  • Cloud backend authentication failures: Regenerate API keys or OAuth tokens, ensure clock synchronization between container and cloud service
  • High memory usage during large backups: Increase container memory limits and reduce block size in advanced backup options to 1MB or smaller
  • Backup verification fails with hash mismatches: Check for storage corruption at destination, run database repair utility, and verify network stability during transfers

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space