velouria/restic/docker-compose.yml

67 lines
1.9 KiB
YAML

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: {}