duplicacy-cli-cron

duplicacy-cli-cron

Docker app from geiserx's Repository

Overview

Duplicacy CLI with automated cron-scheduled backups to two independent S3-compatible storage endpoints for cross-site redundancy. Supports daily, weekly, and monthly backup schedules with parallel threading, Shoutrrr notifications, and configurable retention policies.

Alpine-based, multi-arch (amd64/arm64/armv7). Designed to back up Unraid shares to S3 storage (Garage, MinIO, Backblaze, etc.).

More info: https://github.com/GeiserX/duplicacy-cli-cron

duplicacy-cli-cron

Docker Hub version CI License Docker pulls GitHub stars

A Docker container that runs Duplicacy CLI backups on a cron schedule
to an S3-compatible storage with encryption, pruning, and notifications.


Features

  • S3-compatible storage -- Garage, MinIO, AWS S3, Backblaze B2, and any S3-compatible provider
  • Multi-repo from a single container -- one tiny daily wrapper per repository, with per-repo AES-256-GCM encryption passwords
  • Parallel uploads and staggered schedules -- DUPLICACY_THREADS per container, CRON_DAILY per server
  • Per-repo lock files -- automatic timeout kills stuck backups after MAX_RUNTIME_HOURS
  • Weekly exhaustive prune -- reclaims actual storage space by scanning all chunks
  • Monthly integrity check -- verifies every backup chunk in every repo and reports the result
  • Notifications -- Telegram by default, or any of the 20+ services Shoutrrr speaks (Discord, Slack, ntfy, Gotify, email...)
  • Multi-architecture, Alpine-based image -- amd64 and arm64
  • UnRAID and Linux support -- back up shares, boot USB, /etc, /home, crontabs, Tailscale state

Quick start

Edit docker-compose.yml (mounts, S3 endpoint, credentials, SHOUTRRR_URL) and config/config-s3.sh after cloning, then copy config-s3.sh into the host directory you mount at /config:

git clone https://github.com/GeiserX/duplicacy-cli-cron && cd duplicacy-cli-cron
mkdir -p /mnt/user/appdata/duplicacy/config && cp config/config-s3.sh /mnt/user/appdata/duplicacy/config/
docker compose up -d
docker exec duplicacy-cli-cron sh /config/config-s3.sh

Then add one daily wrapper script per repository, plus the weekly prune and monthly check. Getting started walks through every step.

Documentation

Related projects

duplicacy-container, duplicacy-exporter, duplicacy-ha, duplicacy-mcp, Duplicacy.

License

GPL-3.0-or-later

Categories

Download Statistics

11,070
Total Downloads

Related apps

Explore more like this

Explore all

Details

Repository
drumsergio/duplicacy-cli-cron:latest
Last Updated2026-09-02
First Seen2026-04-06

Runtime arguments

Network
bridge
Privileged
false

Template configuration

ConfigPathrw

Duplicacy configuration and scripts

Target
/config
Default
/mnt/user/appdata/duplicacy-cli-cron/config
Cron JobsPathrw

Cron job scripts (daily, weekly, monthly)

Target
/etc/periodic
Default
/mnt/user/appdata/duplicacy-cli-cron/periodic
Data to Back UpPathro

Source data directories to back up (read-only)

Target
/local_shares
Default
/mnt/user
Boot USBPathro

Unraid boot USB for backup (read-only, optional)

Target
/boot_usb
Default
/boot
Primary S3 EndpointVariable

Primary S3 endpoint URL

Target
ENDPOINT_1
Secondary S3 EndpointVariable

Secondary S3 endpoint URL for redundancy

Target
ENDPOINT_2
S3 BucketVariable

S3 bucket name

Target
BUCKET
S3 RegionVariable

S3 region identifier

Target
REGION
Default
garage
Daily ScheduleVariable

Cron expression for daily backups

Target
CRON_DAILY
Default
0 2 * * *
ThreadsVariable

Number of parallel upload threads

Target
DUPLICACY_THREADS
Default
4
Notification URLVariable

Shoutrrr notification URL for backup alerts

Target
SHOUTRRR_URL
TZVariable

Timezone

Default
America/New_York