add backup option for gitea

This commit is contained in:
Ludovic Cartier
2026-05-27 15:45:15 +02:00
parent e8507097b1
commit 252dbb8a98
3 changed files with 47 additions and 0 deletions
+12
View File
@@ -18,6 +18,7 @@ The custom script :
- can dump MySQL database(s), including routines/events/triggers - can dump MySQL database(s), including routines/events/triggers
- can dump MariaDB database(s), including routines/events/triggers - can dump MariaDB database(s), including routines/events/triggers
- can dump PostgreSQL database(s) - can dump PostgreSQL database(s)
- can dump Gitea data
All files are then send it to a custom Proxmox Backup Server. All files are then send it to a custom Proxmox Backup Server.
@@ -57,6 +58,11 @@ Role variables
| backup_pg_password | string | | | optional | | backup_pg_password | string | | | optional |
| backup_pg_docker_enabled | boolean | | false | run postgresql in docker | | backup_pg_docker_enabled | boolean | | false | run postgresql in docker |
| backup_pg_docker_container| string | | | required if docker enabled | | backup_pg_docker_container| string | | | required if docker enabled |
| backup_gitea_enabled | boolean | | false | enable gitea dump |
| backup_gitea_config | string | | /data/gitea/conf/app.ini | gitea app.ini path |
| backup_gitea_docker_enabled | boolean | | false | run gitea dump in docker |
| backup_gitea_docker_container | string | | | required if docker enabled |
| backup_gitea_docker_workdir | string | | | optional container workdir |
| backup_cron_minute | int | | | | | backup_cron_minute | int | | | |
| backup_cron_hour | int | | | | | backup_cron_hour | int | | | |
@@ -120,6 +126,12 @@ backup_pg_password: ''
backup_pg_docker_enabled: false backup_pg_docker_enabled: false
backup_pg_docker_container: '' backup_pg_docker_container: ''
backup_gitea_enabled: true
backup_gitea_config: '/data/gitea/conf/app.ini'
backup_gitea_docker_enabled: true
backup_gitea_docker_container: 'gitea'
backup_gitea_docker_workdir: '/backup/today/gitea'
backup_cron_minute: 30 backup_cron_minute: 30
backup_cron_hour: 5 backup_cron_hour: 5
``` ```
+6
View File
@@ -19,3 +19,9 @@ backup_pg_user: ""
backup_pg_password: "" backup_pg_password: ""
backup_pg_docker_enabled: false backup_pg_docker_enabled: false
backup_pg_docker_container: "" backup_pg_docker_container: ""
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: ""
+29
View File
@@ -199,6 +199,32 @@ fi
## end of postresql ## ## end of postresql ##
{% endif %} {% endif %}
{% if backup_gitea_enabled is sameas true %}
## gitea ##
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('') }}"
mkdir -p "$backup_dir/$today/gitea"
if [ "$backup_gitea_docker_enabled" = "true" ]; then
if [ -z "$backup_gitea_docker_container" ]; then
echo "Gitea Docker mode enabled but container name is empty: exiting."
exit 1
fi
if [ -z "$backup_gitea_docker_workdir" ]; then
backup_gitea_docker_workdir="$backup_dir/$today/gitea"
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"
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
## end of gitea ##
{% endif %}
# purge old backups # purge old backups
find $backup_dir -type d -ctime +$backup_local_retention -exec rm -rf {} \; find $backup_dir -type d -ctime +$backup_local_retention -exec rm -rf {} \;
@@ -228,6 +254,9 @@ mysql.pxar:$backup_dir/$today/mysql \
{% if backup_mariadb_enabled is sameas true %} {% if backup_mariadb_enabled is sameas true %}
mariadb.pxar:$backup_dir/$today/mariadb \ mariadb.pxar:$backup_dir/$today/mariadb \
{% endif %} {% endif %}
{% if backup_gitea_enabled is sameas true %}
gitea.pxar:$backup_dir/$today/gitea \
{% endif %}
--rate ${PBS_RATE} --rate ${PBS_RATE}
## end of send to PBS ## ## end of send to PBS ##