Files
homepage-nuova/install_backup_gitea.sh
T
zomas f5c763be7b Gitea theme: capital theta (circle+H) logo + homepage senza badge
- Logo/favicon ridisegnati come theta maiuscola: cerchio (anello)
  con 'H' centrata, clearance verificata (non tocca l'anello); ring
  ispessito per la favicon; centratura ottica verificata.
- Rimosso il badge 'Self-hosted Git' dal hero della homepage (era
  esteticamente di troppo) - CSS e markup.
- Aggiornati generate_theta.py, README, home.tmpl; caricati sul VPS in
  staging (md5 locali == remoti); tarball ricostruito.
- Salvataggio iniziale dell'intero admin pack in git.
2026-09-01 16:54:15 +02:00

59 lines
1.9 KiB
Bash

# ============================================================
# INSTALLAZIONE BACKUP AUTOMATICO GITEA (da eseguire da ROOT)
# Incolla tutto questo blocco nel terminale root del VPS.
# ============================================================
# 1) Crea la directory backup
mkdir -p /var/backups/gitea
# 2) Scrivi lo script di backup in /usr/local/sbin (autosufficiente)
cat > /usr/local/sbin/backup_gitea.sh <<'EOF'
#!/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)
ARC="$BACKUP_DIR/gitea-dump-$STAMP.zip"
mkdir -p "$BACKUP_DIR"
# Esegue il dump come utente 'gitea' (stesso user del servizio)
su -s /bin/bash gitea -c \
"/usr/local/bin/gitea dump --config /etc/gitea/app.ini --file '$ARC' --type zip" \
>/tmp/gitea-dump.log 2>&1
if [ ! -s "$ARC" ]; then
echo "ERRORE: dump non creato" >>/tmp/gitea-dump.log
exit 1
fi
# 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))"
EOF
chmod 0755 /usr/local/sbin/backup_gitea.sh
# 3) TEST: esegui un backup manuale adesso
/usr/local/sbin/backup_gitea.sh
ls -lh /var/backups/gitea/
# 4) Installa il cron giornaliero alle 02:30 via /etc/cron.d
cat > /etc/cron.d/gitea-backup <<'CRON'
# Backup giornaliero Gitea alle 02:30, stdout/stderr su log
30 2 * * * root /usr/local/sbin/backup_gitea.sh >>/tmp/gitea-dump.log 2>&1
CRON
chmod 0644 /etc/cron.d/gitea-backup
# 5) Verifica
echo "--- cron installato ---"
ls -l /etc/cron.d/gitea-backup
echo "--- contenuto ---"
cat /etc/cron.d/gitea-backup
echo "--- sistema crontab attivo? ---"
systemctl is-active cron 2>/dev/null || service cron status 2>/dev/null | head -2 || echo "cron non attivo (verificare)"
echo "--- ultimo backup (zona) ---"
ls -lh /var/backups/gitea/