Guía de instalación · 14 min read · Nov 17, 2025
Cómo instalar Kuma - Alternativa de Uptime Robot autoalojada en Ubuntu 20.04

Uptime-Kuma es una herramienta de monitoreo de código abierto como “Uptime Robot” escrita en Nodejs. Es una herramienta de monitoreo autoalojada con un panel de control elegante y hermoso y admite múltiples métodos de notificación. Uptime-Kuma monitoreará el tiempo de actividad de hosts o servidores a través de los protocolos HTTP(s), TCP y Ping. Si los hosts no se pueden alcanzar a través de estos protocolos en intervalos, los hosts de tiempo de actividad enviarán notificaciones a través de Webhooks, Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), etc.
En esta guía, aprenderás cómo instalar Uptime-Kuma en un servidor Ubuntu y usar el servidor web Apache como un proxy inverso con un certificado SSL gratuito de Let’s Encrypt frente a él. Durante la instalación, también aprenderás sobre la instalación de nodejs a través de nvm (gestor de versiones de node).
Requisitos previos
- Un servidor Ubuntu 20.04.
- Un usuario con privilegios de root. Usarás este usuario para instalar nuevos paquetes y modificar la configuración del sistema.
Agregar nuevo usuario
Lo primero que harás es agregar un nuevo usuario al sistema Ubuntu. Por razones de seguridad, la aplicación Uptime-Kuma se ejecutará como un usuario no root.
- Agrega un nuevo usuario ejecutando el siguiente comando. Para este ejemplo, usaremos el nombre de usuario “ johndoe “. asegúrate de cambiar el nombre de usuario por el tuyo.
useradd -m -s /bin/bash johndoeOpciones que debes conocer:
- -m = crea automáticamente el directorio home para el nombre de usuario, que estará disponible en el directorio ‘/home’.
- -s = define la ruta del shell para el usuario, la mayoría de las distribuciones de Linux tienen el
/bin/bashcomo shell.
- Después de eso, ejecuta el siguiente comando para configurar la contraseña para el usuario “johndoe”.
passwd johndoeAhora escribe una nueva contraseña fuerte y repítela, luego presiona “ Enter “ para confirmar.
- A continuación, agrega el usuario “johndoe” al grupo “ sudo “ usando el siguiente comando.
usermod -aG sudo johndoeAl agregar usuarios al grupo “ sudo “, se permitirá a los usuarios ejecutar el comando “sudo su” y obtener privilegios de root.
Instalar NVM (Node Version Manager)
NVM o Node Version Manager es una herramienta de línea de comandos para instalar múltiples versiones de nodejs en un sistema. Esta herramienta te permite instalar una versión específica de nodejs para tus aplicaciones, haciendo que tu entorno de desarrollo y despliegue sea flexible.
Para esta fase, estarás instalando nvm bajo el usuario no root “johndoe”.
- Desde tu shell root, inicia sesión en el usuario “johndoe” usando el siguiente comando.
su - johndoe- Descarga y ejecuta el script instalador de nvm como sigue.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
- Después de que la instalación sea exitosa, recarga el entorno bash usando el siguiente comando.
source ~/.bashrc- Ahora verifica la instalación de “ nvm “ ejecutando el siguiente comando.
command -v nvmSi tu instalación es exitosa, verás el resultado “ nvm “. De lo contrario, no verás nada o un resultado en blanco.
Ahora ejecuta el comando nvm como sigue.
nvm --helpY verás la página de ayuda manual del comando nvm.
Node Version Manager (v0.38.0)
Nota: se refiere a cualquier cadena similar a una versión que nvm entienda. Esto incluye:
- números de versión completos o parciales, comenzando con una "v" opcional (0.10, v0.1.2, v1)
- alias predeterminados (integrados): node, stable, unstable, iojs, system
- alias personalizados que defines con `nvm alias foo`
Cualquier opción que produzca salida coloreada debe respetar la opción `--no-colors`.
Uso:
nvm --help Muestra este mensaje
--no-colors Suprimir salida coloreada
.....
Nota:
para eliminar, borrar o desinstalar nvm - solo elimina la carpeta `$NVM_DIR` (generalmente `~/.nvm`) Instalar la versión LTS de Nodejs
Para instalar la aplicación uptime-Kuma, necesitas instalar nodejs >= 14, git y pm2. Para este punto, estarás instalando la última versión LTS de nodejs usando el comando nvm.
- Ejecuta el comando nvm a continuación para instalar la última versión LTS de nodejs.
nvm install --ltsUna vez que la instalación sea exitosa, verás una salida similar a la siguiente.

