netgescon-master/scripts/sync-netgescon-to-vm.sh

77 lines
2.5 KiB
Bash

#!/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"