πŸ₯ Studio Ippocrate

Guida di installazione completa per Windows

βœ… Windows 10 / 11 βš™οΈ Node.js 18+ πŸ”„ PM2 (auto-avvio) πŸ“‘ Rete WiFi locale 🟒 Server: 192.168.0.1
🟒

Installazione completata con successo!

Il server Studio Ippocrate Γ¨ giΓ  operativo su questo PC. Le sezioni 2–7 della guida sono giΓ  state completate. Conserva questo documento come riferimento per i comandi di manutenzione e gli indirizzi da distribuire ai dispositivi dello studio.

πŸ“‹ Indice

  1. Requisiti di sistema
  2. Installazione Node.js
  3. Copia del progetto
  4. Installazione dipendenze
  5. Primo avvio
  6. PM2 β€” Server sempre attivo
  7. Avvio automatico con Windows
  8. Indirizzi di accesso
  9. Firewall Windows
  10. Risoluzione problemi comuni

1. Requisiti di sistema

πŸ’»

Il server deve girare sul PC fisso della Segreteria (o su qualsiasi PC sempre acceso). Tutti gli altri dispositivi β€” tablet check-in, PC dei medici, monitor sala β€” accedono via browser sulla stessa rete WiFi, senza installare nulla.

Verifica che il computer della Segreteria soddisfi questi requisiti:

2. Installazione Node.js

  1. 1
    Scarica Node.js LTS

    Vai su https://nodejs.org e clicca sul pulsante verde "LTS β€” Recommended For Most Users" (versione 20.x o superiore). Scarica il file .msi.

  2. 2
    Esegui il programma di installazione

    Apri il file scaricato e segui la procedura guidata. Lascia tutte le opzioni di default selezionate. Quando richiesto, spunta "Automatically install the necessary tools" se disponibile.

  3. 3
    Verifica l'installazione

    Apri il Prompt dei Comandi (premi Windows + R, digita cmd, premi Invio) e digita:

    node --version
    # Deve rispondere qualcosa come: v20.11.0
    
    npm --version
    # Deve rispondere qualcosa come: 10.2.4

    Se vedi i numeri di versione, Node.js Γ¨ installato correttamente. βœ…

⚠️

Se il prompt dice "node non riconosciuto come comando", chiudi e riapri il Prompt dei Comandi dopo l'installazione. Se il problema persiste, riavvia il PC.

3. Copia del progetto sul PC

Crea una cartella dedicata per il progetto. Ti consigliamo:

C:\StudioIppocrate\

All'interno, la struttura dei file deve essere esattamente questa:

C:\StudioIppocrate\ β”œβ”€β”€ server.js β”œβ”€β”€ package.json β”œβ”€β”€ README.md └── public\ β”œβ”€β”€ index.html ← tablet check-in β”œβ”€β”€ medico.html ← dashboard medici β”œβ”€β”€ monitor.html ← schermo sala d'attesa └── admin.html ← pannello segreteria
πŸ“

La cartella data\ verrΓ  creata automaticamente dal server al primo avvio. Contiene il file di salvataggio automatico dello stato giornaliero.

Assicurati che il file package.json contenga esattamente questo:

{
  "name": "studio-ippocrate",
  "version": "2.0.0",
  "main": "server.js",
  "scripts": {
    "start": "node server.js"
  },
  "dependencies": {
    "express": "^4.18.2",
    "socket.io": "^4.6.1"
  }
}

4. Installazione delle dipendenze

  1. 1
    Apri il Prompt dei Comandi nella cartella del progetto

    Apri Esplora File, naviga in C:\StudioIppocrate, poi clicca sulla barra dell'indirizzo in alto, digita cmd e premi Invio. Si aprirΓ  il prompt giΓ  nella cartella giusta.

  2. 2
    Installa le dipendenze del progetto
    npm install
    # Attendi il completamento (30–60 secondi)
    # VerrΓ  creata automaticamente la cartella node_modules\
  3. 3
    Installa PM2 globalmente

    PM2 Γ¨ il gestore di processi che mantiene il server attivo anche se si chiude il prompt o si riavvia il PC:

    npm install -g pm2
    npm install -g pm2-windows-startup
    # Il secondo pacchetto serve per l'avvio automatico con Windows