La primera versión de nodejs que instales se convierte en la versión predeterminada en tu entorno de desarrollo.
- Ahora ejecuta el siguiente comando para verificar la instalación de nodejs.
node --version
npm --versionSi tu instalación es exitosa, verás una salida similar a la siguiente.
# versión de nodejs
v14.17.4
# versión de npm
6.14.14Descargar e instalar Uptime-Kuma
En este punto, estás listo para instalar la aplicación Uptime-Kuma.
- Clona el código fuente de uptime-Kuma usando el comando git a continuación.
git clone https://github.com/louislam/uptime-kuma.git- Después de eso, cambia el directorio de trabajo a “ uptime-kuma/ “ y ejecuta el comando npm para instalar todos los paquetes necesarios para uptime-kuma.
cd uptime-kuma/
npm run setupY verás una salida similar a la siguiente.

Configurando Uptime-Kuma con pm2
¿Qué es pm2? Es un gestor de procesos de nodejs que te ayudará a gestionar y mantener tu aplicación nodejs viva para siempre. pm2 tiene algunas características integradas que facilitan el despliegue de aplicaciones nodejs, te permite monitorear el estado de tu aplicación, registros e incluso configurar el archivo de servicio para tu aplicación.
- Instala el paquete pm2 usando el comando npm a continuación.
npm install pm2- Una vez que la instalación esté completa, ejecuta el comando pm2 a continuación para iniciar la aplicación uptime-kuma.
pm2 start npm --name uptime-kuma -- run start-server -- --port=3001 --hostname=127.0.0.1Y verás los mensajes de salida como a continuación.

Como se ve en la imagen, el nombre de la aplicación “ uptime-kuma “ se está ejecutando con el estado “ en línea “.
- Para verificar el estado de tu aplicación en pm2, ejecuta los siguientes comandos a continuación.
Verifica el estado de la aplicación nodejs.
pm2 statusVerifica los registros de la aplicación nodejs.
pm2 logs
Monitoreo en tiempo real de la aplicación nodejs.
pm2 monit
- A continuación, ejecuta el siguiente comando pm2 para generar el archivo de servicio para la aplicación uptime-kuma.
pm2 startupDespués de eso, debes ejecutar el comando como se ordenó en la salida.
sudo env PATH=$PATH:/home/johndoe/.nvm/versions/node/v14.17.4/bin /home/johndoe/.nvm/versions/node/v14.17.4/lib/node_modules/pm2/bin/pm2 startup systemd -u johndoe --hp /home/johndoeAsegúrate de usar el comando “ sudo “ e ingresar la contraseña correcta para tu usuario para obtener privilegios de root.
Una vez que el comando esté completo, verás la siguiente salida.

