netgescon-master/scripts/setup-netgescon.sh

142 lines
4.9 KiB
Bash
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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