Uptime Kuma es una herramienta de monitoreo de auto-hospedaje muy popular que permite a los administradores de sistemas realizar un seguimiento del tiempo de actividad de sus servicios y recibir notificaciones en caso de fallos.

Es una excelente alternativa a soluciones de terceros y, al ser auto-hospedado, garantiza un mayor control y privacidad.

Pre-requisitos:

  • Un servidor con Debian 12 instalado.
  • Acceso root o un usuario con privilegios de sudo.

Instalación de NodeJS

De versión de NodeJS, en la documentación oficial mencionan que es compatible desde la versión 14 hasta la 20.4, por lo que recomendamos utilizar la versión LTS disponible.

Para ello deberéis de seguir este otro tutorial:

Instalación de NodeJS en GNU/Linux [Debian, Ubuntu, CentOS]
En el siguiente tutorial os explicaremos la correcta instalación de NodeJS en GNU/Linux. Ya sea tu servidor un Ubuntu o Debian o CentOS aquí encontrarás las instrucciones correctas para su instalación.

Instalación de Uptime Kuma

Uptime Kuma se puede instalar utilizando Docker, pero en este tutorial lo instalaremos manualmente, lo primero será descargar el repositorio:

cd /opt
git clone https://github.com/louislam/uptime-kuma.git

Y ejecutamos la configuración inicial:

cd /opt/uptime-kuma
npm run setup

En este punto, podríamos arrancar la aplicación web, pero vamos a hacerlo utilizando PM2.

Instalación y configuración de PM2

PM2 es un administrador de procesos en producción para aplicaciones Node.js. Proporciona un conjunto de características robustas que son esenciales para mantener las aplicaciones Node.js en funcionamiento de forma fiable en un entorno de producción.

npm install pm2 -g && pm2 install pm2-logrotate

Iniciamos Uptime Kuma con PM2:

pm2 start /opt/uptime-kuma/server/server.js --name uptime-kuma

Tras ejecutar el comando obtendremos lo siguiente:

[PM2] Starting /opt/uptime-kuma/server/server.js in fork_mode (1 instance)
[PM2] Done.
┌──┬─────────────┬───────────┬─────────┬──────┬───────┬────────┬───┐
│id│name         │ namespace │ version │ mode │ pid   │ uptime │ ↺ │
├──┼─────────────┼───────────┼─────────┼──────┼───────┼────────┼───┤
│1 │uptime-kuma  │ default   │ 1.23.3  │ fork │ 17709 │ 0s     │ 0 │
└──┴─────────────┴───────────┴─────────┴──────┴───────┴────────┴───┘

Si ahora comprobamos los puertos observaremos que nuestra aplicación está escuchando por el puerto 3001:

# ss -tulpn | grep 3001
tcp   LISTEN 0      511                     *:3001            *:*    users:(("node /opt/uptim",pid=23503,fd=24))

Si accedemos vía IP del servidor utilizando el puerto 3001, debería de cargar la pantalla de login. Si obtenemos esto, entonces podemos guardar la configuración y añadirlo al arranque del servidor:

pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in /root/.pm2/dump.pm2

Y para que inicie al arranque:

pm2 startup

Acceder vía dominio

Si queremos configurar el acceso vía dominio, podemos hacerlo creando un Nginx Proxy. Para ello deberás de seguir estas instrucciones:

Configurar Proxy Inverso con Nginx para que escuche a un puerto interno
En ocasiones tenemos servicios o aplicaciones web que escuchan directamente a un puerto interno. Para evitar acceder a dicha aplicación o servicio por la IP del servidor, una configuración que podemos hacer es acceder desde un Nginx Proxy.

Accediendo por primera vez

Cuando accedamos utilizando el dominio, se iniciará la configuración inicial para Uptime Kuma.

Lo primero será configurar un idioma y el usuario de acceso.

Una vez registro nuestro usuario, ya tendremos acceso a nuestro panel para gestionar las webs que queremos monitorizar.

Al añadir un monitor nuevo, se ve la siguiente forma:

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación