version: '3' services: backup: image: mazzolino/restic:1.7.1 container_name: restic-backup restart: unless-stopped networks: - private hostname: docker volumes: - ${HOME}/services:/source/services:ro - /mnt/nextcloud_data:/mnt/nextcloud_data:ro - /mnt/photoprism_data:/mnt/photoprism_data:ro - /mnt/photoprism_import_data:/mnt/photoprism_import_data:ro - /etc:/source/etc:ro environment: RUN_ON_STARTUP: 'true' BACKUP_CRON: '0 30 3 * * *' # backups run every day at 03:30 RESTIC_PASSWORD: ${RESTIC_PASSWORD} RESTIC_REPOSITORY: ${B2_BUCKET} RESTIC_BACKUP_SOURCES: /source RESTIC_BACKUP_ARGS: >- --tag docker-volumes --verbose RESTIC_FORGET_ARGS: >- --keep-last 10 --keep-daily 7 --keep-weekly 5 --keep-monthly 12 B2_ACCOUNT_ID: ${B2_ACCOUNT_ID} B2_ACCOUNT_KEY: ${B2_ACCOUNT_KEY} TZ: ${RESTIC_TIMEZONE} prune: image: mazzolino/restic:1.7.1 container_name: restic-prune restart: unless-stopped hostname: docker environment: RUN_ON_STARTUP: 'false' PRUNE_CRON: '0 0 4 * * *' # prune runs every day at 04:00 RESTIC_REPOSITORY: ${B2_BUCKET} RESTIC_PASSWORD: ${RESTIC_PASSWORD} B2_ACCOUNT_ID: ${B2_ACCOUNT_ID} B2_ACCOUNT_KEY: ${B2_ACCOUNT_KEY} TZ: ${RESTIC_TIMEZONE} check: image: mazzolino/restic:1.7.1 container_name: restic-check restart: unless-stopped hostname: docker environment: RUN_ON_STARTUP: 'false' CHECK_CRON: '0 30 4 * * *' # check runs every day at 04:30 RESTIC_CHECK_ARGS: >- --read-data-subset=10% RESTIC_REPOSITORY: ${B2_BUCKET} RESTIC_PASSWORD: ${RESTIC_PASSWORD} B2_ACCOUNT_ID: ${B2_ACCOUNT_ID} B2_ACCOUNT_KEY: ${B2_ACCOUNT_KEY} TZ: ${RESTIC_TIMEZONE} networks: private: {}