From 64b85c0c4065c0302aa52e3592a572d3ba86e6e9 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Fri, 18 Jul 2025 21:05:16 +0200 Subject: [PATCH] arr: Add restic backup --- roles/arr/defaults/main.yaml | 3 +++ roles/arr/templates/docker-compose.yaml.j2 | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/roles/arr/defaults/main.yaml b/roles/arr/defaults/main.yaml index e4a00e5..40af124 100644 --- a/roles/arr/defaults/main.yaml +++ b/roles/arr/defaults/main.yaml @@ -20,6 +20,9 @@ arrstack_puid: "{{ puid | default(1000) }}" arrstack_pgid: "{{ pgid | default(100) }}" arrstack_umask_set: "{{ umask_set | default('022') }}" +arrstack_restic_enable: true +arrstack_restic_cron: 0 30 2 * * * + arrstack_env_dir: /opt/arrstack arrstack_serve_dir: /srv arrstack_serve_dir_create: true diff --git a/roles/arr/templates/docker-compose.yaml.j2 b/roles/arr/templates/docker-compose.yaml.j2 index 0dce48d..df1d527 100644 --- a/roles/arr/templates/docker-compose.yaml.j2 +++ b/roles/arr/templates/docker-compose.yaml.j2 @@ -290,6 +290,26 @@ services: caddy: "{{ arrstack_gonic_subdomain }}" caddy.reverse_proxy: "{{ '{{' }}upstreams 80{{ '}}'}}" +{% if restic_enable is not undefined and not false and arrstack_restic_enable is not undefined and not false %} + backup: + image: mazzolino/restic + hostname: "{{ ansible_hostname }}" + environment: + TZ: "{{ restic_tz }}" + BACKUP_CRON: "{{ arrstack_restic_cron }}" + RESTIC_REPOSITORY: "{{ restic_repo }}" + RESTIC_PASSWORD: "{{ restic_pass }}" + AWS_ACCESS_KEY_ID: "{{ restic_s3_key }}" + AWS_SECRET_ACCESS_KEY: "{{ restic_s3_secret }}" + RESTIC_BACKUP_ARGS: >- + --tag arr + RESTIC_BACKUP_SOURCES: "/backup" + volumes: +{% if restic_repo is regex('^/.+') %} + - "{{ restic_repo }}:{{ restic_repo }}" +{% endif %} + - "{{ arrstack_env_dir }}:/backup/{{ arrstack_env_dir }}" +{% endif %} networks: caddy: