78 lines
2.0 KiB
Bash
Executable File
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"
|
|
|