From 8714df6c7a12a5324b0346cee163a5ceee8d1f3a Mon Sep 17 00:00:00 2001 From: Ludovic Cartier Date: Wed, 27 May 2026 16:29:13 +0200 Subject: [PATCH] gitea - more fixes --- defaults/main.yml | 3 ++- templates/brain_backup.j2 | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index 9cd23ab..35132cc 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -24,4 +24,5 @@ backup_gitea_enabled: false backup_gitea_config: "/data/gitea/conf/app.ini" backup_gitea_docker_enabled: false backup_gitea_docker_container: "" -backup_gitea_docker_workdir: "" +backup_gitea_docker_workdir: "/backup" +backup_gitea_docker_host_temp_dir: "{{ backup_dir }}/temp" diff --git a/templates/brain_backup.j2 b/templates/brain_backup.j2 index c2e7acb..7095518 100644 --- a/templates/brain_backup.j2 +++ b/templates/brain_backup.j2 @@ -204,9 +204,11 @@ fi backup_gitea_config="{{ backup_gitea_config | default('/data/gitea/conf/app.ini') }}" backup_gitea_docker_enabled="{{ (backup_gitea_docker_enabled | default(false)) | ternary('true', 'false') }}" backup_gitea_docker_container="{{ backup_gitea_docker_container | default('') }}" -backup_gitea_docker_workdir="{{ backup_gitea_docker_workdir | default('') }}" +backup_gitea_docker_workdir="{{ backup_gitea_docker_workdir | default('/backup') }}" +backup_gitea_docker_host_temp_dir="{{ backup_gitea_docker_host_temp_dir | default(backup_dir ~ '/temp') }}" mkdir -p "$backup_dir/$today/gitea" +mkdir -p "$backup_dir/temp" if [ "$backup_gitea_docker_enabled" = "true" ]; then if [ -z "$backup_gitea_docker_container" ]; then @@ -214,11 +216,17 @@ if [ "$backup_gitea_docker_enabled" = "true" ]; then exit 1 fi - if [ -z "$backup_gitea_docker_workdir" ]; then - backup_gitea_docker_workdir="$backup_dir/$today/gitea" + mkdir -p "$backup_gitea_docker_host_temp_dir" + + /usr/bin/docker exec -u git -i -w "$backup_dir" $backup_gitea_docker_container" bash -c "/usr/local/bin/gitea dump -c \"$backup_gitea_config\" -q --type tar.gz" + + gitea_latest_dump=$(ls -1t "$backup_gitea_docker_host_temp_dir"/gitea-dump-*.tar.gz 2>/dev/null | head -n 1) + if [ -z "$gitea_latest_dump" ]; then + echo "Gitea dump completed but no dump file found in $backup_gitea_docker_host_temp_dir: exiting." + exit 1 fi - /usr/bin/docker exec -u git -i -w "$backup_gitea_docker_workdir" "$backup_gitea_docker_container" bash -c "/usr/local/bin/gitea dump -c \"$backup_gitea_config\" -q --type tar.gz" + mv "$gitea_latest_dump" "$backup_dir/$today/gitea/" else sudo su -s /bin/bash - git -c "cd $backup_dir/$today/gitea && /usr/local/bin/gitea dump -c \"$backup_gitea_config\" -q --type tar.gz" fi