From 557f20d7b40193260800f294e488ea636015892e Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Mon, 3 Feb 2025 18:58:12 +0100 Subject: [PATCH] feat(shaarli): Add backups Add restic backup functionality for shaarli data. --- roles/shaarli/defaults/main.yml | 4 ++++ roles/shaarli/templates/docker-stack.yml.j2 | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/roles/shaarli/defaults/main.yml b/roles/shaarli/defaults/main.yml index a654c5f..45f1bef 100644 --- a/roles/shaarli/defaults/main.yml +++ b/roles/shaarli/defaults/main.yml @@ -7,3 +7,7 @@ shaarli_use_https: true # the subdomain link shaarli will be reachable under subdomain_alias: links + +# should we back up the data? +shaarli_backup_enable: true +shaarli_backup_cron: 0 45 3 * * * diff --git a/roles/shaarli/templates/docker-stack.yml.j2 b/roles/shaarli/templates/docker-stack.yml.j2 index 545d20e..a90157a 100644 --- a/roles/shaarli/templates/docker-stack.yml.j2 +++ b/roles/shaarli/templates/docker-stack.yml.j2 @@ -15,6 +15,23 @@ services: - data:/var/www/shaarli/data - cache:/var/www/shaarli/cache +{% if backup_enable is not undefined and not false and shaarli_backup_enable is not undefined and not false %} + backup: + image: mazzolino/restic + environment: + - "TZ={{ restic_timezone }}" + # go-cron starts w seconds + - "BACKUP_CRON={{ shaarli_backup_cron }}" + - "RESTIC_REPOSITORY={{ restic_repo }}" + - "AWS_ACCESS_KEY_ID={{ restic_s3_key }}" + - "AWS_SECRET_ACCESS_KEY={{ restic_s3_secret }}" + - "RESTIC_PASSWORD={{ restic_pass }}" + - "RESTIC_BACKUP_TAGS=shaarli" + - "RESTIC_BACKUP_SOURCES=/volumes" + volumes: + - data:/volumes/shaarli_data:ro +{% endif %} + volumes: data: cache: