
Node.js es la base de muchísimas aplicaciones web modernas: APIs con Express, tiendas con Next.js, paneles internos o las apps que generan herramientas de IA. Pero una app Node.js no se publica subiendo archivos y ya: necesita un proceso que esté siempre encendido.
En esta guía te explicamos qué hosting necesitas, cómo publicar tu app en un hosting con cPanel paso a paso y en qué casos conviene un VPS.
En este artículo:
- Qué necesita una aplicación Node.js
- Opción 1: hosting compartido con Setup Node.js App
- Opción 2: un VPS para Node.js
- Compartido o VPS: cómo elegir
- Errores frecuentes al publicar una app Node.js
- Bases de datos para tu app Node.js
- Cómo actualizar tu app sin cortes
- Seguridad básica para tu app
- Preguntas frecuentes
Qué necesita una aplicación Node.js
Una web en PHP o HTML se ejecuta cuando alguien la visita. Una app Node.js, en cambio, es un servidor que arranca una vez y se queda escuchando. Para publicarla necesitas:
- La versión de Node.js que pide tu proyecto (la ves en la documentación del framework o en
package.json). - Instalar las dependencias con
npm install. - Un archivo de arranque (por ejemplo
app.jsoserver.js). - Algo que mantenga la app encendida y la reinicie si se detiene, y que le pase las visitas del dominio.
Opción 1: hosting compartido con Setup Node.js App
El hosting compartido de K2WebHost incluye en cPanel la herramienta Setup Node.js App, que se encarga de mantener la app en marcha y de conectarla con tu dominio:
- En cPanel, abre Setup Node.js App y pulsa Create Application.
- Elige la versión de Node.js que necesita tu proyecto.
- Elige el modo Production.
- Indica la carpeta de la aplicación y la dirección web donde se verá.
- Indica el archivo de arranque, por ejemplo
app.js. - Sube tu código a esa carpeta (sin la carpeta
node_modules). - Pulsa Run NPM Install para instalar las dependencias de tu
package.json. - Añade tus variables de entorno desde el mismo panel y reinicia la app.
Un detalle importante: en este tipo de hosting tu app no debe fijar un puerto propio a mano. Usa el puerto que recibe en la variable PORT:
const port = process.env.PORT || 3000;
app.listen(port);
Los planes compartidos empiezan en US$2.20 al mes (en la web verás el precio en tu moneda) e incluyen SSL gratis y discos NVMe.
Opción 2: un VPS para Node.js
Con un VPS tienes acceso root e instalas tú la versión de Node.js, un gestor de procesos como PM2 y Nginx como proxy inverso con SSL. Es la opción para apps con mucho tráfico, conexiones en tiempo real o varios servicios a la vez. Si vas por este camino, te será útil nuestra guía sobre cómo configurar Nginx como proxy inverso para Node.js.
Nuestros VPS empiezan en US$6.99 al mes con 4 GB de RAM y 2 cores Intel Xeon.
Compartido o VPS: cómo elegir
| Tu caso | Recomendación |
|---|---|
| API pequeña con Express | Hosting compartido con Setup Node.js App |
| Web de un proyecto personal o prototipo | Hosting compartido |
| Web generada con una herramienta de IA que necesita servidor | Compartido si la versión de Node.js está disponible; si no, VPS |
| WebSockets o chat en tiempo real con muchos usuarios | VPS |
| Varias apps y bases de datos en el mismo servidor | VPS |
| Trabajos en segundo plano o colas | VPS |
Errores frecuentes al publicar una app Node.js
- Subir la carpeta node_modules: pesa mucho y puede no funcionar en el servidor. Instala las dependencias allí.
- Usar un puerto fijo: en hosting compartido, usa siempre
process.env.PORT. - Olvidar compilar: si usas TypeScript o un framework que genera una carpeta de salida, compila antes y arranca desde esa carpeta.
- Versiones distintas: si en tu computadora usas una versión de Node.js y en el servidor otra, pueden aparecer errores. Usa la misma.
- Claves en el código: guárdalas como variables de entorno.
Bases de datos para tu app Node.js
En el hosting compartido tienes bases de datos MySQL incluidas en cada plan (desde una en el plan Iniciate hasta ocho en el plan Master). Node.js se conecta a MySQL con paquetes como mysql2 o con un ORM como Prisma. Guarda siempre el usuario y la contraseña de la base de datos en variables de entorno.
Si tu proyecto usa MongoDB o PostgreSQL, puedes instalarlos en un VPS o usar un servicio de base de datos externo y conectarte desde tu app. Para proyectos que guardan pocos datos, también puedes usar SQLite.
Cómo actualizar tu app sin cortes
- Prueba los cambios en tu computadora con la misma versión de Node.js que en el servidor.
- Haz una copia de la carpeta de la app y de la base de datos.
- Sube los archivos nuevos (sin
node_modules) y, si cambiaste dependencias, vuelve a ejecutar la instalación desde el panel. - Si tu proyecto se compila, compila antes de subir o ejecuta el paso de compilación en el servidor.
- Reinicia la aplicación desde Setup Node.js App y revisa que responda.
Si la app no arranca después de actualizar, revisa el registro de errores y restaura la copia mientras encuentras el problema.
Seguridad básica para tu app
Una app Node.js publicada en internet recibe visitas de bots desde el primer día. Unas medidas sencillas evitan la mayoría de problemas:
- Mantén las dependencias al día y revisa los avisos de seguridad de los paquetes que usas.
- No muestres errores detallados a los visitantes: registra el detalle en el servidor y enseña un mensaje genérico.
- Valida todo lo que llega de formularios y APIs antes de guardarlo en la base de datos.
- Usa contraseñas fuertes para la base de datos y el panel, y no las compartas por chat o correo.
- Haz copias de seguridad de la base de datos con regularidad, además de las que incluye tu plan.
¿Tu proyecto necesita su propio servidor?
Cuando tu aplicación, tu base de datos o tu entorno de pruebas ya no caben en tu computadora, un VPS te da recursos dedicados y acceso root. En K2WebHost tienes VPS con discos NVMe, sitios rápidos en hosting compartido y soporte en español 24/7.
Preguntas frecuentes
Sí. Puedes crear y gestionar aplicaciones Node.js desde cPanel con la herramienta Setup Node.js App.
Sí. Al crear la aplicación eliges la versión entre las disponibles en el panel. Si necesitas una versión que no aparezca, un VPS te permite instalarla.
Lo más habitual es que use un puerto fijo en lugar de process.env.PORT, que falten dependencias o que el archivo de arranque no sea el indicado en el panel.
Cuando tu app usa WebSockets con muchos usuarios, varios servicios a la vez, tareas en segundo plano o más recursos de los que ofrece un plan compartido.
En K2WebHost, el hosting compartido empieza en US$2.20 al mes y los VPS en US$6.99 al mes. En nuestra web verás el precio en tu moneda.
Sí. Nuestro soporte en español 24/7 puede ayudarte a configurar la aplicación en cPanel y a revisar errores de arranque.