1
0

Gramps: refactor app

Move scripts, configs and data to separate user space
This commit is contained in:
Anton Vakhrushev 2025-05-06 10:25:38 +03:00
parent 93326907d2
commit 527067146f
Signed by: av
GPG Key ID: F5BF52FC352E255A
4 changed files with 30 additions and 14 deletions

View File

@ -15,12 +15,12 @@ su --login outline --command '/home/outline/backup.sh'
echo "Backup: perform gramps backup"
su --login {{ primary_user }} --command '/home/{{ primary_user }}/applications/gramps/backup.sh'
su --login gramps --command '/home/gramps/backup.sh'
echo "Backup: send backups to remote storage with retic"
restic-shell.sh backup --verbose /home/gitea/backups /home/outline/backups /home/major/applications/gramps/backups \
restic-shell.sh backup --verbose /home/gitea/backups /home/outline/backups /home/gramps/backups \
&& restic-shell.sh check \
&& restic-shell.sh forget --compact --prune --keep-daily 90 --keep-monthly 36 \
&& restic-shell.sh check

View File

@ -32,13 +32,13 @@ services:
AWS_SECRET_ACCESS_KEY: "{{ gramps_s3_secret_access_key }}"
AWS_DEFAULT_REGION: "{{ gramps_s3_region }}"
volumes:
- ./data/gramps_users:/app/users # persist user database
- ./data/gramps_index:/app/indexdir # persist search index
- ./data/gramps_thumb_cache:/app/thumbnail_cache # persist thumbnails
- ./data/gramps_cache:/app/cache # persist export and report caches
- ./data/gramps_secret:/app/secret # persist flask secret
- ./data/gramps_db:/root/.gramps/grampsdb # persist Gramps database
- ./data/gramps_media:/app/media # persist media files
- "{{ (data_dir, 'gramps_db') | path_join }}:/root/.gramps/grampsdb" # persist Gramps database
- "{{ (data_dir, 'gramps_users') | path_join }}:/app/users" # persist user database
- "{{ (data_dir, 'gramps_index') | path_join }}:/app/indexdir" # persist search index
- "{{ (data_dir, 'gramps_thumb_cache') | path_join }}:/app/thumbnail_cache" # persist thumbnails
- "{{ (data_dir, 'gramps_cache') | path_join }}:/app/cache" # persist export and report caches
- "{{ (data_dir, 'gramps_secret') | path_join }}:/app/secret" # persist flask secret
- "{{ (data_dir, 'gramps_media') | path_join }}:/app/media" # persist media files
gramps_celery:
<<: *gramps_app # YAML merge key copying the entire grampsweb service config

View File

@ -9,7 +9,7 @@
vars:
app_name: "gitea"
app_user: "{{ app_name }}"
base_dir: "/home/{{ app_name }}"
base_dir: "/home/{{ app_user }}"
data_dir: "{{ (base_dir, 'data') | path_join }}"
backups_dir: "{{ (base_dir, 'backups') | path_join }}"

View File

@ -8,14 +8,31 @@
vars:
app_name: "gramps"
app_user: "{{ primary_user }}"
base_dir: "/home/{{ primary_user }}/applications/{{ app_name }}"
app_user: "{{ app_name }}"
base_dir: "/home/{{ app_user }}"
data_dir: "{{ (base_dir, 'data') | path_join }}"
backups_dir: "{{ (base_dir, 'backups') | path_join }}"
gobackup_config: "{{ (base_dir, 'gobackup.yml') | path_join }}"
tasks:
- name: "Create application directories"
- name: "Create user and environment"
ansible.builtin.import_role:
name: owner
vars:
owner_name: "{{ app_user }}"
owner_extra_groups:
- "docker"
owner_ssh_keys:
- "{{ lookup('file', 'files/av_id_rsa.pub') }}"
owner_env:
PROJECT_NAME: "{{ app_name }}"
DOCKER_PREFIX: "{{ app_name }}"
IMAGE_PREFIX: "{{ app_name }}"
CONTAINER_PREFIX: "{{ app_name }}"
USER_UID: "{{ user_create_result.uid }}"
USER_GID: "{{ user_create_result.group }}"
- name: "Create application internal directories"
ansible.builtin.file:
path: "{{ item }}"
state: "directory"
@ -23,7 +40,6 @@
group: "{{ app_user }}"
mode: "0750"
loop:
- "{{ base_dir }}"
- "{{ data_dir }}"
- "{{ backups_dir }}"