Docker image to perform a rclone sync based on a cron schedule, with healthchecks.io monitoring.
rclone is a command line program to sync files and directories to and from:
rclone needs a configuration file where credentials to access different storage provider are kept.
By default, this image uses a file /config/rclone.conf
and a mounted volume may be used to keep that information persisted.
A first run of the container can help in the creation of the file, but feel free to manually create one.
$ mkdir config
$ docker run --rm -it -v $(pwd)/config:/config bcardiff/rclone
A few environment variables allow you to customize the behavior of the sync:
SYNC_SRC
source location for rclone sync
commandSYNC_DEST
destination location for rclone sync
commandCRON
crontab schedule 0 0 * * *
to perform sync every midnightCRON_ABORT
crontab schedule 0 6 * * *
to abort sync at 6amFORCE_SYNC
set variable to perform a sync upon bootCHECK_URL
healthchecks.io url or similar cron monitoring to perform a GET
after a successful syncSYNC_OPTS
additional options for rclone sync
command. Defaults to -v
TZ
set the timezone to use for the cron and log America/Argentina/Buenos_Aires
$ docker run --rm -it -v $(pwd)/config:/config -v /path/to/source:/source -e SYNC_SRC="/source" -e SYNC_DEST="dest:path" -e TZ="America/Argentina/Buenos_Aires" -e CRON="0 0 * * *" -e CRON_ABORT="0 6 * * *" -e FORCE_SYNC=1 -e CHECK_URL=https://hchk.io/hchk_uuid bcardiff/rclone
See rclone sync docs for source/dest syntax and additional options.