Uptime Kuma Docker Compose es la solución perfecta para monitorizar el estado de tus servicios web, APIs y servidores sin depender de plataformas externas de pago. Esta herramienta self-hosted de código abierto te permite controlar la disponibilidad de tu infraestructura con una interfaz moderna y más de 90 canales de notificación.
Si buscas una alternativa self-hosted a servicios como Uptime Robot o StatusCake, esta guía te mostrará cómo desplegar y configurar este potente sistema de monitorización en minutos usando contenedores Docker.
¿Qué es Uptime Kuma Docker Compose?
Uptime Kuma Docker Compose es una implementación containerizada de Uptime Kuma, una herramienta de monitorización desarrollada por Louis Lam que ha alcanzado más de 76,000 estrellas en GitHub y supera los 127 millones de descargas en Docker Hub.
Esta solución te permite verificar el estado de tus servicios cada 20 segundos, enviando alertas instantáneas cuando detecta caídas o problemas de rendimiento. A diferencia de las alternativas comerciales, mantienes el control total de tus datos y configuraciones.
Características principales de Uptime Kuma Docker Compose
El sistema ofrece capacidades avanzadas de monitorización que normalmente encontrarías solo en soluciones empresariales:
- Múltiples protocolos monitorizables: HTTP(s), TCP, Ping, DNS, WebSocket, y validación de contenido con keywords o JSON queries
- Más de 90 canales de notificación: Telegram, Discord, Slack, email, webhooks y muchos más
- Páginas de estado personalizables: Crea dashboards públicos para informar a tus usuarios sobre el estado de tus servicios
- Monitorización de certificados SSL: Recibe alertas antes de que expiren tus certificados HTTPS
- Interfaz reactiva y moderna: Desarrollada con Vue.js, ofrece actualizaciones en tiempo real mediante WebSockets
- Soporte multilenguaje: Disponible en más de 40 idiomas incluyendo español
- Autenticación 2FA: Protege el acceso con autenticación de dos factores
Requisitos previos para instalar Uptime Kuma Docker Compose
Antes de comenzar la instalación, asegúrate de tener estos componentes en tu sistema:
- Docker Engine versión 20.10 o superior instalado y funcionando
- Docker Compose V2 (comando
docker compose) - Al menos 512 MB de RAM disponible para el contenedor
- Sistema de archivos local con soporte para bloqueos POSIX (NO usar NFS)
- Puerto 3001 disponible o uno alternativo de tu elección
Si aún no tienes Docker instalado, consulta la documentación oficial de Docker para tu sistema operativo.
Instalación paso a paso de Uptime Kuma Docker Compose
La instalación de Uptime Kuma Docker Compose es sorprendentemente simple. Sigue estos pasos detallados para tener tu sistema de monitorización funcionando en minutos.
Paso 1: Crear la estructura de directorios
Primero, crea un directorio dedicado para almacenar la configuración y los datos persistentes:
mkdir -p ~/uptime-kuma
cd ~/uptime-kuma
Paso 2: Crear el archivo docker-compose.yml
Crea un archivo docker-compose.yml con esta configuración optimizada de Uptime Kuma Docker Compose:
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
volumes:
- ./uptime-kuma-data:/app/data
- /var/run/docker.sock:/var/run/docker.sock:ro
ports:
- "3001:3001"
restart: unless-stopped
environment:
- TZ=Europe/Madrid
security_opt:
- no-new-privileges:true
Explicación de la configuración:
image: louislam/uptime-kuma:1– Usa la versión estable 1.x (recomendada para producción)./uptime-kuma-data:/app/data– Persiste la base de datos SQLite y configuraciones/var/run/docker.sock– Permite monitorizar otros contenedores Docker (opcional)TZ=Europe/Madrid– Ajusta la zona horaria a tu ubicaciónsecurity_opt– Mejora la seguridad del contenedor
Paso 3: Iniciar el servicio
Despliega el contenedor ejecutando:
docker compose up -d
Docker descargará la imagen (aproximadamente 200 MB) e iniciará el servicio en segundo plano.
Paso 4: Verificar el estado
Confirma que el contenedor está funcionando correctamente:
docker compose ps
docker compose logs -f
Deberías ver el mensaje «Server is running» indicando que la aplicación está lista.
Paso 5: Acceder a la interfaz web
Abre tu navegador y accede a:
http://localhost:3001
# O desde otra máquina
http://IP-DE-TU-SERVIDOR:3001
En el primer acceso, se te pedirá crear una cuenta de administrador con usuario y contraseña.
Configuración inicial de Uptime Kuma Docker Compose
Una vez dentro de la interfaz web, es momento de configurar tu primer monitor y las notificaciones.
Crear tu primer monitor
- Haz clic en el botón «Add New Monitor»
- Selecciona el tipo de monitorización (HTTP, Ping, TCP, etc.)
- Introduce la URL o dirección IP a monitorizar
- Configura el intervalo de verificación (mínimo 20 segundos)
- Establece el número de reintentos antes de considerar el servicio caído
- Guarda la configuración
Configurar notificaciones
Para recibir alertas cuando tus servicios fallen:
- Ve a Settings → Notifications
- Haz clic en «Setup Notification»
- Elige tu canal preferido (Telegram, Discord, Email, etc.)
- Introduce las credenciales necesarias (token de bot, webhook URL, etc.)
- Prueba la notificación con el botón «Test»
- Asigna la notificación a tus monitores
Exponer Uptime Kuma Docker Compose con reverse proxy
Para acceder a la aplicación desde internet con un dominio propio y certificado SSL, necesitas configurar un reverse proxy.
Ejemplo con Caddy
Si usas Caddy como reverse proxy, añade esta configuración:
uptime.tudominio.com {
reverse_proxy uptime-kuma:3001
}
Caddy gestionará automáticamente los certificados SSL mediante Let’s Encrypt.
Ejemplo con Nginx Proxy Manager
Configuración básica para Nginx Proxy Manager:
- Domain Name: uptime.tudominio.com
- Scheme: http
- Forward Hostname/IP: uptime-kuma
- Forward Port: 3001
- Activa WebSockets Support (crítico para funcionamiento correcto)
- Solicita certificado SSL automáticamente
Casos de uso reales de Uptime Kuma Docker Compose
Esta herramienta es extremadamente versátil y se adapta a múltiples escenarios:
Monitorización de homelab
Vigila todos los servicios self-hosted de tu servidor doméstico: Nextcloud, Jellyfin, Home Assistant, Vaultwarden y más. Recibe notificaciones instantáneas si algún servicio deja de responder.
Control de infraestructura empresarial
Empresas pequeñas y medianas usan el sistema para monitorizar sus APIs, sitios web corporativos y servicios críticos sin pagar licencias mensuales costosas.
Páginas de estado públicas
Crea status pages personalizadas para informar a tus clientes sobre el estado operativo de tus servicios, mejorando la transparencia y confianza.
Mantenimiento y actualizaciones
Mantener actualizado tu sistema de monitorización es crucial para seguridad y nuevas funcionalidades.
Actualizar a la última versión
cd ~/uptime-kuma
docker compose pull
docker compose up -d
Docker descargará la nueva imagen y recreará el contenedor preservando tus datos en el volumen persistente.
Realizar backups
Respalda regularmente tu configuración y base de datos:
cd ~/uptime-kuma
tar -czf backup-uptime-kuma-$(date +%Y%m%d).tar.gz uptime-kuma-data/
Guarda estos backups en una ubicación segura externa al servidor.
Solución de problemas comunes
Error de base de datos corrupta
Si ves errores relacionados con SQLite, verifica que no estés usando un sistema de archivos de red como NFS. El servicio requiere un filesystem local con soporte POSIX.
WebSockets no funcionan detrás del proxy
Asegúrate de habilitar el soporte para WebSockets en tu reverse proxy. Sin esta configuración, la interfaz no se actualizará en tiempo real.
Notificaciones no llegan
Verifica que el contenedor tenga acceso a internet para enviar notificaciones. Revisa los logs con docker compose logs para identificar errores específicos.
Comparativa con otras soluciones de monitorización
¿Por qué elegir esta solución sobre alternativas como Zabbix, Nagios o servicios cloud?
- Simplicidad: Instalación en minutos vs configuraciones complejas de días
- Interfaz moderna: UI reactiva y atractiva vs interfaces antiguas y poco intuitivas
- Recursos ligeros: Consume menos de 100 MB de RAM vs varios GB de herramientas empresariales
- Gratis y open source: Sin licencias ni límites de monitores
- Comunidad activa: Actualizaciones frecuentes y más de 76,000 estrellas en GitHub
Recursos adicionales y comunidad
Para profundizar más en el sistema y conectar con otros usuarios:
- Repositorio oficial en GitHub
- Comunidad r/selfhosted en Reddit
- Más guías de Docker Compose en nuestro blog
Preguntas frecuentes (FAQ)
¿Es seguro exponer Uptime Kuma a internet?
Sí, siempre que uses contraseñas fuertes, habilites 2FA y configures HTTPS con certificados SSL válidos mediante un reverse proxy. Evita exponer directamente el puerto 3001 sin protección.
¿Cuántos monitores puedo crear?
No hay límite técnico en el número de monitores. El rendimiento dependerá de los recursos de tu servidor y los intervalos de verificación configurados.
¿Puedo monitorizar servicios dentro de mi red local?
Absolutamente. El servicio puede monitorizar cualquier recurso accesible desde el contenedor Docker: IPs locales, otros contenedores en la misma red Docker, y servicios externos en internet.
¿Consume muchos recursos del servidor?
No, es muy eficiente. Normalmente usa entre 50-100 MB de RAM y un uso mínimo de CPU, incluso con decenas de monitores activos.
¿Necesito conocimientos avanzados para usarlo?
No, la interfaz es muy intuitiva. Si sabes usar Docker y Docker Compose básico (como se muestra en esta guía), podrás configurarlo sin problemas.
Conclusión
Uptime Kuma Docker Compose representa la mejor opción para quienes buscan una solución de monitorización self-hosted, potente y fácil de usar. Con más de 127 millones de descargas y una comunidad de miles de usuarios, este proyecto ha demostrado ser confiable y mantenido activamente.
La combinación de interfaz moderna, múltiples canales de notificación y despliegue simplificado mediante Docker Compose lo convierte en una alternativa superior a las soluciones comerciales para pequeñas y medianas infraestructuras.
¿Ya has implementado esta herramienta en tu homelab o infraestructura? Comparte tu experiencia en los comentarios y ayuda a otros usuarios de la comunidad.
