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" 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" 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 check \
&& restic-shell.sh forget --compact --prune --keep-daily 90 --keep-monthly 36 \ && restic-shell.sh forget --compact --prune --keep-daily 90 --keep-monthly 36 \
&& restic-shell.sh check && restic-shell.sh check

View File

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

View File

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

View File

@ -8,14 +8,31 @@
vars: vars:
app_name: "gramps" app_name: "gramps"
app_user: "{{ primary_user }}" app_user: "{{ app_name }}"
base_dir: "/home/{{ primary_user }}/applications/{{ app_name }}" base_dir: "/home/{{ app_user }}"
data_dir: "{{ (base_dir, 'data') | path_join }}" data_dir: "{{ (base_dir, 'data') | path_join }}"
backups_dir: "{{ (base_dir, 'backups') | path_join }}" backups_dir: "{{ (base_dir, 'backups') | path_join }}"
gobackup_config: "{{ (base_dir, 'gobackup.yml') | path_join }}" gobackup_config: "{{ (base_dir, 'gobackup.yml') | path_join }}"
tasks: 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: ansible.builtin.file:
path: "{{ item }}" path: "{{ item }}"
state: "directory" state: "directory"
@ -23,7 +40,6 @@
group: "{{ app_user }}" group: "{{ app_user }}"
mode: "0750" mode: "0750"
loop: loop:
- "{{ base_dir }}"
- "{{ data_dir }}" - "{{ data_dir }}"
- "{{ backups_dir }}" - "{{ backups_dir }}"