#!/bin/bash # sync-netgescon-to-vm.sh - Sincronizza progetto NetGescon sulla VM Ubuntu # Configurazione VM VM_IP="192.168.0.43" VM_USER="michele" VM_PATH="/var/www/netgescon" LOCAL_PATH="u:/home/michele/netgescon" echo "🚀 Sincronizzazione NetGescon sulla VM Ubuntu" echo "=============================================" echo "📍 VM Target: $VM_USER@$VM_IP:$VM_PATH" echo "📍 Source: $LOCAL_PATH" echo "" # Test connessione SSH echo "🔍 Test connessione SSH..." if ssh -o ConnectTimeout=5 $VM_USER@$VM_IP "echo 'SSH OK'" 2>/dev/null; then echo "✅ Connessione SSH attiva" else echo "❌ Errore connessione SSH - Verifica IP e credenziali" exit 1 fi # Crea directory di destinazione echo "📁 Creazione directory di destinazione..." ssh $VM_USER@$VM_IP "sudo mkdir -p /var/www && sudo chown -R $VM_USER:$VM_USER /var/www" # Sincronizza codice Laravel echo "📦 Sincronizzazione codice Laravel..." rsync -avz --delete \ --exclude 'node_modules/' \ --exclude 'vendor/' \ --exclude 'storage/logs/' \ --exclude 'storage/framework/cache/' \ --exclude 'storage/framework/sessions/' \ --exclude 'storage/framework/views/' \ --exclude '.env' \ "$LOCAL_PATH/netgescon-laravel/" "$VM_USER@$VM_IP:$VM_PATH/" # Sincronizza script di setup echo "🔧 Sincronizzazione script..." rsync -avz "$LOCAL_PATH/scripts/" "$VM_USER@$VM_IP:/home/$VM_USER/netgescon-scripts/" # Sincronizza documentazione echo "📚 Sincronizzazione documentazione..." rsync -avz "$LOCAL_PATH/docs/" "$VM_USER@$VM_IP:/home/$VM_USER/netgescon-docs/" rsync -avz "$LOCAL_PATH/"*.md "$VM_USER@$VM_IP:/home/$VM_USER/netgescon-docs/" # Imposta permessi corretti echo "🔐 Impostazione permessi..." ssh $VM_USER@$VM_IP " # Permessi Laravel sudo chown -R www-data:www-data $VM_PATH/storage $VM_PATH/bootstrap/cache sudo chmod -R 775 $VM_PATH/storage $VM_PATH/bootstrap/cache # Permessi script chmod +x /home/$VM_USER/netgescon-scripts/*.sh # Crea .env da .env.example se non esiste if [ ! -f $VM_PATH/.env ]; then cp $VM_PATH/.env.example $VM_PATH/.env echo '✅ File .env creato da .env.example' fi " echo "" echo "✅ Sincronizzazione completata!" echo "🔗 Connetti alla VM: ssh $VM_USER@$VM_IP" echo "📁 Progetto su VM: $VM_PATH" echo "🔧 Script disponibili: /home/$VM_USER/netgescon-scripts/" echo "" echo "🚀 Prossimo step: Esegui setup NetGescon sulla VM" echo " ssh $VM_USER@$VM_IP" echo " cd netgescon-scripts" echo " sudo ./setup-netgescon-ubuntu2404.sh"