2023-12-29 18:07:08 +00:00
|
|
|
{# code: language=ansible-jinja #}
|
2023-12-23 16:52:27 +00:00
|
|
|
# THIS FILE IS MANAGED BY ANSIBLE
|
|
|
|
|
2023-11-03 22:38:15 +00:00
|
|
|
version: "3.8"
|
|
|
|
|
|
|
|
services:
|
|
|
|
backup:
|
|
|
|
image: mazzolino/restic:{{ apps_vars.restic.version }}
|
|
|
|
restart: always
|
|
|
|
environment:
|
|
|
|
RUN_ON_STARTUP: false
|
|
|
|
BACKUP_CRON: 0 0 3 * * *
|
2023-11-03 23:38:08 +00:00
|
|
|
RESTIC_REPOSITORY: b2:{{ restic.b2.bucket }}:{{ restic.repo.path }}
|
|
|
|
RESTIC_PASSWORD: {{ restic.repo.password }}
|
2023-11-03 22:38:15 +00:00
|
|
|
RESTIC_BACKUP_SOURCES: /mnt/volumes
|
|
|
|
RESTIC_BACKUP_ARGS: >-
|
2023-11-05 17:27:49 +00:00
|
|
|
--tag data-volumes
|
2023-11-03 22:38:15 +00:00
|
|
|
--exclude '*.tmp'
|
|
|
|
--verbose
|
|
|
|
RESTIC_FORGET_ARGS: >-
|
|
|
|
--keep-last 10
|
|
|
|
--keep-daily 7
|
|
|
|
--keep-weekly 5
|
|
|
|
--keep-monthly 12
|
2023-11-11 13:57:30 +00:00
|
|
|
{% if 'nextcloud' in apps_backup %}
|
2023-11-03 22:38:15 +00:00
|
|
|
PRE_COMMANDS: |-
|
2023-11-05 17:27:49 +00:00
|
|
|
docker compose -f {{ apps_data_root }}/nextcloud/docker-compose.yml exec -u www-data app php occ maintenance:mode --on
|
2023-11-03 22:38:15 +00:00
|
|
|
POST_COMMANDS_EXIT: |-
|
2023-11-05 17:27:49 +00:00
|
|
|
docker compose -f {{ apps_data_root }}/nextcloud/docker-compose.yml exec -u www-data app php occ maintenance:mode --off
|
2023-11-11 13:57:30 +00:00
|
|
|
{% endif %}
|
2023-11-03 22:38:15 +00:00
|
|
|
B2_ACCOUNT_ID: {{ restic.b2.id }}
|
|
|
|
B2_ACCOUNT_KEY: {{ restic.b2.key }}
|
|
|
|
TZ: {{ timezone }}
|
|
|
|
volumes:
|
2023-11-05 17:27:49 +00:00
|
|
|
- "/var/run/docker.sock:/var/run/docker.sock:rw"
|
|
|
|
- "/usr/libexec/docker/cli-plugins/docker-compose:/usr/libexec/docker/cli-plugins/docker-compose:ro"
|
2023-12-28 16:19:51 +00:00
|
|
|
{% for app in apps_backup|sort %}
|
2023-11-05 17:27:49 +00:00
|
|
|
- "{{ apps_data_root }}/{{ app }}/data:/mnt/volumes/{{ app }}:ro"
|
|
|
|
{% endfor %}
|
2023-11-03 22:38:15 +00:00
|
|
|
|
|
|
|
prune:
|
|
|
|
image: mazzolino/restic:{{ apps_vars.restic.version }}
|
|
|
|
restart: always
|
|
|
|
environment:
|
|
|
|
RUN_ON_STARTUP: false
|
|
|
|
PRUNE_CRON: 0 0 4 * * *
|
2023-11-03 23:38:08 +00:00
|
|
|
RESTIC_REPOSITORY: b2:{{ restic.b2.bucket }}:{{ restic.repo.path }}
|
|
|
|
RESTIC_PASSWORD: {{ restic.repo.password }}
|
2023-11-03 22:38:15 +00:00
|
|
|
RESTIC_PRUNE_ARGS: >-
|
|
|
|
--verbose
|
|
|
|
B2_ACCOUNT_ID: {{ restic.b2.id }}
|
|
|
|
B2_ACCOUNT_KEY: {{ restic.b2.key }}
|
|
|
|
TZ: {{ timezone }}
|
|
|
|
|
|
|
|
check:
|
|
|
|
image: mazzolino/restic:{{ apps_vars.restic.version }}
|
|
|
|
restart: always
|
|
|
|
environment:
|
|
|
|
RUN_ON_STARTUP: false
|
|
|
|
CHECK_CRON: 0 0 5 * * *
|
2023-11-03 23:38:08 +00:00
|
|
|
RESTIC_REPOSITORY: b2:{{ restic.b2.bucket }}:{{ restic.repo.path }}
|
|
|
|
RESTIC_PASSWORD: {{ restic.repo.password }}
|
2023-11-03 22:38:15 +00:00
|
|
|
RESTIC_CHECK_ARGS: >-
|
|
|
|
--verbose
|
|
|
|
B2_ACCOUNT_ID: {{ restic.b2.id }}
|
|
|
|
B2_ACCOUNT_KEY: {{ restic.b2.key }}
|
|
|
|
TZ: {{ timezone }}
|