CloudPanel es un potente panel de control diseñado para gestionar servidores de manera eficiente, permitiendo alojar desde sitios estáticos en HTML hasta aplicaciones dinámicas con PHP. Además, ofrece soporte nativo para entornos de ejecución como Node.js y Python, lo que facilita el despliegue y la administración de aplicaciones modernas.
En este tutorial, aprenderemos a desplegar una aplicación Node.js en CloudPanel de manera sencilla y optimizada.
Como ejemplo, implementaremos una aplicación que genera códigos QR a partir de cadenas de texto en formato UUID. A lo largo del proceso, cubriremos desde la configuración del dominio y la instalación de dependencias hasta la gestión del proceso con PM2, garantizando que la aplicación se mantenga activa incluso después de un reinicio del servidor.
Si te interesa obtener el código de la aplicación, sigue este enlace.
Requisitos previos
Este tutorial parte del supuesto de que ya tienes CloudPanel instalado en tu CloudServer y has completado las configuraciones básicas del panel.
Además, contar con conocimientos básicos sobre el uso de la consola en Linux será de gran ayuda. Sin embargo, si eres principiante, no te preocupes, ya que podrás seguir el tutorial sin dificultades.
1. Apuntar el dominio
Para que nuestra aplicación sea accesible desde un dominio personalizado, primero debemos configurarlo en nuestro proveedor de dominios.
En nuestro caso utilizaremos un subdominio qr.cloudme.fun
y si bien la captura pertenece al gestor de Dominios & DNS de Donweb, el proceso es prácticamente el mismo en todos los proveedores de servicios de dominio y DNS (ej: Cloudflare, Google DNS, etc.)
En la zona DNS agregamos un registro de tipo "A" apuntando a la IPv4 y un tipo "AAAA" apuntando a la IPv6 de nuestro servidor.
Luego, espera unos minutos para que los cambios en la Zona DNS se propaguen.
2. Crear el "sitio" NodeJS en CloudPanel
Al crear un "sitio" de tipo Node.js, CloudPanel configurará automáticamente el entorno para ejecutar aplicaciones Node.
- Inicia sesión en CloudPanel.
- Dirígete a Sitios > Crear Nuevo Sitio.
- Selecciona Crear un sitio a Node.js.
- Ingresa el dominio (en nuestro ejemplo
qr.cloudme.fun
) - Define la versión de Node.js que utilizarás (luego puedes cambiarla)
- Define el puerto en el que correrá tu aplicación (luego puedes cambiarlo)
- Ingresa un nombre Usuario del sitio para acceder luego por SSH
- Elige una contraseña para el usuario del sitio (luego puedes cambiarla)
- Guarda los cambios presionando Crear y espera unos segundos.
3. Instalar certificado SSL (con 5 clicks)
Para que nuestra aplicación use HTTPS, instalaremos un certificado SSL gratuito con Let’s Encrypt.
- En CloudPanel, ve a la sección Sitios y haz click en el link Administrar del sitio recién creado
- Vé a la pestaña SSL/TLS del sitio.
- Selecciona Acciones > Certificado Let’s Encrypt nuevo
- Presiona el botón Crear e instalar y aguarda unos segundo
- Verifica que el sitio ya esté accesible mediante
https://tu-dominio.com
4. Subir la aplicación Node al servidor
Ahora debemos subir nuestra aplicación al servidor, sin olvidar incluir el achivo package.json
, a la capeta /home/qr-app/htdocs/qr.cloudme.fun/
del servidor (reemplaza qr-app
por el nombre de usuario que elegiste al crear el sitio y qr.cloudme.fun
por tu dominio)
Para ello, puedes usar SFTP con un cliente FTP como FileZilla, utilizando las credenciales del Usuario del sitio. También puedes optar por la comodidad del Administrador de archivos de CloudPanel.
5. Instalar las dependencias
A partir de este punto, deberás acceder al servidor mediante la consola SSH, utilizando las credenciales del Usuario del sitio que ingresaste al crear el "Sitio" en el paso 2.
Si no estás familiarizado con la conexión por consola a tu servidor, consulta este tutorial. Recuerda que no debes ingresar como usuario root, sino con las credenciales indicadas anteriormente, ya que CloudPanel ejecuta una instancia de Node exclusiva para cada "Sitio" creado.
Una vez dentro del servidor, accede a la carpeta del sitio donde subiste la aplicación, ejecuta el comando npm install
y espera unos minutos a que finalice la instalación. Dependiendo de la cantidad de dependencias de tu aplicación, este paso puede demorar más o menos.
cd /home/qr-app/htdocs/qr.cloudme.fun/
npm install
Recuerda que en el comando cd
para acceder al directorio de la aplicación debes reemplaza qr-app
por el nombre de usuario que elegiste al crear el sitio y qr.cloudme.fun
por tu dominio
Al finalizar la instalacion verás algo similar a esta captura:
6. Instalar PM2
PM2 es un administrador de procesos que nos permitirá ejecutar y mantener nuestra aplicación en funcionamiento, incluso después de cerrar la sesión SSH.
CloudPanel permite la creación de múltiples "Sitios", cada uno con su propio usuario en el sistema operativo. Por esta razón, cada sitio de Node creado en CloudPanel requiere la instalación de su propia instancia de PM2.
Para instalar PM2, primero accede a la carpeta de tu aplicación y luego ejecuta el comando npm install pm2@latest -g
cd /home/qr-app/htdocs/qr.cloudme.fun/
npm install pm2@latest -g
Al finalizar la insalción veremos algo similar a esta captura:
7. Ejecutar la aplicación con PM2
Usamos PM2 para iniciar la aplicación y asegurarnos de que siga corriendo en segundo plano.
Primero ejecutamos el comando para inicializar nuestra aplicación (reemplaza qr-app
por un nombre para tu aplicación, ese nombre es solo para referencia)
pm2 start npm --name qr-app -- start
Si todo está en orden veremos algo como esto:
Finalmente, si nuestra aplicación se ejecutó sin errores, utilizaremos el comando pm2 save
para guardar la configuración.
pm2 save
8. Probar la aplicación
Nuestra aplicación de generardor de códigos QR ya está ejecutándose. Para probarla utilizaremos el navegador, accediendo con nuestro dominio, agregándole al final de la URL un UUID válido.
En nuestro ejemplo utilizaremos https://qr.cloudme.fun/03e69fa5-8304-4b17-b308-9d35fb67dd2a
9. Asegurar ejecución de la aplicación tras reinicio
Para que nuestra aplicación inicie automáticamente después de un reinicio del servidor, necesitamos configurar una una tarea programada en el servidor ("cron" en linux).
- Seguimos en la consola y obtenemos el path de la aplicación
echo $PATH
- Esto enviará a pantalla una cadena similar a la siguiente. Cópiala al portapapeles.
/home/qr-app/.nvm/versions/node/v22.13.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/snap/bin
- Editamos el archivo de tareas programada "crontab"
crontab -e
- Al final del contenido agregaremos las siguientes dos líneas, reemplazando PASTE_THE_OUTPUT_OF_$PATH por la cadena obtenida y copiada el portapapeles en el paso 2.
PATH=PASTE_THE_OUTPUT_OF_$PATH @reboot pm2 resurrect & /dev/null
- Guardamos los cambios en el archivo y salimos del editor.
- Reiniciamos el servidor desde nuestra area de cliente, esperamos unos minutos y probamos en el navegador si nuestra aplicación funciona luego del reinicio.
Listo, con esto tu aplicación de Node.js estará desplegada y funcionando en CloudPanel 🚀
10. Reiniciar la aplicación com PM2
En alguna caso necesitarás hacer modificaciones en el código de tu aplicación, y para que esos cambios se reflejen, debes reiniciarla utilizando el comando pm2 restart <nombre_de_tu_app|id_app>
Ejemplo del comando con nuestra aplicación "qr-app"
pm2 restart qr-app
Comentarios finales
Todos los pasos anteriores te permitirán tener tu aplicacion Node ejecutándose en producción, con un dominio propio y certificado SSL. Si necesitas desplegar más de una aplicación en tu servidor con CloudPanel, sólo tienes que repetir estos 10 pasos por cada aplicación, teniendo en cuenta que cada una deberá ejecutarse en un puerto distinto.
Bonus: Código de la aplicación de Node para generar QR
A continuación, te compartimos el código de package.json
y qrapp.js
, la aplicación que generará un código QR a partir de una cadena UUID pasada a través de la URL, funcionando como una API.
Para optimizar el consumo de recursos, si la imagen del código QR ya existe, la aplicación evitará generarla nuevamente.
package.json
qrapp.js
Relacionada con
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.