Si tienes un homelab, servidores, o simplemente varios servicios corriendo (tu Pi-hole, tu blog, tu VPN, tu NAS), en algún momento vas a querer saber si están vivos sin tener que entrar a revisarlos uno por uno. Ahí es donde entra Uptime Kuma: una herramienta open-source, gratuita y visualmente muy limpia, para monitorear el estado de tus servicios en tiempo real.

En este post te dejo los comandos exactos para levantarla con Docker, la forma más rápida y ordenada de hacerlo.

¿Qué es Uptime Kuma?

Es una alternativa self-hosted a servicios como UptimeRobot o Pingdom. Te permite monitorear:

  • Servidores web y APIs
  • Bases de datos
  • Servicios de red (ping, puertos TCP)
  • Certificados SSL antes de que expiren
  • Y te avisa por Telegram, Discord, correo, y muchos más canales cuando algo se cae

Todo desde un dashboard bonito, sin depender de terceros.

Opción 1: Docker run (la más rápida)

Ideal si solo quieres probarlo o levantarlo en minutos:

docker volume create uptime-kuma
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

Esto crea un volumen persistente (para que tus datos no se pierdan si el contenedor se reinicia) y expone el servicio en el puerto 3001.

Opción 2: Docker Compose (recomendado)

Si ya trabajas con Compose para tu stack de homelab, esta es la forma más mantenible:

mkdir -p ~/uptime-kuma && cd ~/uptime-kuma
nano docker-compose.yml

Contenido del docker-compose.yml:

version: '3.3'
services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    volumes:
      - ./data:/app/data
    ports:
      - 3001:3001
    restart: always

Y levantas el contenedor con:

docker compose up -d

Accede al dashboard

Con el contenedor corriendo, entra desde el navegador a:

http://IP-DE-TU-SERVIDOR:3001

La primera vez te va a pedir crear tu usuario administrador. De ahí en adelante, puedes ir agregando monitores para cada servicio que quieras vigilar.

Tip para tu homelab

Si corres esto en un LXC de Proxmox (como en la serie que hemos hecho con Pi-hole), asegúrate de tener Docker instalado dentro del contenedor antes de correr estos comandos. Es la misma lógica: LXC ligero, Docker adentro, y servicios aislados sin gastar recursos de más.