130 lines
3.9 KiB
Bash
Executable File
130 lines
3.9 KiB
Bash
Executable File
#!/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')"
|