Riepilogo rapido: Installare Node.js su Windows Server in 5 passaggi
Il metodo più affidabile in produzione: nvm-windows.
# 1. Scaricare e eseguire nvm-setup.exe da GitHub
# 2. Verificare l'installazione
nvm version
# 3. Installare la versione LTS
nvm install lts
# 4. Attivare la versione installata (es. 24.16.0)
nvm use 24.16.0
# 5. Verificare Node.js e npm
node -v && npm -v
Successivamente, distribuisci la tua app con PM2 affinché sopravviva ai riavvii del server.
Prerequisiti
Prima di iniziare, assicurati di avere:
Windows Server 2019 o 2022 con accesso amministrativo
Connessione RDP attiva
1 GB di RAM minimo (2 GB raccomandati per la produzione)
Porti aperti: 3000 (sviluppo), 80/443 (produzione)
PowerShell 5.1+: incluso per impostazione predefinita su Windows Server 2019/2022
Quale metodo di installazione scegliere?
Esistono tre opzioni per installare Node.js su Windows Server. Ecco il confronto:
Metodo | Uso | Vantaggi | Svantaggi |
|---|---|---|---|
nvm-windows | Sviluppatori, produzione multi-progetti | Gestione multi-versioni, switch rapido | Installazione leggermente più lunga |
Installatore MSI | Versione unica, avvio rapido | Facile, familiare | Difficile cambiare versione |
winget | Windows Server 2022 moderno | CLI nativo, veloce | Meno controllo sulle versioni |
Raccomandazione: nvm-windows. Su un VPS Windows in produzione, avrai prima o poi bisogno di passare tra Node 20 LTS e Node 22. È meglio prevederlo fin dall'inizio.
Metodo 1: Installare Node.js con nvm-windows (raccomandato)
nvm-windows è il gestore di versioni Node.js per Windows. È un progetto separato da nvm (che funziona solo su Linux/macOS).
Passo 1: Scaricare nvm-windows
Vai alla pagina delle release di GitHub: 👉 https://github.com/coreybutler/nvm-windows/releases
Scarica nvm-setup.exe (ultima versione stabile, attualmente v1.2.x).
Passo 2: Avviare l'installatore
Esegui nvm-setup.exe come Amministratore. Mantieni i percorsi di installazione predefiniti.
Passo 3: Verificare l'installazione
Apri un nuovo terminale PowerShell (importante: chiudi il precedente):
nvm version
Risultato atteso: 1.2.x o superiore.
Passo 4: Installare Node.js LTS
nvm install lts
Questo comando scarica automaticamente l'ultima versione LTS (attualmente 24.16.0).
Passo 5: Attivare la versione
nvm use 24.16.0
Sostituisci
24.16.0con la versione visualizzata doponvm install lts.
Passo 6: Verificare Node.js e npm
node -v && npm -v
Risultato atteso:
v24.16.0
10.x.x
Passo 7: Installare e gestire più versioni
# Installare Node 20 LTS e Node 22
nvm install 20.19.0
nvm install 22.14.0
# Passare a Node 22
nvm use 22.14.0
# Elencare tutte le versioni installate
nvm list
Metodo 2: Installare Node.js con l'installatore MSI
Metodo più diretto per una versione unica. Ideale se hai solo un progetto e non prevedi di cambiare versione.
Passaggi
Scarica il Windows Installer (.msi): scegli la versione LTS
Avvia l'installatore e seleziona "Add to PATH" durante l'installazione
Verifica in PowerShell:
node -v && npm -v
Limite principale: per cambiare versione, è necessario disinstallare manualmente e poi reinstallare. Poco pratico in produzione.
Metodo 3: Installare Node.js con winget
Disponibile su Windows Server 2022 con App Installer installato. Basta un solo comando:
winget install OpenJS.NodeJS.LTS
Verifica:
node -v
Nota: winget installa una versione fissa. Per cambiare versione, ripassa per winget upgrade o passa a nvm-windows.
Distribuire un'applicazione Node.js su Windows Server
Creeremo un'app Express.js minimalista per convalidare l'installazione end-to-end.
Passo 1: Creare la cartella del progetto
mkdir C:\apps\monapp
cd C:\apps\monapp
Passo 2: Inizializzare npm
npm init -y
Passo 3: Installare Express
npm install express
Passo 4: Creare il file server.js
New-Item server.js
notepad server.js
Incolla questo codice in Notepad:
const express = require('express');
const app = express();
const PORT = 3000;
app.get('/', (req, res) => {
res.send('Hello from OuiHeberg VPS!');
});
app.listen(PORT, () => {
console.log(`Server avviato sulla porta ${PORT}`);
});
Salva e chiudi Notepad.
Passo 5: Testare l'applicazione
node server.js
Apri un browser sul tuo VPS e accedi a http://localhost:3000. Dovresti vedere:
Hello from OuiHeberg VPS!
Ctrl+C per fermare il server. Passiamo ora a PM2 per mantenerlo online.
Mantenere Node.js online con PM2
Questa è la parte che la maggior parte delle guide dimentica. Senza PM2, la tua app si ferma non appena chiudi PowerShell o il server si riavvia.
Passo 1: Installare PM2
npm install -g pm2
Passo 2: Avviare l'applicazione con PM2
pm2 start C:\apps\monapp\server.js --name "monapp"
Passo 3: Configurare l'avvio automatico
pm2 startup
PM2 genera un comando da copiare e incollare ed eseguire. Eseguilo. Poi salva lo stato attuale:
pm2 save
Ora, la tua app si riavvia automaticamente dopo ogni riavvio del VPS.
Comandi PM2 essenziali
Comando | Azioni |
|---|---|
| Elenca tutti i processi |
| Mostra i log in tempo reale |
| Riavvia l'applicazione |
| Ferma l'applicazione |
| Monitoraggio in tempo reale (CPU, RAM) |
| Rimuovi il processo da PM2 |
PM2 è gratuito e open source (licenza MIT). È lo standard de facto per la gestione dei processi Node.js in produzione.
Configurare il firewall di Windows per Node.js
Senze questo passaggio, la tua app è inaccessibile dall'esterno. Apri PowerShell come Amministratore:
# Aprire la porta 3000 (sviluppo)
New-NetFirewallRule -DisplayName "Node.js Dev" -Direction Inbound -Protocol TCP -LocalPort 3000 -Action Allow
# Aprire la porta 80 (produzione HTTP)
New-NetFirewallRule -DisplayName "Node.js HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
# Aprire la porta 443 (produzione HTTPS)
New-NetFirewallRule -DisplayName "Node.js HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
Verifica che le regole siano attive:
Get-NetFirewallRule -DisplayName "Node.js*" | Select Name, Enabled
Risultato atteso: Enabled = True per ogni regola.
Gestire più versioni di Node.js con nvm-windows
Questo è uno dei grandi vantaggi di nvm-windows: testare la tua app su Node 20 LTS prima di migrare a Node 22, senza disinstallare nulla.
# Elencare le versioni installate
nvm list
# Installare una versione specifica
nvm install 20.19.0
# Passare a questa versione
nvm use 20.19.0
# Disinstallare una versione obsoleta
nvm uninstall 18.20.0
Uso tipico: la tua app gira su Node 20 in produzione. Installa Node 22 con nvm install 22.14.0, testalo con nvm use 22.14.0, e se tutto va bene, aggiorna la produzione.
Aggiornare Node.js su Windows Server
Con nvm-windows, l'aggiornamento è pulito e reversibile:
# Installare la nuova versione LTS
nvm install lts
# Attivare la nuova versione (es. 24.16.0)
nvm use 24.16.0
# Rimuovere la vecchia versione se tutto funziona
nvm uninstall 22.14.0
Importante: testa sempre la compatibilità della tua applicazione prima di passare in produzione. Alcuni pacchetti npm possono avere dipendenze legate a una versione principale di Node.
Risoluzione dei problemi: 6 errori comuni
1. 'node' non è riconosciuto come comando
Il PATH non è configurato. Chiudi e riapri PowerShell, poi rilancia nvm use [version].
2. nvm is not recognized
nvm-windows non è installato correttamente. Reinstalla nvm-setup.exe come Amministratore.
3. EACCES: permission denied durante un npm install -g
Avvia PowerShell come Amministratore prima di eseguire il comando.
4. Port 3000 already in use
Un processo occupa già la porta. Identificalo e fermalo:
netstat -ano | findstr :3000
taskkill /PID [PID] /F
Sostituisci [PID] con il numero di processo visualizzato.
5. PM2 non si riavvia dopo un riavvio
Il comando generato da pm2 startup non è stato eseguito. Rilancia pm2 startup, copia e incolla il comando visualizzato, poi fai pm2 save.
6. node_modules mancanti dopo un cambio di versione nvm
Normale: ogni versione di Node ha i propri moduli globali. Rilancia npm install nella cartella del tuo progetto dopo ogni nvm use.
FAQ
Quale versione di Node.js installare su Windows Server?
Sempre la versione LTS (Long Term Support). Riceve patch di sicurezza per 3 anni ed è progettata per la stabilità in produzione. A maggio 2026, la LTS attiva è Node.js 24.x.
Node.js funziona su Windows Server 2019 e 2022?
Sì, entrambi sono pienamente supportati. Node.js pubblica binari Windows nativi per ogni versione LTS. nvm-windows funziona su entrambi.
Qual è la differenza tra nvm-windows e nvm?
nvm (nvm-sh) è progettato solo per Linux e macOS: non funziona su Windows. nvm-windows è un progetto separato, sviluppato da Corey Butler, che svolge lo stesso ruolo su Windows.
Come vedere quale versione di Node.js è attiva?
node -v
# o
nvm list
La versione attiva è contrassegnata da un asterisco * in nvm list.
PM2 è gratuito?
Sì. PM2 Runtime è open source sotto licenza MIT. Esiste una versione a pagamento (PM2 Plus) per il monitoraggio avanzato, ma non è necessaria per la maggior parte dei progetti.
Si possono eseguire più app Node.js sullo stesso VPS?
Sì, con PM2: ogni app ascolta su una porta diversa (3000, 3001, 3002…). Per esporre tutto ciò sulla porta 80/443, utilizza un reverse proxy come Nginx o IIS come front-end.