Como se ve en la captura de pantalla, pm2 genera un servicio systemd basado en el usuario, para este ejemplo es “ pm2-johndoe.service “.
Ahora ejecuta el siguiente comando para generar y guardar el estado de la aplicación uptime-kuma. Este comando es importante para hacer que la aplicación uptime-kuma siempre se ejecute en segundo plano, incluso después del arranque del sistema.
pm2 save- Para verificar el servicio ‘ pm2-johndoe’, ejecuta el comando a continuación.
sudo systemctl is-enabled pm2-johndoeVerás la salida enabled, lo que significa que la aplicación uptime-kuma se ejecutará automáticamente después del arranque del sistema.
Además, puedes intentar reiniciar tu sistema e iniciar sesión nuevamente en el servidor, luego verificar el servicio uptime-kuma.
sudo systemctl status pm2-johndoeDeberías ver una salida similar a la siguiente.
? pm2-johndoe.service - Gestor de procesos PM2
Cargado: cargado (/etc/systemd/system/pm2-johndoe.service; habilitado; ajuste de proveedor: habilitado)
Activo: activo (en ejecución) desde Tue 2021-08-10 01:52:37 UTC; hace 3min 57s
Docs: https://pm2.keymetrics.io/
PID principal: 745 (PM2 v5.1.0: God)
Tareas: 34 (límite: 2343)
Memoria: 120.4M
CGroup: /system.slice/pm2-johndoe.service
??745 PM2 v5.1.0: God Daemon (/home/johndoe/.pm2)
??772 npm
??873 sh -c node server/server.js "--port=3001" "--hostname=127.0.0.1"
??874 node server/server.js --port=3001 --hostname=127.0.0.1
Aug 10 01:52:36 ubuntu64 pm2[633]: [PM2] Spawning PM2 daemon with pm2_home=/home/johndoe/.pm2
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] PM2 Successfully daemonized
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] Resurrecting
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] Restoring processes located in /home/johndoe/.pm2/dump.pm2
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] Proceso /home/johndoe/.nvm/versions/node/v14.17.4/bin/npm restauradoEl “ pm2-johndoe.service “ está en funcionamiento al inicio del sistema.
Configurar Apache como un Proxy Inverso
Para esta guía, estarás instalando y configurando el servidor web Apache como un proxy inverso para la aplicación uptime-Kuma.
- Ejecuta el siguiente comando para instalar los paquetes del servidor web apache.
sudo apt install apache2Escribe “y” y presiona “ Enter “ para instalar el servidor web apache.
- Después de eso, habilita algunos módulos de apache usando el siguiente comando.
sudo a2enmod ssl proxy proxy_ajp proxy_wstunnel proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html- A continuación, crea una nueva configuración de host virtual ‘ uptime-kuma.conf ‘ usando el comando del editor nano a continuación.
sudo nano /etc/apache2/sites-available/uptime-kuma.confPega la siguiente configuración en tu terminal y cambia el nombre de dominio “ uptime.example.net “ por tu dominio como “ domain.com “.
ServerName uptime.example.net
ProxyPass / http://localhost:3001/
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://localhost:3001/$1" [P,L]
Presiona “ Ctrl+x “ y escribe “ Y “ para guardar la configuración.
- Ahora activa la configuración de host virtual de apache “uptime-kuma” usando el siguiente comando.
sudo a2ensite uptime-kumaDespués de eso, ejecuta el siguiente comando para verificar la configuración de apache y asegurarte de que no tengas ningún error.
sudo apachectl configtest- Ahora aplica la nueva configuración reiniciando el servicio apache usando el siguiente comando.
sudo systemctl restart apache2
Asegurando Uptime-kuma con SSL Letsencrypt
Para asegurar el acceso a Uptime-Kuma, configurarás el SSL de Letsencrypt para el servidor web apache.
- Primero, instala la herramienta certbot ejecutando el siguiente comando.
sudo apt install python3-certbot-apacheEscribe “ y “ y presiona “ Enter “ para comenzar la instalación.
- Después de la instalación, genera el SSL Let’s encrypt usando el comando certbot como a continuación.
sudo certbot --apache yourdomain.comEscribe tu dirección de correo electrónico para registrarte en Letsencrypt y presiona “ Enter “ para continuar. Letsencrypt enviará correos electrónicos a tu dirección de correo electrónico cada vez que tus certificados SSL expiren.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter ‘c’ to
cancel): [email protected]
Para los TOS (Términos de Servicio) de Letsencrypt, escribe " A " para aceptar y presiona " Enter " para continuar.
- Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- Please read the Terms of Service at
- (A)gree/(C)ancel: AWould you be willing to share your email address with the Electronic Frontier
Para compartir el correo electrónico con EFF (Electronic Frontier Foundation), puedes escribir " Y " para sí y " N " para no. Para este ejemplo, no compartiremos una dirección de correo electrónico con EFF.
Foundation, a founding partner of the Let’s Encrypt project and the non-profit
organization that develops Certbot? We’d like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- (A)gree/(C)ancel: A
- (Y)es/(N)o: N
Ahora la herramienta certbot generará SSL Letsencrypt para el nombre de dominio de Uptime-Kuma. Además, añadirá algunas configuraciones adicionales para la configuración del host virtual de apache. Se te pedirá que configures la redirección automática de HTTP a HTTPS. Escribe el número "2" para configurar la redirección automática de apache de HTTP a HTTPS y presiona " Enter ".Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
- (Y)es/(N)o: N
Una vez que el proceso de implementación sea exitoso, verás una salida similar a la siguiente.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://uptime.example.net
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=uptime.example.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/uptime.example.net/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/uptime.example.net/privkey.pem
Your cert will expire on 2021-10-10. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
- We were unable to subscribe you the EFF mailing list because your
e-mail address appears to be invalid. You can try again later by
visiting https://act.eff.org.Verificar la instalación de Uptime-Kuma
- Abre tu navegador web y escribe la URL de instalación de Uptime-Kuma en la barra de direcciones.
Serás redirigido a la conexión segura HTTPS.
- Crea un nuevo usuario administrador para Uptime-kuma en la primera página. Escribe tu usuario administrador y contraseña, luego haz clic en el botón “ Crear “.

- Después de eso, inicia sesión con tu nuevo nombre de usuario y contraseña, luego haz clic en el botón “ Iniciar sesión “.

Ahora, verás el panel de control de uptime-kuma.
- Para agregar un nuevo host al monitor, haz clic en el botón “ Agregar nuevo monitor “.

- Para este ejemplo, estarás monitoreando el sitio web, así que elige el “ Tipo de monitor “ como “ HTTP(s) “, escribe la dirección URL del sitio web, haz clic en el “ Configurar notificación “ para soporte de notificación, y luego haz clic en el botón “ Guardar “ en la parte inferior de la página.

- Serás redirigido al panel de control de uptime-Kuma y verás tu host en la página del panel de control.

A continuación, hay otro ejemplo después de agregar el nuevo tipo “ TCP/IP “ con puertos cerrados, y el resultado es “ ENCONNREFUSED “ o error de conexión porque el puerto es rechazado/cerrado.

Conclusión
¡Felicidades! Has instalado con éxito Uptime-Kuma con el servidor web Apache como un proxy inverso y asegurado la implementación de Uptime-Kuma con SSL Letsencrypt. Para la siguiente fase, puedes agregar tus hosts y activar la notificación para cualquier incidente de caída.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.