#!/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 " " echo " ServerName netgescon.local" echo " DocumentRoot /home/michele/netgescon/netgescon-laravel/public" echo " " echo " AllowOverride All" echo " Require all granted" echo " " echo " " 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')"