5. Primo avvio (test)

Avvia il server con PM2 nella cartella del progetto:

# Assicurati di essere in C:\StudioIppocrate\
pm2 start server.js --name "Ippocrate"

Se tutto Γ¨ corretto, il prompt mostrerΓ :

[PM2] Spawning PM2 daemon with pm2_home=C:\Users\user\.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting C:\StudioIppocrate\server.js in fork_mode (1 instance)
[PM2] Done.

β”Œβ”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ id β”‚ name               β”‚ mode     β”‚ β†Ί    β”‚ status    β”‚ cpu      β”‚ memory   β”‚
β”œβ”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 0  β”‚ Ippocrate           β”‚ fork     β”‚ 0    β”‚ online    β”‚ 0%       β”‚ 41.2mb   β”‚
β””β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Apri Chrome o Edge sul PC della segreteria e vai su http://localhost:3000/admin. Se vedi il pannello segreteria, il server funziona. βœ…

Premi Ctrl + C per fermare il server di test. Adesso configuriamo PM2.

6. PM2 β€” Server sempre attivo

Con PM2 il server rimane attivo in background, si riavvia automaticamente in caso di errore, e continua a funzionare anche dopo la chiusura del prompt.

  1. 1
    Avvia il server con PM2
    # Sempre da C:\StudioIppocrate\
    pm2 start server.js --name "Ippocrate"
  2. 2
    Verifica che sia in esecuzione
    pm2 list
    β”Œβ”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚ id β”‚ name               β”‚ mode     β”‚ β†Ί    β”‚ status    β”‚ cpu      β”‚ memory   β”‚
    β”œβ”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
    β”‚ 0  β”‚ Ippocrate           β”‚ fork     β”‚ 0    β”‚ online    β”‚ 0%       β”‚ 60.1mb   β”‚
    β””β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  3. 3
    Salva la configurazione PM2
    pm2 save
    # Output atteso:
    [PM2] Saving current process list...
    [PM2] Successfully saved in C:\Users\user\.pm2\dump.pm2

Comandi PM2 utili

# Ver stato
pm2 list

# Riavvia il server (es. dopo aggiornamento file)
pm2 restart Ippocrate

# Ferma il server
pm2 stop Ippocrate

# Riprendi il server fermato
pm2 start Ippocrate

# Leggi i log in tempo reale (utile per debug)
pm2 logs Ippocrate

# Cancella i log
pm2 flush

7. Avvio automatico con Windows

L'avvio automatico Γ¨ giΓ  stato configurato con successo su questo PC. Il messaggio ricevuto Γ¨ stato:

C:\StudioIppocrate> pm2-startup install
Successfully added PM2 startup registry entry.
βœ…

Questo significa che ad ogni avvio del PC, Windows rilancerΓ  automaticamente PM2 con il processo Ippocrate giΓ  salvato. Non Γ¨ necessario fare nulla di piΓΉ.

Test di verifica (opzionale)

Per confermare che tutto funzioni dopo un riavvio:

  1. Riavvia il PC
  2. Aspetta circa 30 secondi dopo l'avvio del desktop
  3. Apri il browser e vai su http://localhost:3000/admin
  4. Se vedi il pannello segreteria senza aver avviato nulla manualmente β†’ βœ… funziona
⚠️

Se dopo un riavvio il server non parte, esegui nuovamente (come Amministratore):

pm2 save
pm2-startup install

8. Indirizzi di accesso dalla rete

πŸ“‘

IP del server confermato: 192.168.0.1

Questo Γ¨ l'indirizzo da usare su tutti i dispositivi dello studio. Rilevato con ipconfig sulla scheda "Connessione alla rete locale (LAN)".

Output ipconfig del PC server (riferimento)

