docker.recipes

Duplicati Backup

beginner

Duplicati for encrypted cloud backups.

Overview

Duplicati is a free, open-source backup client designed to store encrypted, incremental, and compressed backups on cloud storage services and remote file servers. Originally developed to address the need for secure, cross-platform backup solutions, Duplicati employs AES-256 encryption to ensure that backup data remains protected both in transit and at rest, making it particularly valuable for organizations and individuals who need to maintain data privacy when using third-party cloud storage providers. The software supports over 20 cloud backends including Amazon S3, Google Drive, Dropbox, OneDrive, and many others, while providing advanced features like deduplication and compression to minimize storage costs. This Docker deployment creates a web-accessible Duplicati instance that can backup local directories to various cloud storage destinations through an intuitive browser-based interface. The containerized setup maps local directories as read-only source volumes while maintaining persistent configuration storage, enabling users to create and manage multiple backup jobs from a centralized location. The configuration supports flexible path mapping, allowing administrators to backup multiple directories across the host system while maintaining proper access controls and isolation. This setup is ideal for system administrators managing server backups, home lab enthusiasts protecting personal data, and small businesses requiring reliable automated backup solutions without the complexity of enterprise backup software. Duplicati's web interface makes it accessible to non-technical users while providing advanced scheduling and notification features that satisfy technical requirements for automated backup workflows.

Key Features

  • AES-256 client-side encryption with user-controlled encryption keys
  • Support for 20+ cloud storage backends including S3, Google Drive, and Dropbox
  • Incremental backup with block-level deduplication to minimize storage usage
  • Web-based interface accessible from any browser for remote management
  • Advanced scheduling with cron-like expressions and backup verification
  • Email notifications for backup completion, warnings, and errors
  • Built-in backup testing and restoration verification capabilities
  • Compression algorithms including ZIP, 7z, and LZMA2 for space efficiency

Common Use Cases

  • 1Home server and NAS backup to cloud storage with encryption
  • 2Small business document and database backup automation
  • 3Personal computer backup for remote workers and digital nomads
  • 4Development server backup with scheduled commits to cloud repositories
  • 5Media server backup for protecting large video and photo collections
  • 6Website and application data backup with MySQL/PostgreSQL integration
  • 7Multi-site backup coordination through centralized Duplicati instances

Prerequisites

  • Minimum 512MB RAM for optimal performance with large backup sets
  • Port 8200 available for web interface access
  • Cloud storage account credentials (AWS S3, Google Drive, etc.)
  • Source directories with appropriate read permissions for backup
  • Sufficient disk space for temporary files during backup processing
  • Basic understanding of backup retention policies and scheduling

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: lscr.io/linuxserver/duplicati:latest
4 container_name: duplicati
5 restart: unless-stopped
6 ports:
7 - "${DUPLICATI_PORT:-8200}:8200"
8 environment:
9 - PUID=${PUID:-1000}
10 - PGID=${PGID:-1000}
11 - TZ=${TZ:-UTC}
12 volumes:
13 - duplicati_config:/config
14 - ${BACKUPS_PATH:-./backups}:/backups
15 - ${SOURCE_PATH:-./source}:/source:ro
16 networks:
17 - duplicati-network
18
19volumes:
20 duplicati_config:
21
22networks:
23 duplicati-network:
24 driver: bridge

.env Template

.env
1# Duplicati
2DUPLICATI_PORT=8200
3PUID=1000
4PGID=1000
5TZ=UTC
6BACKUPS_PATH=./backups
7SOURCE_PATH=./source

Usage Notes

  1. 1Duplicati at http://localhost:8200
  2. 2Create backup jobs in UI
  3. 3Supports many cloud providers
  4. 4Client-side encryption

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 duplicati:
5 image: lscr.io/linuxserver/duplicati:latest
6 container_name: duplicati
7 restart: unless-stopped
8 ports:
9 - "${DUPLICATI_PORT:-8200}:8200"
10 environment:
11 - PUID=${PUID:-1000}
12 - PGID=${PGID:-1000}
13 - TZ=${TZ:-UTC}
14 volumes:
15 - duplicati_config:/config
16 - ${BACKUPS_PATH:-./backups}:/backups
17 - ${SOURCE_PATH:-./source}:/source:ro
18 networks:
19 - duplicati-network
20
21volumes:
22 duplicati_config:
23
24networks:
25 duplicati-network:
26 driver: bridge
27EOF
28
29# 2. Create the .env file
30cat > .env << 'EOF'
31# Duplicati
32DUPLICATI_PORT=8200
33PUID=1000
34PGID=1000
35TZ=UTC
36BACKUPS_PATH=./backups
37SOURCE_PATH=./source
38EOF
39
40# 3. Start the services
41docker compose up -d
42
43# 4. View logs
44docker 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-backup/run | bash

Troubleshooting

  • Database locked error: Stop all running backup jobs and restart the Duplicati container to release file locks
  • Out of memory during large file backup: Increase container memory limits and adjust block size settings in backup configuration
  • Cloud storage authentication failed: Verify API credentials and check if storage provider requires application-specific passwords
  • Backup verification failures: Check source file permissions and ensure no files are being modified during backup execution
  • Slow backup performance: Enable multi-threading in advanced options and adjust compression settings for better speed/size balance
  • Web interface not accessible: Verify port mapping and check if firewall rules are blocking access to port 8200

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