{"id":625,"date":"2026-07-31T19:17:50","date_gmt":"2026-07-31T17:17:50","guid":{"rendered":"https:\/\/blumhost.net\/blog\/?p=625"},"modified":"2026-07-31T19:17:52","modified_gmt":"2026-07-31T17:17:52","slug":"como-desplegar-nodejs-cpanel","status":"publish","type":"post","link":"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/","title":{"rendered":"C\u00f3mo desplegar una aplicaci\u00f3n Node.js en hosting cPanel"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Node.js es uno de los entornos de ejecuci\u00f3n m\u00e1s populares para construir aplicaciones web, APIs y herramientas de automatizaci\u00f3n con JavaScript en el servidor. Y aunque muchos desarrolladores asumen que necesitan un VPS para correrlo, la realidad es que cualquier <a href=\"https:\/\/blumhost.net\/hosting\" target=\"_blank\" rel=\"noreferrer noopener\">hosting cPanel moderno<\/a> incluye soporte para Node.js a trav\u00e9s de la herramienta <strong>Setup Node.js App<\/strong>, lo que permite desplegarlo directamente desde el panel sin tocar la l\u00ednea de comandos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En esta gu\u00eda te explico el proceso completo: desde preparar tu aplicaci\u00f3n en local hasta tenerla corriendo en producci\u00f3n, pasando por los errores m\u00e1s frecuentes y c\u00f3mo resolverlos.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_74 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Tabla de Contenidos<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabla de contenidos\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Que_es_Setup_Nodejs_App_y_como_funciona_en_cPanel\" >Qu\u00e9 es Setup Node.js App y c\u00f3mo funciona en cPanel<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Antes_de_empezar_prepara_tu_aplicacion_en_local\" >Antes de empezar: prepara tu aplicaci\u00f3n en local<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Paso_a_paso_desplegar_Nodejs_en_cPanel\" >Paso a paso: desplegar Node.js en cPanel<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Paso_1_%E2%80%94_Sube_los_archivos_al_servidor\" >Paso 1 \u2014 Sube los archivos al servidor<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Paso_2_%E2%80%94_Accede_a_Setup_Nodejs_App\" >Paso 2 \u2014 Accede a Setup Node.js App<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Paso_3_%E2%80%94_Configura_la_aplicacion\" >Paso 3 \u2014 Configura la aplicaci\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Paso_4_%E2%80%94_Crea_la_aplicacion\" >Paso 4 \u2014 Crea la aplicaci\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Paso_5_%E2%80%94_Instala_las_dependencias_npm\" >Paso 5 \u2014 Instala las dependencias npm<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Paso_6_%E2%80%94_Reinicia_y_verifica\" >Paso 6 \u2014 Reinicia y verifica<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Configurar_variables_de_entorno\" >Configurar variables de entorno<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Ejecutar_scripts_npm_personalizados\" >Ejecutar scripts npm personalizados<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Como_actualizar_la_aplicacion_despues_del_despliegue\" >C\u00f3mo actualizar la aplicaci\u00f3n despu\u00e9s del despliegue<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Errores_frecuentes_y_como_resolverlos\" >Errores frecuentes y c\u00f3mo resolverlos<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Error_503_o_%C2%ABApplication_Not_Started%C2%BB_al_acceder_a_la_URL\" >Error 503 o \u00abApplication Not Started\u00bb al acceder a la URL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#La_aplicacion_funciona_en_local_pero_falla_en_cPanel\" >La aplicaci\u00f3n funciona en local pero falla en cPanel<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#npm_install_falla_o_da_errores_de_permisos\" >npm install falla o da errores de permisos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Los_cambios_en_el_codigo_no_aparecen_en_la_web\" >Los cambios en el c\u00f3digo no aparecen en la web<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Ejemplo_completo_API_REST_con_Express_en_cPanel\" >Ejemplo completo: API REST con Express en cPanel<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Que_plan_de_BlumHost_necesitas_para_Nodejs\" >Qu\u00e9 plan de BlumHost necesitas para Node.js<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#Preguntas_frecuentes\" >Preguntas frecuentes<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Que_es_Setup_Nodejs_App_y_como_funciona_en_cPanel\"><\/span>Qu\u00e9 es Setup Node.js App y c\u00f3mo funciona en cPanel<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Setup Node.js App es la herramienta integrada en cPanel que permite crear y gestionar aplicaciones Node.js sin necesidad de acceso root ni configuraci\u00f3n manual del servidor. Est\u00e1 disponible en todos los planes de hosting compartido de BlumHost.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo que hace por ti es:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Crear un entorno Node.js aislado para tu aplicaci\u00f3n con la versi\u00f3n que elijas<\/li>\n\n\n\n<li>Configurar el proxy inverso para que tu dominio apunte a tu app<\/li>\n\n\n\n<li>Gestionar el ciclo de vida de la aplicaci\u00f3n (inicio, parada, reinicio)<\/li>\n\n\n\n<li>Permitir instalar dependencias npm y ejecutar scripts del <code>package.json<\/code><\/li>\n\n\n\n<li>Administrar variables de entorno de forma segura<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Internamente, cPanel usa <strong>Phusion Passenger<\/strong> como servidor de aplicaciones, que act\u00faa de puente entre el servidor web (Apache o LiteSpeed) y tu proceso Node.js. Esto significa que no tienes que preocuparte por los puertos: tu app escucha a trav\u00e9s de un socket Unix y el servidor web enruta el tr\u00e1fico autom\u00e1ticamente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Antes_de_empezar_prepara_tu_aplicacion_en_local\"><\/span>Antes de empezar: prepara tu aplicaci\u00f3n en local<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de subir nada al servidor, tu aplicaci\u00f3n debe estar en un estado listo para producci\u00f3n. Comprueba estos puntos:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>El archivo de entrada existe y es correcto.<\/strong> Necesitas un archivo <code>.js<\/code> que arranque el servidor \u2014 habitualmente <code>app.js<\/code>, <code>server.js<\/code> o <code>index.js<\/code>. Este ser\u00e1 el que cPanel ejecute al iniciar la aplicaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tienes un <code>package.json<\/code> en la ra\u00edz del proyecto.<\/strong> Este archivo es obligatorio: cPanel lo usa para instalar las dependencias con <code>npm install<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Las dependencias est\u00e1n listadas en <code>package.json<\/code>.<\/strong> Todo lo que uses debe estar declarado en <code>dependencies<\/code> (no solo en <code>devDependencies<\/code>). Si una librer\u00eda solo est\u00e1 en <code>devDependencies<\/code>, no se instalar\u00e1 cuando ejecutes npm install en el servidor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tu aplicaci\u00f3n no escucha en un puerto fijo.<\/strong> En cPanel con Passenger, el puerto lo asigna el sistema. La forma correcta de escribirlo es:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">javascript<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const port = process.env.PORT || 3000;\napp.listen(port, () =&gt; {\n  console.log(`Servidor escuchando en el puerto ${port}`);\n});<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Passenger inyecta autom\u00e1ticamente la variable <code>PORT<\/code> con el valor correcto. Si tu app intenta escuchar en un puerto fijo como el 80 o el 3000, fallar\u00e1 en cPanel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>La carpeta <code>node_modules<\/code> no va al servidor.<\/strong> Nunca subas <code>node_modules<\/code>: ocupa cientos de megas y las dependencias nativas deben recompilarse para la arquitectura del servidor. Compila las dependencias directamente en cPanel usando el bot\u00f3n de npm install.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Paso_a_paso_desplegar_Nodejs_en_cPanel\"><\/span>Paso a paso: desplegar Node.js en cPanel<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Paso_1_%E2%80%94_Sube_los_archivos_al_servidor\"><\/span>Paso 1 \u2014 Sube los archivos al servidor<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Accede al <strong>Administrador de archivos<\/strong> de cPanel y crea una carpeta para tu aplicaci\u00f3n dentro de tu directorio home. Por ejemplo: <code>mi-app-node<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sube ah\u00ed todos los archivos de tu proyecto <strong>excepto<\/strong> <code>node_modules<\/code>. Las opciones para subir los archivos son:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Administrador de archivos \u2192 Cargar (arrastra un <code>.zip<\/code> y luego extrae)<\/li>\n\n\n\n<li>FTP con Filezilla o similar<\/li>\n\n\n\n<li>SSH con <code>scp<\/code> si tienes acceso habilitado<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Si subes un <code>.zip<\/code>, una vez extra\u00eddo ver\u00e1s la estructura de tu proyecto dentro de la carpeta que hayas creado.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Paso_2_%E2%80%94_Accede_a_Setup_Nodejs_App\"><\/span>Paso 2 \u2014 Accede a Setup Node.js App<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En el panel principal de cPanel, localiza la secci\u00f3n <strong>Software<\/strong> y haz clic en <strong>Setup Node.js App<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"655\" src=\"https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2026\/07\/setup-node-js-cpanel-1024x655.png\" alt=\"NodeJs setup app cpanel blumhost\" class=\"wp-image-626\" srcset=\"https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2026\/07\/setup-node-js-cpanel-1024x655.png 1024w, https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2026\/07\/setup-node-js-cpanel-300x192.png 300w, https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2026\/07\/setup-node-js-cpanel-768x491.png 768w, https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2026\/07\/setup-node-js-cpanel.png 1157w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ver\u00e1s el listado de aplicaciones Node.js activas en tu cuenta. La primera vez estar\u00e1 vac\u00edo. Haz clic en <strong>Create Application<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Paso_3_%E2%80%94_Configura_la_aplicacion\"><\/span>Paso 3 \u2014 Configura la aplicaci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El formulario de creaci\u00f3n tiene cinco campos principales:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Node.js version<\/strong> Selecciona la versi\u00f3n de Node.js que necesita tu aplicaci\u00f3n. Si no tienes un requisito espec\u00edfico, elige la versi\u00f3n <strong>LTS m\u00e1s reciente<\/strong> disponible. Las versiones LTS (Long Term Support) son las m\u00e1s estables y las que reciben actualizaciones de seguridad durante m\u00e1s tiempo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para saber qu\u00e9 versi\u00f3n usas en local, ejecuta <code>node --version<\/code> en tu terminal y selecciona la misma en cPanel para evitar incompatibilidades.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Application mode<\/strong> Dos opciones: <code>development<\/code> o <code>production<\/code>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>En <strong>development<\/strong>, Node.js muestra mensajes de error detallados y recarga algunos elementos autom\u00e1ticamente. \u00datil para depurar problemas durante el despliegue inicial.<\/li>\n\n\n\n<li>En <strong>production<\/strong>, los mensajes de error no se exponen al usuario, el rendimiento mejora y el comportamiento es el correcto para una web real.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Empieza con <code>development<\/code> para verificar que todo funciona, y c\u00e1mbialo a <code>production<\/code> una vez que la aplicaci\u00f3n responda correctamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Application root<\/strong> La ruta al directorio donde est\u00e1n los archivos de tu aplicaci\u00f3n, <strong>relativa a tu carpeta home<\/strong>. Si subiste los archivos a <code>\/home\/tuusuario\/mi-app-node\/<\/code>, en este campo escribes simplemente <code>mi-app-node<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Application URL<\/strong> La URL desde la que ser\u00e1 accesible tu aplicaci\u00f3n. Puedes elegir:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Opci\u00f3n<\/th><th>Ejemplo<\/th><\/tr><\/thead><tbody><tr><td>Dominio ra\u00edz<\/td><td><code>tudominio.com<\/code><\/td><\/tr><tr><td>Subdominio<\/td><td><code>api.tudominio.com<\/code><\/td><\/tr><tr><td>Ruta del dominio<\/td><td><code>tudominio.com\/app<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Si usas un subdominio, cr\u00e9alo primero desde cPanel \u2192 Dominios antes de configurarlo aqu\u00ed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Application startup file<\/strong> El archivo JavaScript que Node.js ejecutar\u00e1 al arrancar. Escribe el nombre del archivo sin ruta, por ejemplo <code>app.js<\/code> o <code>server.js<\/code>. Debe existir en el directorio que indicaste en Application root.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Paso_4_%E2%80%94_Crea_la_aplicacion\"><\/span>Paso 4 \u2014 Crea la aplicaci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Haz clic en <strong>Create<\/strong>. cPanel configurar\u00e1 el entorno y la aplicaci\u00f3n aparecer\u00e1 en el listado con estado <strong>Running<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para verificar que funciona, abre la URL que configuraste en el navegador. Si tu aplicaci\u00f3n arranca sin errores, la ver\u00e1s respondiendo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Paso_5_%E2%80%94_Instala_las_dependencias_npm\"><\/span>Paso 5 \u2014 Instala las dependencias npm<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Desde el listado de aplicaciones, haz clic en el icono de edici\u00f3n de tu app para entrar a la pantalla de gesti\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed encontrar\u00e1s el bot\u00f3n <strong>Run NPM Install<\/strong>. Haz clic en \u00e9l para que cPanel ejecute <code>npm install<\/code> en el directorio de tu aplicaci\u00f3n e instale todas las dependencias declaradas en <code>package.json<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Espera a que termine \u2014 dependiendo del n\u00famero de paquetes puede tardar entre unos segundos y varios minutos. Cuando acabe, ver\u00e1s el resultado de la instalaci\u00f3n en el log que aparece en pantalla.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Paso_6_%E2%80%94_Reinicia_y_verifica\"><\/span>Paso 6 \u2014 Reinicia y verifica<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s de instalar las dependencias, haz clic en <strong>Restart<\/strong> para reiniciar la aplicaci\u00f3n con las dependencias ya instaladas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Accede de nuevo a la URL de tu aplicaci\u00f3n. Si todo est\u00e1 correcto, tu app Node.js estar\u00e1 funcionando en producci\u00f3n.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Configurar_variables_de_entorno\"><\/span>Configurar variables de entorno<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Si tu aplicaci\u00f3n usa un archivo <code>.env<\/code> para credenciales de base de datos, claves de API u otras configuraciones, puedes gestionarlas directamente desde cPanel sin crear el archivo manualmente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En la pantalla de gesti\u00f3n de tu aplicaci\u00f3n, despl\u00e1zate hasta la secci\u00f3n <strong>Environment Variables<\/strong>. Aqu\u00ed puedes a\u00f1adir pares clave-valor que estar\u00e1n disponibles en tu aplicaci\u00f3n a trav\u00e9s de <code>process.env<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Variable<\/th><th>Valor<\/th><\/tr><\/thead><tbody><tr><td><code>DATABASE_URL<\/code><\/td><td><code>mysql:\/\/usuario:pass@localhost\/mibd<\/code><\/td><\/tr><tr><td><code>API_KEY<\/code><\/td><td><code>sk_live_...<\/code><\/td><\/tr><tr><td><code>NODE_ENV<\/code><\/td><td><code>production<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s de a\u00f1adir o modificar variables de entorno, haz clic en <strong>Restart<\/strong> para que la aplicaci\u00f3n las cargue.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ventaja respecto al archivo <code>.env<\/code>: las variables configuradas aqu\u00ed no est\u00e1n en los archivos del proyecto, as\u00ed que no pueden acabar en un repositorio Git por accidente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ejecutar_scripts_npm_personalizados\"><\/span>Ejecutar scripts npm personalizados<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s de <code>npm install<\/code>, cPanel permite ejecutar cualquier script definido en la secci\u00f3n <code>scripts<\/code> de tu <code>package.json<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, si tienes un script de build:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">json<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"scripts\": {\n    \"build\": \"tsc --outDir dist\",\n    \"migrate\": \"node scripts\/migrate.js\"\n  }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Desde la pantalla de gesti\u00f3n de la aplicaci\u00f3n ver\u00e1s estos scripts disponibles en un desplegable. Puedes ejecutarlos directamente desde el panel sin necesidad de SSH.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto es especialmente \u00fatil para aplicaciones TypeScript (donde necesitas compilar antes de iniciar), proyectos con migraciones de base de datos, o cualquier tarea de preparaci\u00f3n que requiera ejecutarse tras un despliegue.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Como_actualizar_la_aplicacion_despues_del_despliegue\"><\/span>C\u00f3mo actualizar la aplicaci\u00f3n despu\u00e9s del despliegue<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El flujo para actualizar una aplicaci\u00f3n ya desplegada es:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Sube los archivos actualizados al mismo directorio de la aplicaci\u00f3n (por FTP, Administrador de archivos o SSH)<\/li>\n\n\n\n<li>Si has a\u00f1adido o eliminado dependencias npm, ejecuta <strong>Run NPM Install<\/strong> de nuevo<\/li>\n\n\n\n<li>Si tienes scripts de build, ejecuta el script correspondiente<\/li>\n\n\n\n<li>Haz clic en <strong>Restart<\/strong> para que la aplicaci\u00f3n recargue el c\u00f3digo<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Node.js no recarga el c\u00f3digo autom\u00e1ticamente al detectar cambios en los archivos \u2014 siempre necesitas reiniciar manualmente desde el panel o mediante SSH.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Errores_frecuentes_y_como_resolverlos\"><\/span>Errores frecuentes y c\u00f3mo resolverlos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Error_503_o_%C2%ABApplication_Not_Started%C2%BB_al_acceder_a_la_URL\"><\/span>Error 503 o \u00abApplication Not Started\u00bb al acceder a la URL<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La aplicaci\u00f3n no est\u00e1 en estado Running. Causas m\u00e1s comunes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>El <strong>startup file<\/strong> no existe en el directorio de la aplicaci\u00f3n. Verifica que el archivo indicado (por ejemplo <code>app.js<\/code>) est\u00e1 realmente en el Application root.<\/li>\n\n\n\n<li>La aplicaci\u00f3n falla al arrancar por un error de c\u00f3digo. Activa el modo <code>development<\/code> temporalmente y revisa el log de errores de cPanel para ver el mensaje de error completo.<\/li>\n\n\n\n<li>Las dependencias no est\u00e1n instaladas. Ejecuta <strong>Run NPM Install<\/strong> desde la pantalla de gesti\u00f3n.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Para ver el log de errores: cPanel \u2192 M\u00e9tricas \u2192 Errores, o consulta el archivo de log espec\u00edfico de la aplicaci\u00f3n que cPanel genera en el directorio de la app.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"La_aplicacion_funciona_en_local_pero_falla_en_cPanel\"><\/span>La aplicaci\u00f3n funciona en local pero falla en cPanel<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Las causas m\u00e1s habituales son:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Versi\u00f3n de Node.js diferente.<\/strong> Comprueba qu\u00e9 versi\u00f3n usas en local con <code>node --version<\/code> y aseg\u00farate de seleccionar la misma en cPanel.<\/li>\n\n\n\n<li><strong>Puerto fijo en el c\u00f3digo.<\/strong> Si tu aplicaci\u00f3n escucha en un puerto espec\u00edfico con <code>app.listen(3000)<\/code>, en cPanel fallar\u00e1 porque Passenger gestiona el puerto. Usa <code>process.env.PORT || 3000<\/code> como se indic\u00f3 antes.<\/li>\n\n\n\n<li><strong>M\u00f3dulos nativos.<\/strong> Si alg\u00fan paquete npm incluye c\u00f3digo nativo en C++, necesita recompilarse en el servidor. Al ejecutar <code>npm install<\/code> desde cPanel esto sucede autom\u00e1ticamente, pero aseg\u00farate de no subir la carpeta <code>node_modules<\/code> de tu m\u00e1quina local.<\/li>\n\n\n\n<li><strong>Rutas absolutas de archivos.<\/strong> Si tu c\u00f3digo usa rutas absolutas que solo existen en tu m\u00e1quina, fallar\u00e1 en el servidor. Usa siempre <code>__dirname<\/code> o rutas relativas.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"npm_install_falla_o_da_errores_de_permisos\"><\/span>npm install falla o da errores de permisos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Verifica que:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>El archivo <code>package.json<\/code> existe en el Application root (no en una subcarpeta)<\/li>\n\n\n\n<li>No hay una carpeta <code>node_modules<\/code> de una instalaci\u00f3n previa \u2014 si la hay, elim\u00ednala desde el Administrador de archivos y vuelve a ejecutar npm install<\/li>\n\n\n\n<li>La versi\u00f3n de Node.js seleccionada es compatible con las dependencias de tu proyecto<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Los_cambios_en_el_codigo_no_aparecen_en_la_web\"><\/span>Los cambios en el c\u00f3digo no aparecen en la web<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Node.js no tiene recarga autom\u00e1tica en producci\u00f3n. Despu\u00e9s de modificar archivos, siempre haz clic en <strong>Restart<\/strong> desde la pantalla de gesti\u00f3n de la aplicaci\u00f3n.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ejemplo_completo_API_REST_con_Express_en_cPanel\"><\/span>Ejemplo completo: API REST con Express en cPanel<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para hacer esto concreto, aqu\u00ed tienes el c\u00f3digo m\u00ednimo de una API con Express que funciona correctamente en cPanel:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>package.json<\/code><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">json<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"name\": \"mi-api\",\n  \"version\": \"1.0.0\",\n  \"description\": \"API REST de ejemplo\",\n  \"main\": \"app.js\",\n  \"scripts\": {\n    \"start\": \"node app.js\"\n  },\n  \"dependencies\": {\n    \"express\": \"^4.18.0\"\n  }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>app.js<\/code><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">javascript<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const express = require('express');\nconst app = express();\n\napp.use(express.json());\n\napp.get('\/', (req, res) =&gt; {\n  res.json({ \n    mensaje: 'API funcionando correctamente',\n    version: process.version \n  });\n});\n\napp.get('\/salud', (req, res) =&gt; {\n  res.json({ estado: 'ok', timestamp: new Date().toISOString() });\n});\n\n\/\/ Importante: usar process.env.PORT para que funcione con Passenger\/cPanel\nconst port = process.env.PORT || 3000;\napp.listen(port, () =&gt; {\n  console.log(`API escuchando en el puerto ${port}`);\n});<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Con este c\u00f3digo, la configuraci\u00f3n en cPanel ser\u00eda:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Application root:<\/strong> la carpeta donde subiste estos archivos<\/li>\n\n\n\n<li><strong>Application startup file:<\/strong> <code>app.js<\/code><\/li>\n\n\n\n<li><strong>Application URL:<\/strong> tu dominio o subdominio<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s de crear la app y ejecutar npm install, la API responder\u00e1 en la URL que hayas configurado.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Que_plan_de_BlumHost_necesitas_para_Nodejs\"><\/span>Qu\u00e9 plan de BlumHost necesitas para Node.js<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Node.js est\u00e1 disponible en todos los planes de hosting compartido de BlumHost. La herramienta Setup Node.js App viene incluida en cPanel sin coste adicional.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Plan<\/th><th>RAM<\/th><th>Almacenamiento<\/th><th>Para qu\u00e9 es adecuado<\/th><\/tr><\/thead><tbody><tr><td><strong>Web Hosting I<\/strong><\/td><td>1 GB<\/td><td>5 GB NVMe<\/td><td>APIs peque\u00f1as, proyectos en pruebas<\/td><\/tr><tr><td><strong>Web Hosting II<\/strong><\/td><td>3 GB<\/td><td>10 GB NVMe<\/td><td>Aplicaciones con tr\u00e1fico moderado<\/td><\/tr><tr><td><strong>Web Hosting III<\/strong><\/td><td>6 GB<\/td><td>20 GB NVMe<\/td><td>M\u00faltiples apps o aplicaciones con m\u00e1s carga<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Para proyectos con alta concurrencia, procesamiento intensivo o necesidad de queue workers persistentes (tareas en segundo plano), un <strong>VPS<\/strong> es la opci\u00f3n m\u00e1s adecuada: tienes control total sobre la configuraci\u00f3n del servidor y puedes usar PM2 o systemd para gestionar el proceso Node.js.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 <a href=\"https:\/\/blumhost.net\/hosting\">Ver todos los planes de hosting de BlumHost<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Preguntas_frecuentes\"><\/span>Preguntas frecuentes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfPuedo tener varias aplicaciones Node.js en el mismo hosting?<\/strong> S\u00ed. Puedes crear m\u00faltiples aplicaciones, cada una con su propia URL (dominio, subdominio o ruta), su versi\u00f3n de Node.js y sus dependencias independientes. El n\u00famero de aplicaciones que puedes tener depende de los recursos de tu plan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfQu\u00e9 versiones de Node.js est\u00e1n disponibles?<\/strong> Las versiones disponibles dependen de las instaladas en el servidor en cada momento. Puedes verlas directamente en el selector al crear la aplicaci\u00f3n. Si necesitas una versi\u00f3n espec\u00edfica que no aparece, contacta con soporte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfPuedo usar TypeScript, Next.js o Nuxt en hosting cPanel?<\/strong> TypeScript: s\u00ed, pero necesitas compilar el c\u00f3digo TypeScript a JavaScript antes de desplegarlo (localmente con <code>tsc<\/code>) y subir los archivos <code>.js<\/code> resultantes. Next.js y Nuxt en modo SSR (renderizado en servidor) requieren m\u00e1s configuraci\u00f3n y son m\u00e1s adecuados para un VPS. En hosting compartido puedes desplegar sus versiones exportadas como sitios est\u00e1ticos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfC\u00f3mo gestiono los logs de mi aplicaci\u00f3n?<\/strong> Desde cPanel \u2192 M\u00e9tricas \u2192 Errores puedes ver los errores de tu aplicaci\u00f3n. Adem\u00e1s, si tu aplicaci\u00f3n escribe logs propios a un archivo, puedes consultarlos desde el Administrador de archivos. En mode <code>development<\/code>, los errores de Node.js aparecen tambi\u00e9n en los logs del servidor web.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfPuedo conectarme a una base de datos MySQL desde mi aplicaci\u00f3n Node.js?<\/strong> S\u00ed. Crea primero la base de datos y el usuario desde cPanel \u2192 Bases de datos MySQL. Luego usa en tu aplicaci\u00f3n Node.js el paquete <code>mysql2<\/code> o el ORM que prefieras (Sequelize, Prisma, etc.) con <code>host: 'localhost'<\/code>. Configura las credenciales a trav\u00e9s de las variables de entorno de la aplicaci\u00f3n para no exponerlas en el c\u00f3digo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfNecesito SSH para desplegar Node.js en cPanel?<\/strong> No es imprescindible. Todo el proceso \u2014 crear la aplicaci\u00f3n, instalar dependencias, configurar variables de entorno, reiniciar \u2014 se hace desde la interfaz de cPanel sin l\u00ednea de comandos. SSH es \u00fatil si quieres ejecutar scripts personalizados o depurar problemas directamente en el servidor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfPuedo usar WebSockets con Node.js en hosting cPanel?<\/strong> Depende de la configuraci\u00f3n del servidor. Passenger (que es lo que usa cPanel) tiene soporte para WebSockets, pero puede haber restricciones a nivel de proxy. Para aplicaciones que dependan mucho de WebSockets en tiempo real, un VPS con configuraci\u00f3n propia es m\u00e1s recomendable.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Node.js es uno de los entornos de ejecuci\u00f3n m\u00e1s populares para construir aplicaciones web, APIs y herramientas de automatizaci\u00f3n con JavaScript en el servidor. Y aunque muchos desarrolladores asumen que necesitan un VPS para correrlo, la realidad es que cualquier&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,65,66],"tags":[163],"class_list":["post-625","post","type-post","status-publish","format-standard","hentry","category-hosting-cpanel","category-soporte-y-ayuda","category-tutoriales","tag-nodejs"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C\u00f3mo desplegar una aplicaci\u00f3n Node.js en hosting cPanel - Blog de BlumHost<\/title>\n<meta name=\"description\" content=\"Aprende a desplegar una aplicaci\u00f3n Node.js en cPanel con Setup Node.js App. Gu\u00eda completa con configuraci\u00f3n, npm install, variables de entorno y errores frecuentes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo desplegar una aplicaci\u00f3n Node.js en hosting cPanel - Blog de BlumHost\" \/>\n<meta property=\"og:description\" content=\"Aprende a desplegar una aplicaci\u00f3n Node.js en cPanel con Setup Node.js App. Gu\u00eda completa con configuraci\u00f3n, npm install, variables de entorno y errores frecuentes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog de BlumHost\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/BlumHost\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-31T17:17:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-31T17:17:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2026\/07\/setup-node-js-cpanel.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1157\" \/>\n\t<meta property=\"og:image:height\" content=\"740\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Miguel Taboada\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Miguel Taboada\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/\"},\"author\":{\"name\":\"Miguel Taboada\",\"@id\":\"https:\/\/blumhost.net\/blog\/#\/schema\/person\/33aa890af362ded38723fc4c1ef65ee7\"},\"headline\":\"C\u00f3mo desplegar una aplicaci\u00f3n Node.js en hosting cPanel\",\"datePublished\":\"2026-07-31T17:17:50+00:00\",\"dateModified\":\"2026-07-31T17:17:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/\"},\"wordCount\":2368,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/blumhost.net\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2026\/07\/setup-node-js-cpanel-1024x655.png\",\"keywords\":[\"nodejs\"],\"articleSection\":[\"Hosting cPanel\",\"Soporte y Ayuda\",\"Tutoriales\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/\",\"url\":\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/\",\"name\":\"C\u00f3mo desplegar una aplicaci\u00f3n Node.js en hosting cPanel - Blog de BlumHost\",\"isPartOf\":{\"@id\":\"https:\/\/blumhost.net\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2026\/07\/setup-node-js-cpanel-1024x655.png\",\"datePublished\":\"2026-07-31T17:17:50+00:00\",\"dateModified\":\"2026-07-31T17:17:52+00:00\",\"description\":\"Aprende a desplegar una aplicaci\u00f3n Node.js en cPanel con Setup Node.js App. Gu\u00eda completa con configuraci\u00f3n, npm install, variables de entorno y errores frecuentes.\",\"breadcrumb\":{\"@id\":\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#primaryimage\",\"url\":\"https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2026\/07\/setup-node-js-cpanel.png\",\"contentUrl\":\"https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2026\/07\/setup-node-js-cpanel.png\",\"width\":1157,\"height\":740},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/blumhost.net\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C\u00f3mo desplegar una aplicaci\u00f3n Node.js en hosting cPanel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blumhost.net\/blog\/#website\",\"url\":\"https:\/\/blumhost.net\/blog\/\",\"name\":\"Blog de BlumHost\",\"description\":\"Gu\u00eda completa con consejos pr\u00e1cticos, precios y ventajas reales para tu proyecto.\",\"publisher\":{\"@id\":\"https:\/\/blumhost.net\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blumhost.net\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/blumhost.net\/blog\/#organization\",\"name\":\"Blog de BlumHost\",\"url\":\"https:\/\/blumhost.net\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/blumhost.net\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2025\/05\/cropped-blumhost.webp\",\"contentUrl\":\"https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2025\/05\/cropped-blumhost.webp\",\"width\":240,\"height\":67,\"caption\":\"Blog de BlumHost\"},\"image\":{\"@id\":\"https:\/\/blumhost.net\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/BlumHost\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/blumhost.net\/blog\/#\/schema\/person\/33aa890af362ded38723fc4c1ef65ee7\",\"name\":\"Miguel Taboada\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/blumhost.net\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bf9731b74ae636e457ef0ddcebbeb20f37a75f89668501ce0a80767a29e02722?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bf9731b74ae636e457ef0ddcebbeb20f37a75f89668501ce0a80767a29e02722?s=96&d=mm&r=g\",\"caption\":\"Miguel Taboada\"},\"description\":\"Ingeniero en Telecomunicaciones e Inform\u00e1tica. Cre\u00e9 BlumHost para ofrecer un hosting distinto a los dem\u00e1s, que ofrezca la mejor atenci\u00f3n al cliente, al menor precio y con la mejor calidad.\",\"sameAs\":[\"https:\/\/blumhost.net\/\",\"https:\/\/es.linkedin.com\/in\/miguel-taboada-iglesias\"],\"url\":\"https:\/\/blumhost.net\/blog\/author\/miguel\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C\u00f3mo desplegar una aplicaci\u00f3n Node.js en hosting cPanel - Blog de BlumHost","description":"Aprende a desplegar una aplicaci\u00f3n Node.js en cPanel con Setup Node.js App. Gu\u00eda completa con configuraci\u00f3n, npm install, variables de entorno y errores frecuentes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/","og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo desplegar una aplicaci\u00f3n Node.js en hosting cPanel - Blog de BlumHost","og_description":"Aprende a desplegar una aplicaci\u00f3n Node.js en cPanel con Setup Node.js App. Gu\u00eda completa con configuraci\u00f3n, npm install, variables de entorno y errores frecuentes.","og_url":"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/","og_site_name":"Blog de BlumHost","article_publisher":"https:\/\/www.facebook.com\/BlumHost","article_published_time":"2026-07-31T17:17:50+00:00","article_modified_time":"2026-07-31T17:17:52+00:00","og_image":[{"width":1157,"height":740,"url":"https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2026\/07\/setup-node-js-cpanel.png","type":"image\/png"}],"author":"Miguel Taboada","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Miguel Taboada","Tiempo de lectura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#article","isPartOf":{"@id":"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/"},"author":{"name":"Miguel Taboada","@id":"https:\/\/blumhost.net\/blog\/#\/schema\/person\/33aa890af362ded38723fc4c1ef65ee7"},"headline":"C\u00f3mo desplegar una aplicaci\u00f3n Node.js en hosting cPanel","datePublished":"2026-07-31T17:17:50+00:00","dateModified":"2026-07-31T17:17:52+00:00","mainEntityOfPage":{"@id":"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/"},"wordCount":2368,"commentCount":0,"publisher":{"@id":"https:\/\/blumhost.net\/blog\/#organization"},"image":{"@id":"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#primaryimage"},"thumbnailUrl":"https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2026\/07\/setup-node-js-cpanel-1024x655.png","keywords":["nodejs"],"articleSection":["Hosting cPanel","Soporte y Ayuda","Tutoriales"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/","url":"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/","name":"C\u00f3mo desplegar una aplicaci\u00f3n Node.js en hosting cPanel - Blog de BlumHost","isPartOf":{"@id":"https:\/\/blumhost.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#primaryimage"},"image":{"@id":"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#primaryimage"},"thumbnailUrl":"https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2026\/07\/setup-node-js-cpanel-1024x655.png","datePublished":"2026-07-31T17:17:50+00:00","dateModified":"2026-07-31T17:17:52+00:00","description":"Aprende a desplegar una aplicaci\u00f3n Node.js en cPanel con Setup Node.js App. Gu\u00eda completa con configuraci\u00f3n, npm install, variables de entorno y errores frecuentes.","breadcrumb":{"@id":"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#primaryimage","url":"https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2026\/07\/setup-node-js-cpanel.png","contentUrl":"https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2026\/07\/setup-node-js-cpanel.png","width":1157,"height":740},{"@type":"BreadcrumbList","@id":"https:\/\/blumhost.net\/blog\/como-desplegar-nodejs-cpanel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blumhost.net\/blog\/"},{"@type":"ListItem","position":2,"name":"C\u00f3mo desplegar una aplicaci\u00f3n Node.js en hosting cPanel"}]},{"@type":"WebSite","@id":"https:\/\/blumhost.net\/blog\/#website","url":"https:\/\/blumhost.net\/blog\/","name":"Blog de BlumHost","description":"Gu\u00eda completa con consejos pr\u00e1cticos, precios y ventajas reales para tu proyecto.","publisher":{"@id":"https:\/\/blumhost.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blumhost.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/blumhost.net\/blog\/#organization","name":"Blog de BlumHost","url":"https:\/\/blumhost.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blumhost.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2025\/05\/cropped-blumhost.webp","contentUrl":"https:\/\/blumhost.net\/blog\/wp-content\/uploads\/2025\/05\/cropped-blumhost.webp","width":240,"height":67,"caption":"Blog de BlumHost"},"image":{"@id":"https:\/\/blumhost.net\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/BlumHost"]},{"@type":"Person","@id":"https:\/\/blumhost.net\/blog\/#\/schema\/person\/33aa890af362ded38723fc4c1ef65ee7","name":"Miguel Taboada","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blumhost.net\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/bf9731b74ae636e457ef0ddcebbeb20f37a75f89668501ce0a80767a29e02722?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bf9731b74ae636e457ef0ddcebbeb20f37a75f89668501ce0a80767a29e02722?s=96&d=mm&r=g","caption":"Miguel Taboada"},"description":"Ingeniero en Telecomunicaciones e Inform\u00e1tica. Cre\u00e9 BlumHost para ofrecer un hosting distinto a los dem\u00e1s, que ofrezca la mejor atenci\u00f3n al cliente, al menor precio y con la mejor calidad.","sameAs":["https:\/\/blumhost.net\/","https:\/\/es.linkedin.com\/in\/miguel-taboada-iglesias"],"url":"https:\/\/blumhost.net\/blog\/author\/miguel\/"}]}},"_links":{"self":[{"href":"https:\/\/blumhost.net\/blog\/wp-json\/wp\/v2\/posts\/625","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blumhost.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blumhost.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blumhost.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blumhost.net\/blog\/wp-json\/wp\/v2\/comments?post=625"}],"version-history":[{"count":1,"href":"https:\/\/blumhost.net\/blog\/wp-json\/wp\/v2\/posts\/625\/revisions"}],"predecessor-version":[{"id":627,"href":"https:\/\/blumhost.net\/blog\/wp-json\/wp\/v2\/posts\/625\/revisions\/627"}],"wp:attachment":[{"href":"https:\/\/blumhost.net\/blog\/wp-json\/wp\/v2\/media?parent=625"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blumhost.net\/blog\/wp-json\/wp\/v2\/categories?post=625"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blumhost.net\/blog\/wp-json\/wp\/v2\/tags?post=625"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}