azinchen/duplicacy

By azinchen

Updated 3 days ago

Automated backups with Docker and duplicacy, with backup rotation, email notifications

Image
16

1M+

Duplicacy

Docker pulls
Docker image size
GitHub release date
GitHub build
GitHub last commit

The Docker image azinchen/duplicacy is designed for automated backups by leveraging Duplicacy. As such, it supports:

  • A wide range of storage backends (S3, Backblaze B2, Hubic, Dropbox, SFTP, and more)
  • Client-side encryption
  • Deduplication
  • Multi-versioning
  • And all the other features available in Duplicacy

This image uses the Duplicacy Command Line version3.2.4.

Supported Architectures

The image is compatible with several architectures including amd64, x86, arm/v6, arm/v7, and arm64.

Running a Duplicacy Container

To start a standalone Duplicacy instance in Docker, you can run:

docker run \
  -v path_to_data:/data \
  -e BACKUP_CRON="0 1 * * *" \
  -e SNAPSHOT_ID="id" \
  -e STORAGE_URL="url" \
  azinchen/duplicacy

Configuring Environment Variables

The container is configured at runtime using environment variables. Below are the available settings:

Backup Settings
  • BACKUP_CRON: Specifies the schedule (in crontab format) for running the duplicacy backup command. Without this variable, the backup command will not execute.
  • BACKUP_OPTIONS: Defines additional options for the duplicacy backup command. For details, see the duplicacy backup documentation. Defaults are not applied.
  • BACKUP_END_CRON: Sets a schedule (in crontab format) for forcefully terminating the duplicacy backup process. If not set, no force kill is performed.
Prune Settings
  • PRUNE_CRON: Specifies the schedule (in crontab format) for executing the duplicacy prune command. This command runs only if the variable is set.
  • PRUNE_OPTIONS: Provides extra options for the duplicacy prune command. Refer to the duplicacy prune documentation for more details. Defaults are not applied.
  • PRUNE_KEEP_POLICIES: Sets the retention policies for pruning. Multiple policies can be specified by separating them with semicolons. For more details, see duplicacy prune documentation.
General Settings
  • GLOBAL_OPTIONS: Specifies global options for any duplicacy command. Check out the global options details for more information. No defaults are set.
  • RUN_JOB_IMMEDIATELY: When set to yes, the container will execute the duplicacy backup and/or duplicacy prune commands immediately upon startup. By default, jobs do not run immediately.
  • SNAPSHOT_ID: Provides the snapshot identifier as described in the duplicacy init command documentation here.
  • STORAGE_URL: Indicates the storage location URL, as required by the duplicacy init command documentation. Duplicacy supports various storage providers; see the supported storage backends for details. Login credentials for the storage should be set via environment variables as outlined in the credentials documentation.
  • JOB_RANDOM_DELAY: Sets a maximum delay (in seconds) before starting a job. By default, jobs start without delay.
  • FILTER_PATTERNS: Defines include/exclude patterns for filtering. Multiple patterns can be separated by semicolons. For more details, refer to the filter documentation.
  • DUPLICACY_PASSWORD: When provided, enables encryption for storage by setting the encryption password. See the duplicacy init command details here. Encryption is off by default.
Email Settings
  • EMAIL_HOSTNAME_ALIAS: Overrides the container's hostname in email reports.
  • EMAIL_FROM: Sets the sender's email address.
  • EMAIL_FROM_NAME: Sets the sender's name.
  • EMAIL_TO: Specifies the recipient's email address.
  • EMAIL_USE_TLS: Enables TLS encryption for the SMTP session.
  • EMAIL_SMTP_SERVER: Specifies the SMTP server address.
  • EMAIL_SMTP_SERVER_PORT: Defines the port for the SMTP server.
  • EMAIL_SMTP_LOGIN: Provides the SMTP server login.
  • EMAIL_SMTP_PASSWORD: Provides the SMTP server password.
  • EMAIL_LOG_LINES_IN_BODY: Determines the number of lines from the start and end of the log to include in the email report. The default is 10.
  • SEND_REPORT_LEVEL: Sets the minimum level of logs to trigger email reports. Options are all or error (default is all).
Time Zone Settings
  • TZ: Sets the container's time zone. Acceptable values can be found here. The default is UTC.

Disclaimer

This project utilizes the Duplicacy Command Line version, which is free for personal use. Commercial use requires a license purchase. For complete licensing terms, see here.

Reporting Issues

If you encounter any problems or have questions about this image, please open a GitHub issue or contact via email.


Docker Pull Command

docker pull azinchen/duplicacy