#!/bin/bash set -e echo "🚀 NetGescon Linux Setup Script" echo "=================================" # Colori per output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color log_info() { echo -e "${GREEN}[INFO]${NC} $1"; } log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; } log_error() { echo -e "${RED}[ERROR]${NC} $1"; } log_step() { echo -e "${BLUE}[STEP]${NC} $1"; } # Verifica se eseguito come utente normale if [[ $EUID -eq 0 ]]; then log_error "Non eseguire questo script come root. Usa il tuo utente normale." exit 1 fi log_step "1/10 Aggiornamento sistema..." sudo apt update && sudo apt upgrade -y log_step "2/10 Installazione pacchetti base..." sudo apt install -y curl wget git unzip vim htop tree net-tools openssh-server ufw software-properties-common log_step "3/10 Configurazione firewall..." sudo ufw --force enable sudo ufw allow ssh sudo ufw allow 80 sudo ufw allow 443 sudo ufw allow 8000 log_info "Firewall configurato: SSH, HTTP, HTTPS, Laravel dev server" log_step "4/10 Installazione PHP 8.2..." sudo add-apt-repository ppa:ondrej/php -y sudo apt update sudo apt install -y php8.2 php8.2-fpm php8.2-cli php8.2-common php8.2-mysql \ php8.2-zip php8.2-gd php8.2-mbstring php8.2-curl php8.2-xml php8.2-bcmath \ php8.2-intl php8.2-sqlite3 php8.2-redis php8.2-imagick # Verifica installazione PHP PHP_VERSION=$(php -v | head -n1 | cut -d' ' -f2) log_info "PHP installato: versione $PHP_VERSION" log_step "5/10 Installazione Composer..." cd /tmp curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer sudo chmod +x /usr/local/bin/composer # Verifica Composer COMPOSER_VERSION=$(composer --version | cut -d' ' -f3) log_info "Composer installato: versione $COMPOSER_VERSION" log_step "6/10 Installazione Node.js..." curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs # Verifica Node.js NODE_VERSION=$(node --version) NPM_VERSION=$(npm --version) log_info "Node.js installato: $NODE_VERSION, npm: $NPM_VERSION" log_step "7/10 Installazione MySQL..." sudo apt install -y mysql-server log_step "8/10 Installazione Nginx..." sudo apt install -y nginx sudo systemctl start nginx sudo systemctl enable nginx log_step "9/10 Creazione directory progetto..." sudo mkdir -p /var/www/netgescon sudo chown -R $USER:www-data /var/www/netgescon sudo chmod -R 755 /var/www/netgescon log_step "10/10 Configurazione iniziale completata!" # Salva informazioni di sistema echo "=== NetGescon Setup Info ===" > ~/netgescon-setup-info.txt echo "Data installazione: $(date)" >> ~/netgescon-setup-info.txt echo "Sistema: $(lsb_release -d | cut -f2)" >> ~/netgescon-setup-info.txt echo "PHP: $PHP_VERSION" >> ~/netgescon-setup-info.txt echo "Composer: $COMPOSER_VERSION" >> ~/netgescon-setup-info.txt echo "Node.js: $NODE_VERSION" >> ~/netgescon-setup-info.txt echo "NPM: $NPM_VERSION" >> ~/netgescon-setup-info.txt echo "MySQL: $(mysql --version)" >> ~/netgescon-setup-info.txt echo "Nginx: $(nginx -v 2>&1)" >> ~/netgescon-setup-info.txt log_info "Setup completato! 🎉" echo "" echo "═══════════════════════════════════════════════════════" echo "📋 INFORMAZIONI IMPORTANTE - SALVA QUESTI DATI:" echo "═══════════════════════════════════════════════════════" echo "" echo "🔒 CONFIGURAZIONE DATABASE:" echo " Database: netgescon" echo " Username: netgescon_user" echo " Password: NetGescon2024!" echo "" echo "📁 DIRECTORY PROGETTO:" echo " /var/www/netgescon/" echo "" echo "🌐 IP MACCHINA:" echo " $(hostname -I | awk '{print $1}')" echo "" echo "═══════════════════════════════════════════════════════" echo "" echo "🔧 NEXT STEPS OBBLIGATORI:" echo "" echo "1️⃣ CONFIGURA MYSQL:" echo " sudo mysql_secure_installation" echo "" echo "2️⃣ CREA DATABASE (esegui questi comandi in MySQL):" echo " sudo mysql -u root -p" echo " CREATE DATABASE netgescon CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" echo " CREATE USER 'netgescon_user'@'localhost' IDENTIFIED BY 'NetGescon2024!';" echo " GRANT ALL PRIVILEGES ON netgescon.* TO 'netgescon_user'@'localhost';" echo " FLUSH PRIVILEGES;" echo " EXIT;" echo "" echo "3️⃣ TRASFERISCI PROGETTO LARAVEL:" echo " - Copia netgescon-laravel in /var/www/netgescon/" echo " - Esegui script setup-laravel.sh" echo "" echo "4️⃣ CONFIGURA NGINX:" echo " - Crea virtual host" echo " - Testa configurazione" echo "" echo "💾 Info sistema salvate in: ~/netgescon-setup-info.txt" echo "" # Salva log installazione echo "$(date): NetGescon setup completato" >> ~/netgescon-setup.log log_info "Per continuare, segui la GUIDA-MIGRAZIONE-LINUX-COMPLETA.md"