From ddae18f8b3dae2adc15a052c5c48695cebe2641d Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Mon, 5 May 2025 11:39:06 +0300 Subject: [PATCH] Gitea: configure backups again --- files/gitea/backup.sh.j2 | 21 +++++++++++++++++++++ files/gitea/docker-compose.yml.j2 | 4 ++-- files/gitea/gitea-dump.sh.j2 | 13 ------------- playbook-gitea.yml | 13 +++++++------ 4 files changed, 30 insertions(+), 21 deletions(-) create mode 100644 files/gitea/backup.sh.j2 delete mode 100644 files/gitea/gitea-dump.sh.j2 diff --git a/files/gitea/backup.sh.j2 b/files/gitea/backup.sh.j2 new file mode 100644 index 0000000..7f14a47 --- /dev/null +++ b/files/gitea/backup.sh.j2 @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +set -eu +set -o pipefail + +echo "Gitea: backup data with gitea dump" + +(cd "{{ base_dir }}" && \ + docker compose exec \ + -u "{{ user_create_result.uid }}:{{ user_create_result.group }}" \ + -w /backups gitea_app \ + gitea dump -c /data/gitea/conf/app.ini \ +) + + +echo "Gitea: remove old backups" + +keep-files.py "{{ backups_dir }}" --keep 3 + + +echo "Gitea: done." diff --git a/files/gitea/docker-compose.yml.j2 b/files/gitea/docker-compose.yml.j2 index d0131a5..cdbb802 100644 --- a/files/gitea/docker-compose.yml.j2 +++ b/files/gitea/docker-compose.yml.j2 @@ -8,8 +8,8 @@ services: - "127.0.0.1:{{ gitea_port }}:3000" - "2222:22" volumes: - - ./data:/data - - ./backups:/backups + - {{ data_dir }}:/data + - {{ backups_dir }}:/backups - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro environment: diff --git a/files/gitea/gitea-dump.sh.j2 b/files/gitea/gitea-dump.sh.j2 deleted file mode 100644 index e4a5b38..0000000 --- a/files/gitea/gitea-dump.sh.j2 +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -eu -set -o pipefail - -echo "Gitea: backup data with gitea dump" - -(cd {{ base_dir }} && docker compose exec -u "{{ user_create_result.uid }}:{{ user_create_result.group }}" -w /backups gitea_app gitea dump -c /data/gitea/conf/app.ini) - - -echo "Gitea: remove old backups" - -keep-files.py {{ backups_dir }} --keep 2 diff --git a/playbook-gitea.yml b/playbook-gitea.yml index 58e382f..c916573 100644 --- a/playbook-gitea.yml +++ b/playbook-gitea.yml @@ -10,6 +10,7 @@ app_name: "gitea" app_user: "{{ app_name }}" base_dir: "/home/{{ app_name }}" + data_dir: "{{ (base_dir, 'data') | path_join }}" backups_dir: "{{ (base_dir, 'backups') | path_join }}" tasks: @@ -36,15 +37,15 @@ state: "directory" owner: "{{ app_user }}" group: "{{ app_user }}" - mode: "0775" + mode: "0770" loop: - - "{{ (base_dir, 'data') | path_join }}" + - "{{ data_dir }}" - "{{ backups_dir }}" - - name: "Copy gitea-dump script" + - name: "Copy backup script" ansible.builtin.template: - src: "files/{{ app_name }}/gitea-dump.sh.j2" - dest: "{{ base_dir }}/gitea-dump.sh" + src: "files/{{ app_name }}/backup.sh.j2" + dest: "{{ base_dir }}/backup.sh" owner: "{{ app_user }}" group: "{{ app_user }}" mode: "0750" @@ -55,7 +56,7 @@ dest: "{{ base_dir }}/docker-compose.yml" owner: "{{ app_user }}" group: "{{ app_user }}" - mode: "0644" + mode: "0640" - name: "Run application with docker compose" community.docker.docker_compose_v2: