Cómo desplegar Uptime Kuma con un clic (Coolify 2026)
Aprende a desplegar Uptime Kuma con un clic en cualquier VPS usando Coolify. Cubre las etiquetas de Docker, SQLite vs MariaDB, los parches de seguridad de v2.5.x y consejos de actualización.
18 min de lectura

Uptime Kuma es el monitor de disponibilidad open source al que recurro por defecto en un único VPS. Sin cuenta SaaS, sin precios por chequeo, y te envía un correo o un ping en el momento en que un sitio cae. Ahora está en v2.5.5 (publicada el 2026-09-16), y la línea v2.5.x merece atención: 2.5.4 incluyó una corrección de seguridad (CVE-2026-77415) y 2.5.5 arregló una fuga de memoria en el monitor TCP. Si todavía ejecutas v1 o una etiqueta antigua de v2, esas son razones concretas para redesplegar esta semana.
La forma más rápida de desplegar Uptime Kuma en un VPS es Coolify, una alternativa autoalojada a Heroku/Netlify que se instala con un comando y termina TLS por ti. Uptime Kuma tiene alrededor de 91.900 estrellas en GitHub y unos 186 millones de pulls en Docker (a fecha de 2026-09-29), así que no es un proyecto que vaya a desaparecer. A continuación instalaremos Uptime Kuma mediante la plantilla de servicio de Coolify y tendremos un dashboard funcional con SSL en pocos minutos.
Qué necesitas antes de empezar
- Un VPS con Ubuntu 22.04 o 24.04 LTS y acceso SSH
- Un dominio o subdominio que puedas apuntar al VPS
- 2 vCPU / 2 GB RAM / 10 GB de disco como mínimo (el mínimo de Coolify; Uptime Kuma añade poco encima)
- Un presupuesto de unos 5-10 €/mes para un VPS adecuado
Una nota sobre dimensionamiento: la imagen Docker de v2 ocupa aproximadamente 602 MB descomprimida en amd64, frente a unos 156 MB de las imágenes 1.x. En un disco de 10 GB está bien, pero en volúmenes pequeños usa una etiqueta -slim. Una sola máquina de 2 vCPU / 2 GB ejecuta Coolify más Uptime Kuma para un puñado de monitores sin despeinarse. Si prefieres no alquilar, un mini PC en casa funciona igual de bien.
Despliega un servidor VPS para Uptime Kuma
Para alojar Uptime Kuma en un contenedor Docker necesitas un VPS. Los sospechosos habituales son DigitalOcean, Vultr, Hetzner y Hostinger. Yo uso Hetzner para este tutorial porque la relación precio/rendimiento es difícil de superar en la UE, pero cualquiera de ellos sirve. Si quieres números antes de decidirte, consulta cómo hacer benchmarks de servidores cloud antes de comprometerte en una instancia de prueba.
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.
DigitalOcean $100 gratis Vultr $100 gratis Hetzner 20 € gratis VPS de HostingerDimensiónalo con 2 vCPU / 2 GB de RAM si planeas ejecutar Coolify y Uptime Kuma juntos. Si te preguntas si Coolify es el plano de control adecuado, la comparación de Coolify vs Dokploy vs Kamal 2 cubre los pros y contras. Coolify es mi elección aquí porque la plantilla de servicio de Uptime Kuma es literalmente un clic.
Instalación de Coolify en tu VPS
Coolify se instala con un solo comando. La guía completa, incluido el certificado SSL, está en mi tutorial de instalación de Coolify, y si quieres la versión larga sobre hacia dónde va el proyecto, lee nuestra reseña de Coolify v5.
Conéctate por SSH al VPS y ejecuta:
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bashEste es el comando de la documentación actual de Coolify (verificado el 2026-09-29). Coolify está en v4.3.23 a fecha de 2026-09-18. El instalador configura Docker, el stack de Coolify y un proxy inverso que más tarde dará a Uptime Kuma un certificado TLS real.
Solo en un host limpio
No ejecutes el script de instalación en un servidor que ya tenga Coolify u otro servicio ocupando los puertos 80/443/8000. El instalador asume un host limpio. Si algo más posee esos puertos, la configuración del proxy falla y tendrás que desenredarlo a mano.
Verifica que funcionó: abre http://<server-ip>:8000 en un navegador. Deberías ver la página de registro de Coolify. Crea el usuario administrador y confirma que el dashboard carga. Si la página no responde, ejecuta ss -tlnp | grep 8000 en la máquina y revisa docker ps. O Coolify no está corriendo, o algo más se quedó con el puerto.
Modo de fallo: el puerto 80/443 ya está ocupado por nginx o Apache. Detén y deshabilita el servicio conflictivo (sudo systemctl disable --now nginx) o muévelo, y luego vuelve a ejecutar el instalador.
Si te interesa monitorizar la carga de CPU y recibir un correo automático cuando se dispare, echa un vistazo a Monitorizar el uso de CPU y enviar alertas por correo en Linux.
Vídeo de Uptime Kuma con el despliegue
El vídeo muestra la UI de la era v1
Se grabó en 2023. Muestra Uptime Kuma v1 y las pantallas antiguas de Coolify. Los pasos son los mismos, pero los dashboards se ven diferentes hoy. Sigue los pasos escritos de abajo si las pantallas te confunden.
Despliega el servicio Uptime Kuma con Coolify (un clic)
Cómo desplegar Uptime Kuma con un clic, versión corta:
- Instala Coolify en un VPS de 2 vCPU / 2 GB.
- Apunta un registro DNS A (solo DNS) al VPS.
- En Coolify, abre Create New Resource → Service → UptimeKuma.
- Define el Name, la etiqueta de imagen Docker (
2o una2.x.xfijada) y el FQDN. - Pulsa Save & Deploy y abre la URL cuando el healthcheck se ponga en verde.
La plantilla de servicio de Coolify fija louislam/uptime-kuma:2 e incluye un healthcheck integrado, así que no tienes que editar a mano un archivo compose para empezar. Así es la ruta de las peticiones una vez que está en marcha:
Apunta un dominio o subdominio al VPS
Necesitas un dominio o subdominio para acceder a Uptime Kuma. Yo uso Cloudflare y apunto un subdominio al VPS con un registro A. Deja el proxy de Cloudflare desactivado (solo DNS, nube gris).
Por qué solo DNS: el proxy de la nube naranja añade un salto de websocket que puede romper el dashboard en vivo de Uptime Kuma, y complica la emisión del certificado en Coolify. Hazlo funcionar primero solo con DNS. Puedes experimentar con el proxy más tarde, una vez que sepas cómo se ve «funcionar».
Crea un servicio en Coolify
En Coolify, ve a Create New Resource y selecciona Service. De la lista de plantillas, elige UptimeKuma.


Las capturas son de marzo de 2023; la UI ha cambiado desde entonces, los pasos son los mismos. Una cosa que sí cambió: la lista de plantillas ahora ofrece tres entradas de Uptime Kuma. La de SQLite por defecto, más las variantes con MariaDB y MySQL. La elección de base de datos se cubre justo después del paso de configuración.
Configura Uptime Kuma en Coolify
Rellena tres campos: un Name (como quieras llamar al despliegue), la Version / Tag (la etiqueta de la imagen Docker; más sobre esto en un segundo, la plantilla fija louislam/uptime-kuma:2) y la URL (FQDN) (el dominio o subdominio del paso de DNS).

Por debajo, la plantilla escribe algo muy parecido a esto:
services:
uptime-kuma:
image: louislam/uptime-kuma:2
environment:
- SERVICE_URL_UPTIMEKUMA_3001
volumes:
- uptime-kuma-data:/app/data
healthcheck:
test: ["CMD-SHELL", "extra/healthcheck"]
interval: 5s
timeout: 5s
retries: 10Fíjate en el volumen y el healthcheck. uptime-kuma-data:/app/data es donde viven tus monitores, usuarios e historial. Eso es lo que sobrevive a los redespliegues. Pulsa Save & Deploy cuando los campos estén bien.
Cómo elegir la etiqueta correcta de la imagen Docker de Uptime Kuma
Esta es la forma más común en la que la gente acaba con la versión equivocada de Uptime Kuma. Léelo antes de desplegar.
Deja de usar :latest
louislam/uptime-kuma:latest está obsoleta y siempre apunta a v1 (1.23.17). Su digest es idéntico al de la etiqueta 1. Si despliegas :latest, nunca obtendrás v2, sin importar cuándo hagas pull.
Las etiquetas oficiales de Docker (del wiki del proyecto, comprobado el 2026-09-29):
Etiquetas recomendadas
louislam/uptime-kuma:2: última v2 rolling. Es lo que usa la plantilla de Coolify. Buena opción por defecto.louislam/uptime-kuma:2-slim: mismo código, imagen más pequeña. Úsala cuando el disco apriete.louislam/uptime-kuma:2.x.x(por ejemplo2.5.5): fijada a un parche concreto. Es mi elección para cualquier cosa de la que dependas: despliegues reproducibles, y tú decides cuándo actualizar.
Rootless e inestables
2-rootlessy2-slim-rootlessse ejecutan como non-root. El wiki avisa de que no se recomiendan para actualizar de v1 a v2 y de que algunas funciones pueden no comportarse como se espera. No elijas estas para el salto de v1 a v2.next,next-slim,next-rootlessreflejan la última build estable de v2 (2.5.0 añadiónext-rootless).beta*ynightly2son builds de desarrollo. Nunca las uses en el monitor del que dependes.
Ejecutar sin Coolify
Docker puro, si prefieres tu propio proxy inverso:
docker run -d --restart=always -p 3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma louislam/uptime-kuma:2Vincúlalo solo a localhost cuando otra cosa termine TLS:
docker run -d --restart=always -p 127.0.0.1:3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma louislam/uptime-kuma:2O el quickstart oficial con compose:
mkdir uptime-kuma && cd uptime-kuma
curl -o compose.yaml https://raw.githubusercontent.com/louislam/uptime-kuma/master/compose.yaml
docker compose up -dPara una guía manual más larga, consulta nuestra guía para instalar Uptime Kuma manualmente con Docker.
Modo de fallo: desplegaste :latest, el dashboard funciona, pero faltan todas las funciones de v2. Solución: cambia la etiqueta a 2 (o una 2.x.x fijada) en Coolify y redespliega. Tus datos están bien, viven en el volumen.
SQLite vs MariaDB: elegir una plantilla de base de datos
El repositorio de plantillas de Coolify incluye tres servicios de Uptime Kuma. Cuál eliges importa menos de lo que la gente espera, pero aquí está la decisión.
SQLite (por defecto, recomendado)
La plantilla uptime-kuma.yaml. Los datos van a uptime-kuma-data:/app/data, y SQLite mantiene todo en un solo archivo.
- Cero servicios extra que ejecutar, parchar y respaldar
- Copia de seguridad de un solo archivo: archiva el volumen y tienes una restauración completa
- De sobra para un VPS de un solo nodo monitorizando unos cientos de chequeos
Este es el valor por defecto correcto. Yo no me movería de él sin una razón concreta.
Plantilla MariaDB
La plantilla uptime-kuma-with-mariadb.yaml añade un servicio mariadb:11 con credenciales generadas por Coolify y depends_on: service_healthy.
Variables de entorno relevantes (oficiales, desde 2.0.0 salvo indicación):
UPTIME_KUMA_DB_TYPE=mariadb
UPTIME_KUMA_DB_HOSTNAME / _PORT / _NAME / _USERNAME / _PASSWORD
UPTIME_KUMA_DB_SOCKET
UPTIME_KUMA_DB_POOL_MAX_CONNECTIONS # default 10 (2.1.0)
UPTIME_KUMA_DB_SSL / _CA # (2.1.0)Existen variantes *_FILE para secretos de Docker. Elige esta plantilla solo si ya ejecutas MariaDB o esperas una retención de historial intensiva. El soporte oficial de base de datos externa es MariaDB, no Postgres.
Plantilla MySQL
La plantilla uptime-kuma-with-mysql.yaml añade mysql:8. Ten en cuenta que el wiki del proyecto solo documenta sqlite y mariadb para UPTIME_KUMA_DB_TYPE. Trata esta variante como experimental; yo no ejecutaría monitorización de producción con ella.
MariaDB embebido es solo para desarrollo
UPTIME_KUMA_ENABLE_EMBEDDED_MARIADB=1 existe, pero el wiki lo lista como solo para desarrollo. No lo uses en Coolify ni en ningún sitio que te importe.
Modo de fallo: errores SQLITE_BUSY en los logs, normalmente en un Raspberry Pi u otra máquina de baja potencia. Define UPTIME_KUMA_SQLITE_SINGLE_CONNECTION=true (el valor por defecto desde 2.3.2) y los errores se detienen.
Accede a Uptime Kuma y verifica el despliegue
Cuando el despliegue termine, abre el FQDN que configuraste. La primera visita te pedirá crear un usuario administrador y una contraseña.

No te quedes en «la página carga». Ejecuta esta checklist:
- Coolify muestra el servicio como healthy (el healthcheck de la plantilla golpea
extra/healthcheckcada 5 s) curl -I https://<fqdn>devuelve 200 o 302 sobre TLS, no un aviso de certificado- Añade un monitor HTTP de prueba y observa el heartbeat del dashboard actualizarse en vivo (Uptime Kuma depende mucho de websockets; el latido en vivo es la prueba real)
- Configura un canal de notificación y confirma que se dispara con un fallo deliberado
¿El dashboard carga pero nunca se actualiza en vivo?
El paso de websockets a través del proxy inverso es el culpable habitual. Confirma que el proxy del FQDN en Coolify reenvía websockets. La opción de último recurso es UPTIME_KUMA_WS_ORIGIN_CHECK (por defecto cors-like).
Tu configuración se guarda en el volumen docker uptime-kuma-data. Redespliega el servicio y conservarás tus monitores, usuarios e historial, siempre que ese volumen siga adjunto (lo está, en la plantilla por defecto).
Novedades de Uptime Kuma v2.x (2025-2026)
Una nota sobre fechas primero. La GA de v2.0 fue en octubre de 2025, y el resto de la línea temporal parte de ahí. El historial de versiones es material de referencia, pero dos releases de 2.5.x son críticas para operadores, así que encabezan la sección de abajo.
De v2.0 a v2.4 de un vistazo (octubre de 2025 a mayo de 2026)
v2.0 (2025-10-20)
- Reescritura del backend para una monitorización más rápida a escala
- Nuevos proveedores de notificación: Nextcloud Talk, Brevo, Evolution API
- Variable de entorno
NOTIFICATION_PROXYpara notificaciones detrás de un proxy - Autofocus de 2FA en el formulario de login
- Arreglo móvil: los botones ya no se salen de la pantalla por debajo de 450 px
v2.1 (2026-02-07)
- Soporte de DNS con Globalping, que prueba la resolución DNS desde nodos distribuidos por todo el mundo
- Proveedores de notificación Jira Service Management y Google Sheets
- Plantillas de mensaje personalizadas para Discord y ntfy
- Soporte del idioma alemán bávaro
v2.2 (2026-03-05)
- Proveedor de notificación WhatsApp (360messenger)
- Plantillas de mensajes para Signal
- Soporte de proxy SOCKS para notificaciones
- Logging estructurado en JSON (
UPTIME_KUMA_LOG_FORMAT=json) - Corrección de autorización del monitor push y del badge (GHSA-c7hf-c5p5-5g6h: el endpoint del badge de ping filtraba los tiempos de ping de los monitores)
v2.3 (2026-05-01)
- Autenticación del monitor WebSocket
- Tipo de monitor OracleDB
- Proveedores Telnyx, VK y MAX messenger
- Grupos plegables en las páginas de estado
- Variable de entorno
UPTIME_KUMA_SQLITE_SINGLE_CONNECTION(desde 2.3.2) paraSQLITE_BUSYen dispositivos de baja potencia - Breaking: se revirtió la ordenación de las páginas de estado (rendía mal)
v2.4 (2026-05-31)
- Proveedor de notificación con bot de VKTeams
- Incidencias en los feeds RSS
- Proveedor EgoSMS (Uganda)
- Soporte de bearer token para monitores de upgrade WebSocket
- Corrección de RCE en plantillas LiquidJS (GHSA-gf2q-c269-pqgc)
v2.5: la última (agosto-septiembre de 2026)
La versión corta de por qué actualizar ahora:
- v2.5.0 (2026-08-01) añadió el tipo de monitor NTP, intervalo de chequeo ilimitado (ya no limitado a 24 días), analítica Rybbit en las páginas de estado, SMS con Plivo con opción de llamada de voz, y la etiqueta Docker
next-rootless. - v2.5.1 a 2.5.3 (2026-08-22) añadieron SMS Gateway, ClickUp, TurboSMTP y otros proveedores de notificación. RADIUS Access-Challenge ahora cuenta como éxito. Arreglos de mantenimiento.
- v2.5.4 (2026-09-11) añadió el tipo de monitor SFTP (auth por contraseña y clave privada) más correcciones de seguridad: jsonata se subió a 2.2.2 por CVE-2026-77415 y se corrigió una debilidad DoS según las notas de la release. También un toggle de mostrar/ocultar contraseña en el login.
- v2.5.5 (2026-09-16) corrige una fuga de memoria en el monitor TCP. Cualquiera que ejecute chequeos TCP en una etiqueta antigua está comiendo RAM poco a poco.
¿Sigues en algo anterior a 2.5.4?
Te falta la corrección de CVE-2026-77415 y el arreglo de la fuga de memoria del monitor TCP. Actualiza a 2.5.5 esta semana. Detalles sobre cómo hacerlo de forma segura en la siguiente sección.
Si estás sopesando alternativas, cómo se compara Uptime Kuma con Gatus merece una lectura. Versión corta: Uptime Kuma gana en UI y páginas de estado, Gatus gana en config-as-code.
Actualizar y respaldar Uptime Kuma
¿Actualizas desde v1?
Lee la Guía de migración oficial antes de tocar nada, respalda tus datos primero, y no cambies directamente a una imagen rootless para esta migración. El wiki lo advierte explícitamente.
El viejo consejo de «los datos persisten en volúmenes, solo redespliega» es cierto, y sigue sin ser suficiente para un salto de versión mayor. Aquí va la versión para operadores.
El formato de datos cambió entre v1 y v2. Sigue la guía de migración, haz una copia de seguridad, y luego cambia la etiqueta de imagen de 1 (o latest) a 2. Saltar a 2-rootless en el mismo paso es como la gente pierde tardes enteras.
Antes de cualquier Redeploy o Upgrade en Coolify, haz un snapshot del volumen uptime-kuma-data. Con SQLite todo el dataset es efectivamente un solo archivo, así que un archivo del volumen es una copia completa y restaurar es trivial. Tarda 30 segundos y se paga solo la primera vez que un despliegue se tuerce.
Apunta el backup compatible con S3 de Coolify al volumen uptime-kuma-data. Unos pocos GB en cualquier almacenamiento compatible con S3 cuestan céntimos al mes, y es la diferencia entre una mañana molesta y empezar de cero.
Si una versión nueva se comporta mal: restaura el archivo del volumen, fija la etiqueta anterior de la imagen (2.5.5 de vuelta a la que ejecutaras antes) en Coolify, Redeploy. Apunta la etiqueta anterior antes de actualizar.
- Haz snapshot o archiva el volumen
uptime-kuma-data - Confirma que estás en la etiqueta
2o una2.x.xfijada, nolatest/1 - Ojea las notas de la release entre tu etiqueta actual y la nueva
- Apunta el número de la etiqueta anterior para el rollback
Advertencias de operación que conviene conocer:
- NFS no está soportado para el directorio de datos. No pongas
/app/dataen un montaje de red. - Mantente al día con los parches. 2.5.4 (seguridad) y 2.5.5 (fuga de memoria) llegaron con seis semanas de diferencia.
UPTIME_KUMA_LOG_FORMAT=json(2.2.0+) hace los logs legibles en el visor de logs de Coolify y en cualquier shipper de logs.NOTIFICATION_PROXY(2.0.0+) acepta URLs http/https/socks/socks4/socks5/socks5h si tus alertas necesitan salir a través de un proxy.UPTIME_KUMA_WS_ORIGIN_CHECK(por defectocors-like) es la opción cuando los websockets se comportan mal detrás de cadenas de proxy inusuales.
Checklist de hardening: mantén el FQDN en solo DNS hasta que el setup sea estable, no expongas el puerto 3001 públicamente (deja que el proxy de Coolify termine TLS y reenvíe), y recuerda que la imagen v2 ocupa ~602 MB, así que usa una etiqueta -slim en un disco pequeño. Cuando esta máquina sea tu monitor real, combínala con Beszel para una monitorización completa del servidor para ver también CPU, RAM y disco.
Solución de problemas comunes del despliegue
El despliegue falla o el contenedor reinicia en bucle
Revisa primero los logs de Coolify. Las dos causas habituales: algo más ya posee los puertos 80/443, o el host está por debajo del mínimo de Coolify de 2 vCPU / 2 GB y la máquina se queda sin memoria (OOM) (común en VPS de 1 GB que también ejecutan otros servicios). Arregla el conflicto de puertos o aumenta el tamaño.
El sitio abre pero el dashboard nunca se actualiza en vivo
Uptime Kuma depende mucho de websockets. Si la página carga pero los heartbeats se quedan congelados, el paso de websockets en la cadena del proxy está roto. Verifica que el proxy del FQDN en Coolify reenvía websockets, y luego prueba UPTIME_KUMA_WS_ORIGIN_CHECK como último recurso.
Faltan funciones de v2 tras el despliegue
Tu etiqueta de imagen es latest o 1. Recuerda: latest apunta a v1 para siempre. Cambia la etiqueta a 2 o una 2.x.x fijada y redespliega. Mira la sección de etiquetas de imagen Docker de arriba.
El certificado TLS no se emite
El registro DNS sigue con proxy a través de Cloudflare (nube naranja) o no se ha propagado. Confirma que es un registro A solo DNS, confirma que el puerto 80 es alcanzable desde internet, y luego espera al proceso de Let’s Encrypt de Coolify. dig +short your-subdomain.example.com debería devolver la IP del VPS.
Errores SQLITE_BUSY en los logs
Estás en un dispositivo de baja potencia (clase Raspberry Pi). Define UPTIME_KUMA_SQLITE_SINGLE_CONNECTION=true y redespliega. Es el valor por defecto desde 2.3.2, pero los archivos compose antiguos pueden no llevarlo.
Datos perdidos tras un redespliegue
El volumen no estaba adjunto. Un archivo compose personalizado sin uptime-kuma-data:/app/data tirará tus datos alegremente en cada despliegue. Restaura desde tu archivo de volumen o backup S3. Y nunca pongas el directorio de datos en NFS. No está soportado y se comportará mal de formas confusas.
Los logs son ruidosos y difíciles de leer
Define UPTIME_KUMA_LOG_FORMAT=json y léeles en el visor de logs de Coolify. Los logs estructurados están disponibles desde 2.2.0.
Conclusiones
Ese es todo el camino para desplegar Uptime Kuma: instala Coolify, apunta el DNS, haz clic en la plantilla de servicio UptimeKuma, elige la etiqueta 2, despliega, verifica. La plantilla de Coolify se encarga del cableado del compose y del TLS; el volumen conserva tus datos entre redespliegues.
Defaults de operador con los que no discutiría: SQLite en el volumen de Coolify para un VPS único, una etiqueta 2.x.x fijada en lugar de una rolling, y un backup del volumen antes de cada actualización. Quédate en 2.5.5 o más nuevo. La corrección de seguridad de 2.5.4 y el arreglo de la fuga de memoria TCP de 2.5.5 no son opcionales.
A partir de ahí, páginas de estado, más monitores y más canales de notificación son baratos de añadir. Si prefieres la ruta de instalación manual completa, la guía completa de Coolify de abajo cubre los detalles de SSL y dominio.
Guía completa de instalación de Coolify

