2025-10-03 12:10:16 +02:00

78 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
set -e
# Trouver tous les backups triés par date décroissante (plus récent en premier)
ALL_BACKUPS=( $(ls -t /vagrant/gitea-backup-*.tar.gz 2>/dev/null) )
if [ ${#ALL_BACKUPS[@]} -eq 0 ]; then
echo "❌ Aucun fichier de backup trouvé dans /vagrant !"
exit 1
fi
# Le plus récent
BACKUP_TAR="${ALL_BACKUPS[0]}"
echo "🗂️ Utilisation du backup le plus récent : $BACKUP_TAR"
# Supprimer les autres
for OLD_BACKUP in "${ALL_BACKUPS[@]:1}"; do
echo "🗑️ Suppression de l'ancien backup : $OLD_BACKUP"
rm -f "$OLD_BACKUP"
done
TMP_DIR="/home/vagrant/backup"
# Nettoyer et recréer le répertoire temporaire
sudo rm -rf $TMP_DIR
sudo mkdir -p $TMP_DIR
# Extraire uniquement le dernier backup
sudo tar -xzf "$BACKUP_TAR" -C $TMP_DIR
# Restaurer le binaire, la config et les données
sudo rsync -av --chown=git:git $TMP_DIR/usr/local/bin/gitea /usr/local/bin/
sudo chmod +x /usr/local/bin/gitea
sudo rsync -av --chown=git:git $TMP_DIR/etc/gitea/ /etc/gitea/
sudo rsync -av --chown=git:git $TMP_DIR/var/lib/gitea/ /var/lib/gitea/
# Permissions
sudo chown -R git:git /var/lib/gitea /etc/gitea
sudo chmod -R 750 /var/lib/gitea /etc/gitea
# Vérifier le répertoire home
sudo mkdir -p /home/git
sudo chown -R git:git /home/git
# Créer le service systemd si absent
if [ ! -f /etc/systemd/system/gitea.service ]; then
echo "⚙️ Création du service systemd Gitea..."
sudo tee /etc/systemd/system/gitea.service > /dev/null <<EOF
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/conf/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable gitea
fi
# Redémarrer Gitea
sudo systemctl daemon-reload
sudo systemctl restart gitea
sudo systemctl status gitea --no-pager
echo "✅ Restauration terminée avec le backup le plus récent : $BACKUP_TAR"