77 lines
2.5 KiB
Bash
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"
|