Resumen rápido: Instalar Node.js en Windows Server en 5 pasos
El método más confiable en producción: nvm-windows.
# 1. Descargar y ejecutar nvm-setup.exe desde GitHub
# 2. Verificar la instalación
nvm version
# 3. Instalar la versión LTS
nvm install lts
# 4. Activar la versión instalada (ej. 24.16.0)
nvm use 24.16.0
# 5. Verificar Node.js y npm
node -v && npm -v
Luego, despliega tu app con PM2 para que sobreviva a los reinicios del servidor.
Requisitos previos
Antes de comenzar, asegúrate de tener:
Windows Server 2019 o 2022 con acceso de administrador
Conexión RDP activa
1 GB de RAM mínimo (2 GB recomendados para producción)
Puertos abiertos: 3000 (dev), 80/443 (prod)
PowerShell 5.1+: incluido por defecto en Windows Server 2019/2022
¿Qué método de instalación elegir?
Existen tres opciones para instalar Node.js en Windows Server. Aquí está la comparación:
Método | Caso de uso | Ventajas | Desventajas |
|---|---|---|---|
nvm-windows | Desarrolladores, producción multi-proyectos | Gestión multi-versiones, cambio rápido | Instalación ligeramente más larga |
Instalador MSI | Versión única, inicio rápido | Sencillo, familiar | Dificultad para cambiar de versión |
winget | Windows Server 2022 moderno | CLI nativo, rápido | Menos control sobre las versiones |
Recomendación: nvm-windows. En un VPS Windows en producción, necesitarás tarde o temprano alternar entre Node 20 LTS y Node 22. Mejor preverlo desde el principio.
Método 1: Instalar Node.js con nvm-windows (recomendado)
nvm-windows es el gestor de versiones de Node.js para Windows. Es un proyecto distinto de nvm (que solo funciona en Linux/macOS).
Paso 1: Descargar nvm-windows
Dirígete a la página de releases de GitHub: 👉 https://github.com/coreybutler/nvm-windows/releases
Descarga nvm-setup.exe (última versión estable, actualmente v1.2.x).
Paso 2: Lanzar el instalador
Ejecuta nvm-setup.exe como Administrador. Mantén las rutas de instalación por defecto.
Paso 3: Verificar la instalación
Abre una nueva terminal de PowerShell (importante: cierra la anterior):
nvm version
Resultado esperado: 1.2.x o superior.
Paso 4: Instalar Node.js LTS
nvm install lts
Este comando descarga automáticamente la última versión LTS (actualmente 24.16.0).
Paso 5: Activar la versión
nvm use 24.16.0
Reemplaza
24.16.0por la versión mostrada después denvm install lts.
Paso 6: Verificar Node.js y npm
node -v && npm -v
Resultado esperado:
v24.16.0
10.x.x
Paso 7: Instalar y gestionar múltiples versiones
# Instalar Node 20 LTS y Node 22
nvm install 20.19.0
nvm install 22.14.0
# Cambiar a Node 22
nvm use 22.14.0
# Listar todas las versiones instaladas
nvm list
Método 2: Instalar Node.js con el instalador MSI
Método más directo para una versión única. Ideal si solo tienes un proyecto y no planeas cambiar de versión.
Pasos
Descarga el Instalador de Windows (.msi): elige la versión LTS
Lanza el instalador y marca "Add to PATH" durante la instalación
Verifica en PowerShell:
node -v && npm -v
Limitación principal: para cambiar de versión, debes desinstalar manualmente y luego reinstalar. Poco práctico en producción.
Método 3: Instalar Node.js con winget
Disponible en Windows Server 2022 con App Installer instalado. Solo se necesita un comando:
winget install OpenJS.NodeJS.LTS
Verificación:
node -v
Nota: winget instala una versión fija. Para cambiar de versión, vuelve a usar winget upgrade o cambia a nvm-windows.
Desplegar una aplicación Node.js en Windows Server
Vamos a crear una app Express.js minimalista para validar la instalación de extremo a extremo.
Paso 1: Crear la carpeta del proyecto
mkdir C:\apps\monapp
cd C:\apps\monapp
Paso 2: Inicializar npm
npm init -y
Paso 3: Instalar Express
npm install express
Paso 4: Crear el archivo server.js
New-Item server.js
notepad server.js
Pega este código en Notepad:
const express = require('express');
const app = express();
const PORT = 3000;
app.get('/', (req, res) => {
res.send('¡Hola desde OuiHeberg VPS!');
});
app.listen(PORT, () => {
console.log(`Servidor iniciado en el puerto ${PORT}`);
});
Guarda y cierra Notepad.
Paso 5: Probar la aplicación
node server.js
Abre un navegador en tu VPS y accede a http://localhost:3000. Deberías ver:
¡Hola desde OuiHeberg VPS!
Ctrl+C para detener el servidor. Ahora pasemos a PM2 para mantenerlo en línea.
Mantener Node.js en línea con PM2
Esta es la parte que la mayoría de las guías olvidan. Sin PM2, tu app se detiene tan pronto como cierras PowerShell o el servidor se reinicia.
Paso 1: Instalar PM2
npm install -g pm2
Paso 2: Iniciar la aplicación con PM2
pm2 start C:\apps\monapp\server.js --name "monapp"
Paso 3: Configurar el inicio automático
pm2 startup
PM2 genera un comando para copiar y pegar y ejecutar. Ejecuta eso. Luego guarda el estado actual:
pm2 save
A partir de ahora, tu app se reiniciará automáticamente después de cada reinicio del VPS.
Comandos esenciales de PM2
Comando | Acción |
|---|---|
| Listar todos los procesos |
| Mostrar logs en tiempo real |
| Reiniciar la aplicación |
| Detener la aplicación |
| Monitoreo en tiempo real (CPU, RAM) |
| Eliminar el proceso de PM2 |
PM2 es gratuito y de código abierto (licencia MIT). Es el estándar de facto para la gestión de procesos Node.js en producción.
Configurar el firewall de Windows para Node.js
Sin este paso, tu app es inaccesible desde el exterior. Abre PowerShell como Administrador:
# Abrir el puerto 3000 (desarrollo)
New-NetFirewallRule -DisplayName "Node.js Dev" -Direction Inbound -Protocol TCP -LocalPort 3000 -Action Allow
# Abrir el puerto 80 (producción HTTP)
New-NetFirewallRule -DisplayName "Node.js HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
# Abrir el puerto 443 (producción HTTPS)
New-NetFirewallRule -DisplayName "Node.js HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
Verifica que las reglas estén activas:
Get-NetFirewallRule -DisplayName "Node.js*" | Select Name, Enabled
Resultado esperado: Enabled = True para cada regla.
Gestionar múltiples versiones de Node.js con nvm-windows
Esta es una de las grandes ventajas de nvm-windows: probar tu app en Node 20 LTS antes de migrar a Node 22, sin desinstalar nada.
# Listar las versiones instaladas
nvm list
# Instalar una versión específica
nvm install 20.19.0
# Cambiar a esta versión
nvm use 20.19.0
# Desinstalar una versión obsoleta
nvm uninstall 18.20.0
Caso de uso típico: tu app corre en Node 20 en producción. Instalas Node 22 con nvm install 22.14.0, pruebas con nvm use 22.14.0, y si todo va bien, actualizas la producción.
Actualizar Node.js en Windows Server
Con nvm-windows, la actualización es limpia y reversible:
# Instalar la nueva versión LTS
nvm install lts
# Activar la nueva versión (ej. 24.16.0)
nvm use 24.16.0
# Eliminar la versión anterior si todo funciona
nvm uninstall 22.14.0
Importante: siempre prueba la compatibilidad de tu aplicación antes de cambiar a producción. Algunos paquetes npm pueden tener dependencias relacionadas con una versión principal de Node.
Solución de problemas: 6 errores frecuentes
1. 'node' no es reconocido como comando
El PATH no está configurado. Cierra y vuelve a abrir PowerShell, luego relanza nvm use [versión].
2. nvm is not recognized
nvm-windows no está instalado correctamente. Reinstala nvm-setup.exe como Administrador.
3. EACCES: permission denied al hacer un npm install -g
Lanza PowerShell como Administrador antes de ejecutar el comando.
4. Port 3000 already in use
Un proceso ya ocupa el puerto. Identifícalo y deténlo:
netstat -ano | findstr :3000
taskkill /PID [PID] /F
Reemplaza [PID] por el número de proceso mostrado.
5. PM2 no reinicia después de un reinicio
El comando generado por pm2 startup no se ha ejecutado. Relanza pm2 startup, copia y pega el comando mostrado, luego haz pm2 save.
6. node_modules faltantes después de un cambio de versión nvm
Normal: cada versión de Node tiene sus propios módulos globales. Relanza npm install en la carpeta de tu proyecto después de cada nvm use.
FAQ
¿Qué versión de Node.js instalar en Windows Server?
Siempre la versión LTS (Long Term Support). Recibe parches de seguridad durante 3 años y está diseñada para la estabilidad en producción. En mayo de 2026, la LTS activa es Node.js 24.x.
¿Node.js funciona en Windows Server 2019 y 2022?
Sí, ambos son totalmente compatibles. Node.js publica binarios nativos de Windows para cada versión LTS. nvm-windows funciona en ambos.
¿Cuál es la diferencia entre nvm-windows y nvm?
nvm (nvm-sh) está diseñado solo para Linux y macOS: no funciona en Windows. nvm-windows es un proyecto separado, desarrollado por Corey Butler, que cumple el mismo rol en Windows.
¿Cómo ver qué versión de Node.js está activa?
node -v
# o
nvm list
La versión activa está marcada con un asterisco * en nvm list.
¿PM2 es gratuito?
Sí. PM2 Runtime es de código abierto bajo licencia MIT. Existe una versión de pago (PM2 Plus) para monitoreo avanzado, pero no es necesaria para la mayoría de los proyectos.
¿Se pueden ejecutar múltiples apps Node.js en el mismo VPS?
Sí, con PM2: cada app escucha en un puerto diferente (3000, 3001, 3002…). Para exponer todo eso en el puerto 80/443, utiliza un reverse proxy como Nginx o IIS al frente.
