#!/bin/bash
# 🚀 NETGESCON - MIGRAZIONE SEMPLIFICATA A VM
# Creato: 19/07/2025 - Versione step-by-step manuale

echo "🚀 === NETGESCON - MIGRAZIONE A VM MASTER ==="
echo "📅 $(date '+%Y-%m-%d %H:%M:%S')"
echo ""

TARGET_VM="192.168.0.200"
TARGET_USER="michele"

echo "📋 Piano migrazione a $TARGET_USER@$TARGET_VM:"
echo ""

echo "🔧 STEP 1: Preparazione ambiente VM"
echo "   Comandi da eseguire sulla VM (SSH):"
echo ""
echo "   # Aggiorna sistema"
echo "   sudo apt update && sudo apt upgrade -y"
echo ""
echo "   # Installa stack base"
echo "   sudo apt install -y git curl wget rsync build-essential"
echo "   sudo apt install -y apache2 mysql-server"
echo "   sudo apt install -y php8.1 php8.1-mysql php8.1-xml php8.1-mbstring php8.1-zip php8.1-gd php8.1-curl"
echo ""
echo "   # Installa Composer"
echo "   curl -sS https://getcomposer.org/installer | php"
echo "   sudo mv composer.phar /usr/local/bin/composer"
echo ""
echo "   # Crea directory"
echo "   mkdir -p /home/michele/netgescon"
echo "   sudo mkdir -p /var/www/netgescon"
echo ""

echo "📦 STEP 2: Trasferimento file"
echo "   Da eseguire da questa macchina Windows:"
echo ""
echo "   rsync -avz --progress \\"
echo "     --exclude='__pycache__' \\"
echo "     --exclude='venv' \\"
echo "     --exclude='node_modules' \\"
echo "     --exclude='.env' \\"
echo "     /home/michele/netgescon/ \\"
echo "     $TARGET_USER@$TARGET_VM:/home/michele/netgescon/"
echo ""

echo "🔧 STEP 3: Setup Git su VM"
echo "   Sulla VM dopo il trasferimento:"
echo ""
echo "   cd /home/michele/netgescon"
echo "   git config --global user.name 'NetGescon Master VM'"
echo "   git config --global user.email 'master@netgescon.local'"
echo "   git add ."
echo "   git commit -m 'Migrazione completa su VM Master'"
echo ""

echo "🏢 STEP 4: Setup Gitea (server Git)"
echo "   Sulla VM:"
echo ""
echo "   # Setup Gitea con Docker"
echo "   sudo docker run -d \\"
echo "     --name=gitea \\"
echo "     --restart=unless-stopped \\"
echo "     -p 3000:3000 \\"
echo "     -p 2222:22 \\"
echo "     -v /var/lib/gitea:/data \\"
echo "     gitea/gitea:latest"
echo ""

echo "🌐 STEP 5: Configurazione Apache"
echo "   Sulla VM:"
echo ""
echo "   # VirtualHost NetGescon"
echo "   sudo tee /etc/apache2/sites-available/netgescon.conf << 'EOF'"
echo "   <VirtualHost *:80>"
echo "       ServerName netgescon.local"
echo "       DocumentRoot /home/michele/netgescon/netgescon-laravel/public"
echo "       <Directory /home/michele/netgescon/netgescon-laravel/public>"
echo "           AllowOverride All"
echo "           Require all granted"
echo "       </Directory>"
echo "   </VirtualHost>"
echo "   EOF"
echo ""
echo "   sudo a2enmod rewrite"
echo "   sudo a2ensite netgescon"
echo "   sudo systemctl reload apache2"
echo ""

echo "🧪 STEP 6: Test finale"
echo "   http://$TARGET_VM → NetGescon"
echo "   http://$TARGET_VM:3000 → Gitea"
echo ""

echo "🎯 Vuoi procedere con il trasferimento automatico? (y/N)"
read -r response

if [[ "$response" =~ ^[Yy]$ ]]; then
    echo ""
    echo "🚀 Avvio trasferimento..."
    
    echo "📦 Trasferimento file con rsync..."
    rsync -avz --progress \
        --exclude='__pycache__' \
        --exclude='venv' \
        --exclude='node_modules' \
        --exclude='.env' \
        --exclude='*.log' \
        /home/michele/netgescon/ \
        "$TARGET_USER@$TARGET_VM:/home/michele/netgescon/"
    
    echo ""
    echo "✅ Trasferimento completato!"
    echo ""
    echo "📋 Prossimi passi manuali sulla VM:"
    echo "1. SSH alla VM: ssh $TARGET_USER@$TARGET_VM"
    echo "2. Setup ambiente: sudo apt install -y git apache2 mysql-server php8.1..."
    echo "3. Configurazione Git nel progetto"
    echo "4. Setup Gitea"
    echo "5. Configurazione Apache"
    
else
    echo ""
    echo "📋 Migrazione posticipata."
    echo "   Usa questo script come guida per i passi manuali."
fi

echo ""
echo "📅 $(date '+%Y-%m-%d %H:%M:%S')"
