232 lines
6.0 KiB
Bash
232 lines
6.0 KiB
Bash
#!/bin/bash
|
|
# 🔧 NETGESCON - CONFIGURAZIONE POST-TRASFERIMENTO VM
|
|
# Creato: 19/07/2025 - Setup completo su VM target
|
|
|
|
echo "🔧 === NETGESCON - CONFIGURAZIONE VM POST-TRASFERIMENTO ==="
|
|
echo "📅 $(date '+%Y-%m-%d %H:%M:%S')"
|
|
echo ""
|
|
|
|
# Da eseguire SULLA VM 192.168.0.200 dopo il trasferimento
|
|
|
|
# === 1. AGGIORNAMENTO SISTEMA ===
|
|
echo "🔄 1. Aggiornamento sistema Ubuntu..."
|
|
sudo apt update && sudo apt upgrade -y
|
|
|
|
# === 2. INSTALLAZIONE STACK LAMP ===
|
|
echo ""
|
|
echo "📦 2. Installazione stack LAMP..."
|
|
|
|
# Apache
|
|
sudo apt install -y apache2
|
|
sudo systemctl enable apache2
|
|
sudo systemctl start apache2
|
|
|
|
# MySQL
|
|
sudo apt install -y mysql-server
|
|
sudo systemctl enable mysql
|
|
sudo systemctl start mysql
|
|
|
|
# PHP 8.1
|
|
sudo apt install -y php8.1 php8.1-mysql php8.1-xml php8.1-mbstring php8.1-zip php8.1-gd php8.1-curl php8.1-dom php8.1-common php8.1-cli
|
|
|
|
# Composer
|
|
curl -sS https://getcomposer.org/installer | php
|
|
sudo mv composer.phar /usr/local/bin/composer
|
|
sudo chmod +x /usr/local/bin/composer
|
|
|
|
# Node.js
|
|
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
|
|
sudo apt install -y nodejs
|
|
|
|
echo " ✅ Stack LAMP installato"
|
|
|
|
# === 3. CONFIGURAZIONE GIT ===
|
|
echo ""
|
|
echo "🔧 3. Configurazione Git..."
|
|
|
|
cd /home/michele/netgescon
|
|
|
|
# Configura Git globalmente
|
|
git config --global user.name "NetGescon VM Master"
|
|
git config --global user.email "master@netgescon.local"
|
|
git config --global init.defaultBranch master
|
|
|
|
# Inizializza repository se necessario
|
|
if [ ! -d ".git" ]; then
|
|
git init
|
|
echo " 📦 Repository Git inizializzato"
|
|
fi
|
|
|
|
# Commit tutto
|
|
git add .
|
|
git commit -m "🚀 NETGESCON - Primo commit su VM Master
|
|
|
|
📋 Migrazione completa da Windows WSL
|
|
🔄 Primo setup su VM Linux 192.168.0.200
|
|
📅 $(date '+%Y-%m-%d %H:%M:%S')
|
|
🎯 Repository master operativo"
|
|
|
|
echo " ✅ Git configurato e commit iniziale creato"
|
|
|
|
# === 4. CONFIGURAZIONE LARAVEL ===
|
|
echo ""
|
|
echo "🔧 4. Configurazione Laravel..."
|
|
|
|
cd /home/michele/netgescon/netgescon-laravel
|
|
|
|
# Installa dipendenze
|
|
if [ -f "composer.json" ]; then
|
|
composer install --no-dev --optimize-autoloader
|
|
echo " ✅ Dipendenze Composer installate"
|
|
fi
|
|
|
|
# Configura .env
|
|
if [ ! -f ".env" ] && [ -f ".env.example" ]; then
|
|
cp .env.example .env
|
|
php artisan key:generate
|
|
echo " ✅ File .env configurato"
|
|
fi
|
|
|
|
# Configura database in .env
|
|
sed -i 's/DB_DATABASE=.*/DB_DATABASE=netgescon/' .env
|
|
sed -i 's/DB_USERNAME=.*/DB_USERNAME=netgescon/' .env
|
|
sed -i 's/DB_PASSWORD=.*/DB_PASSWORD=netgescon2025/' .env
|
|
|
|
# Permessi
|
|
sudo chown -R www-data:www-data storage bootstrap/cache
|
|
sudo chmod -R 775 storage bootstrap/cache
|
|
|
|
echo " ✅ Laravel configurato"
|
|
|
|
# === 5. CONFIGURAZIONE DATABASE ===
|
|
echo ""
|
|
echo "🗄️ 5. Configurazione database MySQL..."
|
|
|
|
# Configura MySQL
|
|
sudo mysql << 'EOF'
|
|
CREATE DATABASE IF NOT EXISTS netgescon;
|
|
CREATE USER IF NOT EXISTS 'netgescon'@'localhost' IDENTIFIED BY 'netgescon2025';
|
|
GRANT ALL PRIVILEGES ON netgescon.* TO 'netgescon'@'localhost';
|
|
FLUSH PRIVILEGES;
|
|
EXIT;
|
|
EOF
|
|
|
|
echo " ✅ Database MySQL configurato"
|
|
|
|
# Esegui migrazioni
|
|
cd /home/michele/netgescon/netgescon-laravel
|
|
if [ -f "artisan" ]; then
|
|
php artisan migrate --force
|
|
echo " ✅ Migrazioni database eseguite"
|
|
fi
|
|
|
|
# === 6. CONFIGURAZIONE APACHE ===
|
|
echo ""
|
|
echo "🌐 6. Configurazione Apache VirtualHost..."
|
|
|
|
# Crea VirtualHost
|
|
sudo tee /etc/apache2/sites-available/netgescon.conf > /dev/null << 'EOF'
|
|
<VirtualHost *:80>
|
|
ServerName netgescon.local
|
|
ServerAlias 192.168.0.200
|
|
DocumentRoot /home/michele/netgescon/netgescon-laravel/public
|
|
|
|
<Directory /home/michele/netgescon/netgescon-laravel/public>
|
|
AllowOverride All
|
|
Require all granted
|
|
DirectoryIndex index.php
|
|
</Directory>
|
|
|
|
<Directory /home/michele/netgescon/netgescon-laravel>
|
|
AllowOverride None
|
|
Require all denied
|
|
</Directory>
|
|
|
|
ErrorLog ${APACHE_LOG_DIR}/netgescon_error.log
|
|
CustomLog ${APACHE_LOG_DIR}/netgescon_access.log combined
|
|
</VirtualHost>
|
|
EOF
|
|
|
|
# Abilita moduli e sito
|
|
sudo a2enmod rewrite
|
|
sudo a2ensite netgescon
|
|
sudo a2dissite 000-default
|
|
sudo systemctl reload apache2
|
|
|
|
echo " ✅ Apache VirtualHost configurato"
|
|
|
|
# === 7. INSTALLAZIONE DOCKER PER GITEA ===
|
|
echo ""
|
|
echo "🐳 7. Installazione Docker per Gitea..."
|
|
|
|
# Installa Docker
|
|
curl -fsSL https://get.docker.com -o get-docker.sh
|
|
sudo sh get-docker.sh
|
|
sudo systemctl enable docker
|
|
sudo systemctl start docker
|
|
|
|
# Aggiunge utente al gruppo docker
|
|
sudo usermod -aG docker michele
|
|
|
|
echo " ✅ Docker installato"
|
|
|
|
# === 8. SETUP GITEA ===
|
|
echo ""
|
|
echo "🏢 8. Setup Gitea (Git Server)..."
|
|
|
|
# Crea directory
|
|
sudo mkdir -p /var/lib/gitea
|
|
|
|
# Avvia Gitea con Docker
|
|
sudo docker run -d \
|
|
--name=gitea \
|
|
--restart=unless-stopped \
|
|
-p 3000:3000 \
|
|
-p 2222:22 \
|
|
-v /var/lib/gitea:/data \
|
|
-e USER_UID=1000 \
|
|
-e USER_GID=1000 \
|
|
gitea/gitea:1.21.0
|
|
|
|
echo " ✅ Gitea avviato"
|
|
|
|
# === 9. CONFIGURAZIONE FIREWALL ===
|
|
echo ""
|
|
echo "🔥 9. Configurazione firewall UFW..."
|
|
|
|
sudo ufw allow ssh
|
|
sudo ufw allow 80/tcp
|
|
sudo ufw allow 3000/tcp
|
|
sudo ufw allow 2222/tcp
|
|
sudo ufw --force enable
|
|
|
|
echo " ✅ Firewall configurato"
|
|
|
|
# === 10. TEST FINALE ===
|
|
echo ""
|
|
echo "🧪 10. Test configurazione finale..."
|
|
|
|
echo "📊 === STATUS SERVIZI ==="
|
|
echo "Apache: $(sudo systemctl is-active apache2)"
|
|
echo "MySQL: $(sudo systemctl is-active mysql)"
|
|
echo "Docker: $(sudo systemctl is-active docker)"
|
|
echo "Gitea: $(sudo docker ps --filter name=gitea --format "table {{.Status}}" | tail -1)"
|
|
echo ""
|
|
|
|
echo "📋 === INFORMAZIONI ACCESSO ==="
|
|
echo "🌐 NetGescon: http://192.168.0.200"
|
|
echo "🏢 Gitea: http://192.168.0.200:3000"
|
|
echo "📂 Progetto: /home/michele/netgescon"
|
|
echo ""
|
|
|
|
echo "📋 === PROSSIMI PASSI ==="
|
|
echo "1. 🌐 Aprire http://192.168.0.200:3000 per configurare Gitea"
|
|
echo "2. 🏢 Creare organizzazione 'netgescon' in Gitea"
|
|
echo "3. 📦 Creare repository 'netgescon-main' in Gitea"
|
|
echo "4. 🔄 Configurare remote Git e push del codice"
|
|
echo "5. 🧪 Testare NetGescon su http://192.168.0.200"
|
|
echo ""
|
|
|
|
echo "🎯 Configurazione VM completata!"
|
|
echo "📅 $(date '+%Y-%m-%d %H:%M:%S')"
|