#!/bin/bash # Backup automatico Gitea via `gitea dump` (db sqlite + repos + config in un unico zip). # Retention: 14 giorni (modificare KEEP_DAYS). set -euo pipefail BACKUP_DIR=/var/backups/gitea KEEP_DAYS=14 STAMP=$(date +%Y%m%d-%H%M%S) TMP_ARC="/tmp/gitea-dump-$STAMP.zip" ARC="$BACKUP_DIR/gitea-dump-$STAMP.zip" mkdir -p "$BACKUP_DIR" # Esegue il dump come utente 'gitea' (stesso user del servizio). # Il file va in /tmp (scrivibile da gitea), poi lo spostiamo come root. su -s /bin/bash gitea -c \ "/usr/local/bin/gitea dump --config /etc/gitea/app.ini --file '$TMP_ARC' --type zip" \ >/tmp/gitea-dump.log 2>&1 if [ ! -s "$TMP_ARC" ]; then echo "ERRORE: dump non creato" >>/tmp/gitea-dump.log exit 1 fi mv "$TMP_ARC" "$ARC" # Pulisce i dump piu' vecchi di KEEP_DAYS find "$BACKUP_DIR" -name 'gitea-dump-*.zip' -mtime +"$KEEP_DAYS" -delete echo "OK: $ARC ($(du -h "$ARC" | cut -f1))"