Esecuzione in Locale
Per testare e sviluppare nuove funzionalità, Il Carrubo include un ambiente di sviluppo locale estremamente ricco, completo di un’interfaccia grafica per il terminale.
Avvio Server
Il comando standard per lo sviluppo è:
npm run dev
Questo comando invocherà nodemon server.js, permettendo l’auto-ricaricamento dell’applicazione ad ogni modifica dei file sorgenti.
La Terminal GUI (blessed)
Se lanci npm run dev in locale, l’applicazione non mostrerà semplici log di testo noiosi. Inizializzerà invece una Dashboard UI da terminale (creata con le librerie blessed e blessed-contrib).
La GUI include:
- Un header colorato ASCII.
- Statistiche HTTP in tempo reale (richieste pending, count 2xx/4xx/5xx).
- Memoria e Uptime.
- Una finestra per lo stream dei Log dal vivo, in stile “Minecraft server”.
Comandi da Tastiera nella GUI
- <kbd>Q</kbd> : Arresta il server in modo sicuro (Graceful Shutdown)
- <kbd>C</kbd> : Pulisce lo schermo dei log
- <kbd>S</kbd> : Mostra le statistiche avanzate
- <kbd>L</kbd> : Attiva/Disattiva il logging esteso
- <kbd>K</kbd> : Forza il riavvio (tramite nodemon)
- <kbd>H</kbd> : Mostra l’aiuto
Se stai eseguendo script o non vuoi la dashboard, puoi usare i flag --nogui o -nogui:
node server.js --nogui
La GUI viene automaticamente disabilitata anche se l’ambiente rileva di essere in produzione (process.env.VERCEL).
Integrazione HTTPS e Ngrok
Se desideri esporre l’applicazione in HTTPS anche in locale, hai due opzioni integrate in server.js:
Self-signed SSL locale:
Crea una cartellassl/e metti al suo internocert.pemekey.pem. Il server lo rileverà e aprirà una porta HTTPS.Tunnel Ngrok (Accesso Remoto):
Utile per testare la PWA sullo smartphone senza deployare.
Aggiungi al.env:USE_NGROK=true NGROK_AUTHTOKEN=il_tuo_token_qui NGROK_DOMAIN=tuo-dominio.ngrok-free.app # OpzionaleAll’avvio, il server creerà automaticamente un tunnel crittografato ed esporrà l’URL nei log del terminale.