¿Qué es Uptime Kuma?

Uptime Kuma es una herramienta de monitorización autoalojada. Comprueba sitios web, puertos TCP, registros DNS, contenedores Docker y mucho más a intervalos regulares, envía una notificación cuando algo deja de funcionar y puede publicar páginas de estado. El proyecto proporciona una imagen oficial, louislam/uptime-kuma, que escucha en el puerto 3001 y guarda todo en una carpeta /app/data.

Descripción de la herramienta

Esta herramienta crea un archivo compose.yaml para Uptime Kuma. Parte del archivo del repositorio de Uptime Kuma y añade las configuraciones que normalmente se necesitan: la versión y variante de la imagen, el puerto del host y la dirección de enlace, la ubicación donde se almacenan los datos, el acceso al socket de Docker para los monitores del host de Docker y la base de datos. Con una base de datos MariaDB en su propio contenedor, la herramienta añade un segundo servicio con una comprobación de estado, para que Uptime Kuma solo se inicie cuando la base de datos esté lista. Las configuraciones para las que el formulario no tiene ningún campo se pueden añadir como variables de entorno. Todo se crea en el navegador.

Funciones

  • Las etiquetas de imagen 2, 1 y beta, con las variantes estándar, slim, rootless y slim rootless de la versión 2
  • El puerto del host y una dirección de enlace como 127.0.0.1 para usarlo detrás de un proxy inverso
  • Una carpeta de datos en el host o un volumen de Docker con nombre, que se declara automáticamente
  • Acceso opcional a /var/run/docker.sock para los monitores del host de Docker, con una advertencia sobre lo que permite
  • SQLite, la MariaDB integrada, un contenedor MariaDB añadido al archivo o un servidor MariaDB externo
  • Una contraseña de base de datos generada, con los signos $ escapados para que Compose los conserve
  • Opciones para la inserción en un iframe, la comprobación del origen de WebSocket y un token de Cloudflare Tunnel
  • Cualquier otra variable de entorno, comentarios que explican el archivo y una descarga como compose.yaml

Ejemplos

La configuración predeterminada produce el mismo archivo que el del repositorio de Uptime Kuma:

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data
    restart: unless-stopped

Al elegir un contenedor MariaDB como base de datos, se añade un servicio mariadb y Uptime Kuma se conecta a él mediante UPTIME_KUMA_DB_TYPE, UPTIME_KUMA_DB_HOSTNAME y las demás variables UPTIME_KUMA_DB_*.

Consejos

  • Guarda el resultado como compose.yaml en una carpeta vacía e inícialo con docker compose up -d. Después, abre http://localhost:3001
  • Los sistemas de archivos como NFS no son compatibles con la carpeta de datos. Usa una carpeta local o un volumen de Docker
  • Las imágenes slim no incluyen Chromium, que necesita el monitor de navegador real, y tampoco incluyen la MariaDB integrada
  • Las imágenes rootless se ejecutan como el usuario node con UID 1000, por lo que una carpeta de datos en el host debe tener permisos de escritura para ese usuario
  • Uptime Kuma utiliza WebSockets. Cuando lo coloques detrás de un proxy inverso, el proxy debe reenviar las cabeceras Upgrade y Connection
  • El socket de Docker proporciona a Uptime Kuma control total sobre Docker en el host. Móntalo únicamente cuando necesites monitores del host de Docker y no expongas Uptime Kuma a internet
  • La versión 1 solo admite SQLite, por lo que las opciones de base de datos permanecen ocultas en ella
  • Los campos de contraseña terminan en el archivo en texto plano. Mantén el archivo privado o mueve la contraseña a un archivo .env y haz referencia a ella como ${DB_PASSWORD}