You've already forked proxmox-backup
add backup option for gitea
This commit is contained in:
@@ -18,6 +18,7 @@ The custom script :
|
||||
- can dump MySQL database(s), including routines/events/triggers
|
||||
- can dump MariaDB database(s), including routines/events/triggers
|
||||
- can dump PostgreSQL database(s)
|
||||
- can dump Gitea data
|
||||
|
||||
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_docker_enabled | boolean | | false | run postgresql in docker |
|
||||
| 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_hour | int | | | |
|
||||
|
||||
@@ -120,6 +126,12 @@ backup_pg_password: ''
|
||||
backup_pg_docker_enabled: false
|
||||
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_hour: 5
|
||||
```
|
||||
|
||||
@@ -19,3 +19,9 @@ backup_pg_user: ""
|
||||
backup_pg_password: ""
|
||||
backup_pg_docker_enabled: false
|
||||
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: ""
|
||||
|
||||
@@ -199,6 +199,32 @@ fi
|
||||
## end of postresql ##
|
||||
{% 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
|
||||
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 %}
|
||||
mariadb.pxar:$backup_dir/$today/mariadb \
|
||||
{% endif %}
|
||||
{% if backup_gitea_enabled is sameas true %}
|
||||
gitea.pxar:$backup_dir/$today/gitea \
|
||||
{% endif %}
|
||||
--rate ${PBS_RATE}
|
||||
## end of send to PBS ##
|
||||
|
||||
|
||||
Reference in New Issue
Block a user