1
0

Gramps: configure backup again

This commit is contained in:
Anton Vakhrushev 2025-05-05 11:26:54 +03:00
parent c4b0200dc6
commit 8c8657fdd8
Signed by: av
GPG Key ID: F5BF52FC352E255A
3 changed files with 71 additions and 8 deletions

10
files/gramps/backup.sh.j2 Normal file
View File

@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -eu
set -o pipefail
echo "Gramps: backup data with gobackups"
(cd "{{ base_dir }}" && gobackup perform --config "{{ gobackup_config }}")
echo "Gramps: done."

View File

@ -0,0 +1,32 @@
# https://gobackup.github.io/configuration
models:
gramps:
compress_with:
type: 'tgz'
storages:
local:
type: 'local'
path: '{{ backups_dir }}'
keep: 3
databases:
users:
type: sqlite
path: "{{ (data_dir, 'gramps_users/users.sqlite') | path_join }}"
search_index:
type: sqlite
path: "{{ (data_dir, 'gramps_index/search_index.db') | path_join }}"
sqlite:
type: sqlite
path: "{{ (data_dir, 'gramps_db/59a0f3d6-1c3d-4410-8c1d-1c9c6689659f/sqlite.db') | path_join }}"
undo:
type: sqlite
path: "{{ (data_dir, 'gramps_db/59a0f3d6-1c3d-4410-8c1d-1c9c6689659f/undo.db') | path_join }}"
archive:
includes:
- "{{ data_dir }}"
excludes:
- "{{ (data_dir, 'gramps_cache') | path_join }}"
- "{{ (data_dir, 'gramps_thumb_cache') | path_join }}"
- "{{ (data_dir, 'gramps_tmp') | path_join }}"

View File

@ -8,27 +8,48 @@
vars: vars:
app_name: "gramps" app_name: "gramps"
base_dir: "/home/{{ primary_user }}/applications/{{ app_name }}/" app_user: "{{ primary_user }}"
base_dir: "/home/{{ primary_user }}/applications/{{ app_name }}"
data_dir: "{{ (base_dir, 'data') | path_join }}"
backups_dir: "{{ (base_dir, 'backups') | path_join }}"
gobackup_config: "{{ (base_dir, 'gobackup.yml') | path_join }}"
tasks: tasks:
- name: "Create application directories" - name: "Create application directories"
ansible.builtin.file: ansible.builtin.file:
path: "{{ item }}" path: "{{ item }}"
state: "directory" state: "directory"
owner: "{{ primary_user }}" owner: "{{ app_user }}"
group: "{{ primary_user }}" group: "{{ app_user }}"
mode: "0755" mode: "0750"
loop: loop:
- "{{ base_dir }}" - "{{ base_dir }}"
- '{{ (base_dir, "data") | path_join }}' - "{{ data_dir }}"
- "{{ backups_dir }}"
- name: "Copy gobackup config"
ansible.builtin.template:
src: "./files/{{ app_name }}/gobackup.yml.j2"
dest: "{{ gobackup_config }}"
owner: "{{ app_user }}"
group: "{{ app_user }}"
mode: "0640"
- name: "Copy backup script"
ansible.builtin.template:
src: "files/{{ app_name }}/backup.sh.j2"
dest: "{{ base_dir }}/backup.sh"
owner: "{{ app_user }}"
group: "{{ app_user }}"
mode: "0750"
- name: "Copy docker compose file" - name: "Copy docker compose file"
ansible.builtin.template: ansible.builtin.template:
src: "./files/{{ app_name }}/docker-compose.yml.j2" src: "./files/{{ app_name }}/docker-compose.yml.j2"
dest: "{{ base_dir }}/docker-compose.yml" dest: "{{ base_dir }}/docker-compose.yml"
owner: "{{ primary_user }}" owner: "{{ app_user }}"
group: "{{ primary_user }}" group: "{{ app_user }}"
mode: "0644" mode: "0640"
- name: "Run application with docker compose" - name: "Run application with docker compose"
community.docker.docker_compose_v2: community.docker.docker_compose_v2: