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.
6 min de lectura

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 gratisLos 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
sudo apt update && sudo apt upgrade -y
sudo reboot
sudo apt install nginx git -y2.2 Instala Docker y Docker Compose
Sigue la guía oficial de instalación de Docker o ejecuta:
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 -yNota: La forma recomendada actualmente es el
docker-compose-plugin(v2). Usadocker compose(sin guion) de ahora en adelante.
2.3 Crea los directorios y escribe un archivo compose
mkdir -p /docker-vol/uptime-kuma
mkdir -p /opt/uptime-kuma
cd /opt/uptime-kumaCrea docker-compose.yml:
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:trueConsejo: Usa
louislam/uptime-kuma:2en lugar de:latestpara 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:
docker compose up -d2.4 Abre el firewall para Nginx
sudo ufw allow "Nginx Full"2.5 Configura Nginx como proxy inverso
Crea /etc/nginx/sites-available/uptime-kuma.conf y pega:
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:
sudo ln -s /etc/nginx/sites-available/uptime-kuma.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx3. 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:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain_hereCertbot 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.

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.

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

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

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-rootlessse 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.


