# vim: ft=yaml.ansible --- - name: Deploy Restic with Docker Compose community.docker.docker_compose: project_name: restic state: "{{ 'absent' if stop is defined and stop else 'present' }}" restarted: "{{ stop is undefined or not stop }}" pull: true definition: version: '3.8' services: backup: image: mazzolino/restic:{{ services.restic.version }} restart: always environment: RUN_ON_STARTUP: 'false' BACKUP_CRON: 0 0 3 * * * RESTIC_REPOSITORY: b2:{{ secrets.restic.b2.bucket }}:{{ services.restic.repo }} RESTIC_PASSWORD: "{{ secrets.restic.repo_pw }}" RESTIC_BACKUP_SOURCES: /mnt/volumes RESTIC_BACKUP_ARGS: >- --tag docker-volumes --exclude '*.tmp' --verbose RESTIC_FORGET_ARGS: >- --keep-last 10 --keep-daily 7 --keep-weekly 5 --keep-monthly 12 B2_ACCOUNT_ID: "{{ secrets.restic.b2.id }}" B2_ACCOUNT_KEY: "{{ secrets.restic.b2.key }}" TZ: "{{ timezone }}" volumes: "{{ backup_volumes }}" prune: image: mazzolino/restic:{{ services.restic.version }} restart: always environment: RUN_ON_STARTUP: 'false' PRUNE_CRON: 0 0 4 * * * RESTIC_REPOSITORY: b2:{{ secrets.restic.b2.bucket }}:{{ services.restic.repo }} RESTIC_PASSWORD: "{{ secrets.restic.repo_pw }}" RESTIC_PRUNE_ARGS: >- --verbose B2_ACCOUNT_ID: "{{ secrets.restic.b2.id }}" B2_ACCOUNT_KEY: "{{ secrets.restic.b2.key }}" TZ: "{{ timezone }}" check: image: mazzolino/restic:{{ services.restic.version }} restart: always environment: RUN_ON_STARTUP: 'false' CHECK_CRON: 0 0 5 * * * RESTIC_REPOSITORY: b2:{{ secrets.restic.b2.bucket }}:{{ services.restic.repo }} RESTIC_PASSWORD: "{{ secrets.restic.repo_pw }}" RESTIC_CHECK_ARGS: >- --verbose B2_ACCOUNT_ID: "{{ secrets.restic.b2.id }}" B2_ACCOUNT_KEY: "{{ secrets.restic.b2.key }}" TZ: "{{ timezone }}"