netgescon-day0/docs/NETWORK-ACCESS-FIX-COMPLETO.md

3.4 KiB
Executable File

🌐 FIX COMPLETO - ACCESSO NETWORK NETGESCON

Data: 26/07/2025
Problema: Laravel + Vite non accessibile dalla rete locale (192.168.0.48 → 192.168.0.200)
Causa: Combinazione di Vite localhost + Firewall Linux

🚨 SINTOMI IDENTIFICATI

Comportamento Pre-Fix:

  • Locale (192.168.0.200): Funziona perfettamente
  • Network (192.168.0.48):
    • Connessione lenta
    • Pagina HTML carica ma CSS/JS non funzionano
    • Vite assets puntano a 127.0.0.1 (non accessibile da rete)
    • Firewall blocca porte Vite (5173)

🔧 SOLUZIONE IMPLEMENTATA

1. Configurazione Vite per Network

// File: /var/www/netgescon/vite.config.js
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        laravel({
            input: ['resources/css/app.css', 'resources/js/app.js'],
            refresh: true,
        }),
    ],
    server: {
        host: '0.0.0.0',        // ← CHIAVE: Ascolta su tutte le interfacce
        port: 5173,
        hmr: {
            host: '192.168.0.200'  // ← Hot Module Replacement per IP specifico
        }
    },
    build: {
        rollupOptions: {
            output: {
                manualChunks: undefined,
            }
        }
    }
});

2. Configurazione Firewall Linux

# Apertura porte necessarie
sudo ufw allow 8000/tcp    # Laravel Server
sudo ufw allow 5173/tcp    # Vite Dev Server
sudo ufw allow 3000/tcp    # GITEA (già configurato)

# Verifica regole attive
sudo ufw status numbered

# Test connessioni
netstat -tuln | grep -E ':8000|:5173|:3000'

3. Configurazione Laravel Assets

// File: .env - Aggiunto
ASSET_URL=http://192.168.0.200:8000
APP_URL=http://192.168.0.200:8000

RISULTATO POST-FIX

Comportamento Attuale:

  • Locale (192.168.0.200): Funziona perfettamente
  • Network (192.168.0.48): Funziona completamente
  • CSS/JS: Caricamento corretto da network
  • Vite HMR: Hot reload funziona anche remotamente

🔄 WORKFLOW DI AVVIO

Per Sviluppo con Accesso Network:

# Terminal 1: Laravel Server
cd /var/www/netgescon
php artisan serve --host=0.0.0.0 --port=8000

# Terminal 2: Vite Dev Server  
npm run dev

Per Produzione:

# Build statico (no Vite server necessario)
npm run build

🎯 LEZIONI APPRESE

  1. Vite di default ascolta solo su localhost - Necessario configurare host: '0.0.0.0'
  2. Firewall Linux blocca porte non standard - Aprire esplicitamente 5173, 8000
  3. Laravel assets seguono APP_URL - Configurare correttamente per network access
  4. Hot Module Replacement necessita IP specifico - Configurare hmr.host

🔧 TROUBLESHOOTING RAPIDO

Se non funziona dalla rete:

# 1. Verifica porte aperte
sudo netstat -tuln | grep -E ':8000|:5173'

# 2. Test connessione
telnet 192.168.0.200 8000
telnet 192.168.0.200 5173

# 3. Verifica firewall
sudo ufw status

# 4. Clear cache Laravel
php artisan config:clear && php artisan view:clear

📋 CHECKLIST FINALE

  • Vite configurato per network (host: '0.0.0.0')
  • Firewall porte aperte (8000, 5173, 3000)
  • Laravel APP_URL configurato correttamente
  • Assets URL configurato per network
  • Test accesso da multiple macchine
  • Documentazione completa creata

STATO: RISOLTO COMPLETAMENTE
ACCESSO NETWORK: Funzionante da tutte le macchine della rete locale