Scheda Ethernet Connessione alla rete locale (LAN):
   Suffisso DNS specifico per connessione: broadband
   Indirizzo IPv4. . . . . . . . . . . . : 192.168.0.1
   Subnet mask . . . . . . . . . . . . . : 255.255.255.0
   Gateway predefinito . . . . . . . . . : 192.168.0.7
Dispositivo URL da aprire nel browser Note
πŸ–₯️ PC Segreteria (locale) http://localhost:3000/admin.html Solo sul PC server
πŸ“± Tablet check-in http://192.168.0.1:3000/ Pagina principale check-in pazienti
🩺 PC dei medici http://192.168.0.1:3000/medico.html Ogni medico sceglie il proprio nome
πŸ“Ί Monitor sala d'attesa http://192.168.0.1:3000/monitor.html Premi F11 per schermo intero
πŸ›‘οΈ Segreteria (da altro PC) http://192.168.0.1:3000/admin.html Pannello completo di gestione
πŸ’‘

Importante: L'IP 192.168.0.1 potrebbe cambiare se il PC si riavvia o il router si resetta. Per renderlo permanente, vai su Pannello di controllo β†’ Centro connessioni di rete β†’ Ethernet β†’ ProprietΓ  β†’ Protocollo Internet versione 4 (TCP/IPv4) e imposta manualmente IP statico 192.168.0.1, subnet mask 255.255.255.0, gateway 192.168.0.7.

9. Configurazione Firewall Windows

Se gli altri dispositivi non riescono a connettersi al server, Γ¨ necessario aprire la porta 3000 nel Firewall di Windows:

  1. 1
    Apri Windows Defender Firewall con sicurezza avanzata

    Premi Windows, cerca "Windows Defender Firewall" e apri la versione "con sicurezza avanzata".

  2. 2
    Crea una nuova regola in entrata

    Nel pannello sinistro, clicca su "Regole connessioni in entrata" β†’ "Nuova regola..." nel pannello destro.

    • Tipo di regola: Porta
    • Protocollo: TCP
    • Porte locali specifiche: 3000
    • Azione: Consenti la connessione
    • Profilo: Privato (e Dominio se presente)
    • Nome: Studio Ippocrate

Alternativa rapida da Prompt dei Comandi (come Amministratore)

netsh advfirewall firewall add rule name="Studio Ippocrate" ^
  dir=in action=allow protocol=TCP localport=3000

10. Risoluzione problemi comuni

❌

Errore: "EADDRINUSE" o "porta 3000 giΓ  in uso"

Un'altra istanza del server Γ¨ giΓ  in esecuzione. Esegui:

pm2 delete Ippocrate
pm2 start server.js --name "Ippocrate"
❌

Gli altri dispositivi non si connettono

Verifica: (1) tutti sulla stessa rete WiFi, (2) hai aperto la porta 3000 nel Firewall (vedi sezione 9), (3) stai usando l'IP corretto. Riesegui ipconfig per verificare l'IP attuale.

❌

Errore: "Cannot find module 'express'"

Le dipendenze non sono installate. Rientra nella cartella del progetto ed esegui:

cd C:\StudioIppocrate
npm install
❌

Il server si ferma dopo la chiusura del prompt

Assicurati di aver avviato il server tramite PM2 (pm2 start server.js --name "Ippocrate") e non con node server.js.

❌

Il server non si avvia dopo il riavvio del PC

Riconfigurazione avvio automatico:

pm2 save
pm2-startup install
βœ…

Controllo rapido che tutto funzioni

pm2 list         ← deve mostrare "Ippocrate online"
pm2 logs Ippocrate --lines 20  ← ultimi 20 log

πŸ“ž

Aggiornare i file

Per aggiornare i file HTML (index, medico, monitor, admin) basta sostituire i file nella cartella public\ e ricaricare il browser sui dispositivi. Non serve riavviare il server.

Per aggiornare server.js, invece, esegui: pm2 restart Ippocrate