- 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.
59 lines
1.9 KiB
Bash
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/ |