#!/bin/bash # setup-netgescon-ubuntu2404.sh - Setup ottimizzato per Ubuntu 24.04 LTS set -e echo "๐Ÿš€ NetGescon Setup Script - Ubuntu 24.04 LTS" echo "==============================================" # Colori per output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' 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 versione Ubuntu if ! grep -q "24.04" /etc/os-release; then log_error "Questo script รจ ottimizzato per Ubuntu 24.04 LTS" exit 1 fi log_step "1/12 Aggiornamento sistema Ubuntu 24.04..." sudo apt update && sudo apt upgrade -y log_step "2/12 Installazione pacchetti base..." sudo apt install -y curl wget git unzip vim htop tree net-tools openssh-server ufw \ software-properties-common apt-transport-https ca-certificates gnupg lsb-release log_step "3/12 Configurazione firewall UFW..." sudo ufw --force enable sudo ufw allow ssh sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 8000/tcp log_info "Firewall configurato per NetGescon" log_step "4/12 Installazione PHP 8.3 (Ubuntu 24.04 native)..." sudo apt install -y php8.3 php8.3-fpm php8.3-cli php8.3-common php8.3-mysql \ php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath \ php8.3-intl php8.3-sqlite3 php8.3-redis php8.3-imagick php8.3-opcache # Configurazione PHP ottimizzata sudo tee /etc/php/8.3/fpm/conf.d/99-netgescon.ini > /dev/null </dev/null | cut -d' ' -f3) log_info "Composer installato: $COMPOSER_VERSION" log_step "6/12 Installazione Node.js 20 LTS..." curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs NODE_VERSION=$(node --version) NPM_VERSION=$(npm --version) log_info "Node.js: $NODE_VERSION, npm: $NPM_VERSION" log_step "7/12 Installazione MySQL 8.0..." sudo apt install -y mysql-server mysql-client # Configurazione MySQL ottimizzata per NetGescon sudo tee /etc/mysql/mysql.conf.d/99-netgescon.cnf > /dev/null < /dev/null < ~/netgescon-setup-info.txt echo "Data installazione: $(date)" >> ~/netgescon-setup-info.txt echo "Sistema: $(lsb_release -d | cut -f2)" >> ~/netgescon-setup-info.txt echo "Kernel: $(uname -r)" >> ~/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 echo "Redis: $(redis-server --version)" >> ~/netgescon-setup-info.txt log_info "Setup Ubuntu 24.04 completato! ๐ŸŽ‰" echo "" echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" echo "โœ… UBUNTU 24.04 LTS PRONTO PER NETGESCON" echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" echo "" echo "๐Ÿ”ง SERVIZI INSTALLATI:" echo " PHP 8.3 + FPM + OPcache" echo " MySQL 8.0 ottimizzato" echo " Nginx con configurazione NetGescon" echo " Redis per caching" echo " Node.js 20 LTS" echo " Composer latest" echo "" echo "๐ŸŒ IP MACCHINA: $(hostname -I | awk '{print $1}')" echo "๐Ÿ“ DIRECTORY PROGETTO: /var/www/netgescon/" echo "๐Ÿ’พ INFO SISTEMA: ~/netgescon-setup-info.txt" echo "" echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" echo "" echo "๐Ÿ”ง NEXT STEPS OBBLIGATORI:" echo "" echo "1๏ธโƒฃ CONFIGURA MYSQL (password sicura):" echo " sudo mysql_secure_installation" echo "" echo "2๏ธโƒฃ CREA DATABASE NETGESCON:" 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 "" echo "4๏ธโƒฃ ESEGUI SETUP LARAVEL:" echo " ./setup-laravel-ubuntu2404.sh" echo "" echo "5๏ธโƒฃ CONFIGURA NGINX VIRTUAL HOST:" echo " ./nginx-config-ubuntu2404.sh" echo "" echo "$(date): NetGescon Ubuntu 24.04 setup completato" >> ~/netgescon-setup.log log_info "Ready per il prossimo step! ๐Ÿš€"