Logotipo de Bitdoze

Cómo instalar Uptime Kuma, la herramienta de monitorización autoalojada

Instala Uptime Kuma en un VPS con Docker y Nginx para monitorizar gratis el tiempo de actividad, el SSL, la caducidad de dominios y el tiempo de respuesta de tus sitios web.

Dragos

6 min de lectura

Cómo instalar Uptime Kuma, la herramienta de monitorización autoalojada

Si quieres monitorizar el tiempo de actividad de tu sitio web en tu propio VPS, Uptime Kuma es la herramienta a la que siempre vuelvo. Envía alertas por correo electrónico, Slack, Discord, Telegram y un montón de canales más cuando algo se cae, y guarda un historial de los tiempos de respuesta para que detectes qué ha estado lento.

El proyecto es de código abierto y ha recibido actualizaciones importantes recientemente. La versión 2.0 (octubre de 2025) añadió soporte para MariaDB en despliegues grandes, imágenes de Docker rootless para mayor seguridad y una interfaz renovada. La versión 2.1 (febrero de 2026) añadió soporte para Globalping con chequeos desde sondas de todo el mundo, monitorización de la caducidad de dominios y nuevas integraciones de notificaciones como Jira Service Management y Google Sheets.

Esta guía explica cómo instalar Uptime Kuma con Docker Compose, usando Nginx como proxy inverso y un certificado SSL de Let’s Encrypt.

1. Aprovisiona un servidor VPS

Necesitas un VPS para ejecutarlo. Yo uso:

VPS de Hetzner VPS de Hostinger DigitalOcean $100 gratis Vultr $100 gratis

Los precios de los VPS subieron en todos los proveedores en 2026 — si estás reconsiderando una máquina alquilada, mira qué cambió y cuándo gana un mini PC.

Uptime Kuma es ligero. Un servidor de 1 vCPU / 1 GB de RAM es suficiente para ejecutarlo junto a otros contenedores sin problemas.

2. Instala Uptime Kuma en Ubuntu

2.1 Actualiza el sistema e instala Nginx

bash
sudo apt update && sudo apt upgrade -y
sudo reboot
sudo apt install nginx git -y

2.2 Instala Docker y Docker Compose

Sigue la guía oficial de instalación de Docker o ejecuta:

bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

Nota: La forma recomendada actualmente es el docker-compose-plugin (v2). Usa docker compose (sin guion) de ahora en adelante.

2.3 Crea los directorios y escribe un archivo compose

bash
mkdir -p /docker-vol/uptime-kuma
mkdir -p /opt/uptime-kuma
cd /opt/uptime-kuma

Crea docker-compose.yml:

yaml
services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    container_name: uptime-kuma
    volumes:
      - /docker-vol/uptime-kuma:/app/data
    ports:
      - 8001:3001
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true

Consejo: Usa louislam/uptime-kuma:2 en lugar de :latest para quedarte en la rama v2 y evitar cambios inesperados cuando salga la v3. La versión 2.0+ también tiene imágenes de Docker rootless (louislam/uptime-kuma:2-rootless) si quieres ejecutarlo sin privilegios de root.

Arranca el contenedor:

bash
docker compose up -d

2.4 Abre el firewall para Nginx

bash
sudo ufw allow "Nginx Full"

2.5 Configura Nginx como proxy inverso

Crea /etc/nginx/sites-available/uptime-kuma.conf y pega:

nginx
server {
    listen 80;
    server_name your_domain_here;

    location / {
        proxy_pass         http://localhost:8001;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection "upgrade";
        proxy_set_header   Host $host;
    }
}

Habilita el sitio y recarga Nginx:

bash
sudo ln -s /etc/nginx/sites-available/uptime-kuma.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

3. Apunta tu dominio al servidor

Inicia sesión en tu proveedor de DNS y añade un registro A que apunte tu dominio o subdominio a la dirección IP del VPS.

4. Añade un certificado SSL con Let’s Encrypt

Instala Certbot y genera un certificado:

bash
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain_here

Certbot modifica la configuración de Nginx automáticamente y configura la renovación automática. Tu sitio estará disponible por HTTPS de inmediato.

5. Configura tu primer monitor

En el primer inicio de sesión creas una cuenta de administrador. Después añade un monitor — pon el tipo en HTTP(s), dale un nombre descriptivo y configura el intervalo de heartbeat en 300 segundos. Comprobar cada 5 minutos es suficiente para la mayoría de los sitios.

Pantalla de Uptime Kuma para añadir un monitor

Configura las notificaciones por correo

Ve a Settings → Notifications y añade una notificación SMTP. Para Gmail: hostname smtp.gmail.com, puerto 587, seguridad STARTTLS y tus credenciales de Gmail. Si tienes 2FA en tu cuenta, genera una contraseña de aplicación en lugar de usar tu contraseña principal.

Configuración de notificaciones SMTP en Uptime Kuma

Una vez configurado, el panel muestra un heartbeat verde para cada monitor correcto:

Panel de Uptime Kuma con todos los monitores activos

Cuando algo se cae recibes un correo de alerta, y otro cuando se recupera:

Correo de notificación de caída de Uptime Kuma

Novedades de la versión 2.x

Si vienes de la v1, esto es lo que cambió:

  • Soporte para MariaDB – Ahora puedes usar MariaDB en lugar del SQLite predeterminado para despliegues grandes con cientos de monitores. SQLite sigue funcionando bien para la mayoría de las configuraciones.
  • Monitorización de caducidad de dominios – Consulta los datos RDAP y te avisa antes de que los dominios caduquen. Útil si gestionas varios dominios.
  • Integración con Globalping – Ejecuta chequeos desde sondas de todo el mundo en lugar de solo desde la ubicación de tu VPS. Útil para confirmar si una caída es regional o global.
  • Docker rootless – La imagen 2-rootless se ejecuta sin privilegios de root, una mejor práctica de seguridad para servidores compartidos.
  • Nuevos proveedores de notificaciones – Jira Service Management, Google Sheets, Brevo, Nextcloud Talk y varios más.
  • Soporte para SNMPv3 – Monitoriza dispositivos de red e infraestructura.
  • Historial de incidentes – Registra y documenta incidentes pasados dentro del panel.

La función de copia de seguridad/restauración de la v1 se eliminó en la v2, así que haz una copia de seguridad del volumen /app/data manualmente antes de actualizar.

Conclusión

Uptime Kuma funciona silenciosamente en Docker, comprueba tus sitios y te envía un mensaje cuando algo se rompe. Gestiona la caducidad del SSL, la caducidad de dominios, DNS, puertos TCP, SNMP y más. Llevo años ejecutándolo sin problemas. Coste total en un VPS compartido: prácticamente nada.