Sí: DockMon existe y tiene muy buena pinta para desarrolladores y equipos de TI que viven en Docker “puro y duro”. Es un proyecto gratuito y open source que aporta monitorización en tiempo real, reinicio inteligente de contenedores, alertas multicanal (Discord, Slack, Telegram, Pushover, Gotify, SMTP) con plantillas personalizables, multi-host desde un único panel y un enfoque de seguridad por diseño (mTLS para hosts remotos, rate-limiting, base Alpine). Todo ello sin montar un clúster de Kubernetes ni una pila completa de Prometheus+Grafana+Alertmanager.
A grandes rasgos, se posiciona como “lo que la mayoría necesita” para operar Docker con observabilidad y reacción: ver métricas, logs, eventos y, sobre todo, actuar (reinicios, despliegues, bulk operations, health checks, ventanas de mantenimiento, actualizaciones de imágenes programadas).
Lo esencial que aporta
- Multi-host de verdad: inventario de hosts Docker locales y remotos con mTLS opcional para endurecer el canal.
- Tiempo real: CPU, RAM y red por contenedor, con WebSocket y widgets de tablero arrastrar-y-soltar.
- Logs en vivo: visor simultáneo de varios contenedores con follow y filtros.
- Event viewer: traza de auditoría, búsqueda y actualizaciones en vivo.
- Reinicio inteligente: por contenedor, con lógica de reintentos configurable (evita bucles y escalada).
- Alertas multicanal: Discord, Slack, Telegram, Pushover, Gotify, SMTP; plantillas y reglas por condiciones (CPU, memoria, caída de health check, restart storm, etc.).
- Despliegues y bulk ops: run/compose, plantillas reutilizables, inicio/paro/reinicio masivo con barra de progreso.
- Auto-updates: detección y ejecución programada de actualizaciones de imagen.
- Health checks HTTP/HTTPS: con auto-restart en fallo.
- Ventanas de silencio (blackout windows): suprime alertas en mantenimientos.
- Stack moderno: backend FastAPI (Python 3.13) + servicio Go para métricas, frontend React 18 + TS, reverse proxy Nginx, base Alpine.
Migración v1→v2: conserva hosts, contenedores, histórico y usuarios; hay que recrear reglas de alerta, regenerar certificados mTLS por requisitos de OpenSSL 3.x y se realiza una migración automática de esquema desde v1.1.3 a v2.0.0.
¿Para quién encaja?
- Equipos sin Kubernetes (por simplicidad, coste o tamaño) que quieren monitorización + reacción sin montar media nube de herramientas.
- Homelabs y pymes que valoran alertas y auto-remediación básica (reinicio, actualización) sin sacrificar control.
- DevOps/SRE que necesitan multi-host ligero y rápido de desplegar para entornos edge, CI runners o nodos remotos.
Comparativa rápida con alternativas conocidas
| Criterio / Herramienta | DockMon | Portainer CE | Dozzle | Watchtower | Prometheus+cAdvisor+Alertmanager+Grafana |
|---|---|---|---|---|---|
| Alcance | Multi-host, métricas, logs, eventos, acciones | Gestión UI Docker/K8s, stacks, roles | Visor de logs | Auto-update de imágenes | Métricas/alertas ricas (stack por piezas) |
| Métricas en tiempo real | Sí (CPU/RAM/red por contenedor) | Básicas/limitadas | No | No | Sí (muy completo) |
| Alertas integradas | Sí (Discord/Slack/Telegram/SMTP, plantillas) | No nativas | No | No | Sí (Alertmanager; requiere configuración) |
| Auto-restart inteligente | Sí (reintentos) | Política Docker (reinicio simple) | No | No | No (se podría orquestar aparte) |
| Auto-updates | Sí (programados) | Parcial (según edición/flows) | No | Sí (foco principal) | No (ajeno al stack; scripts externos) |
| Deploy compose/run | Sí (plantillas y multi-host) | Sí | No | No | No (otro tooling) |
| Multi-host | Sí (mTLS opcional) | Sí (múltiples endpoints) | No | No | Sí (federado; complejidad alta) |
| Curva de adopción | Baja-media | Baja | Muy baja | Muy baja | Alta (múltiples componentes) |
Lectura: DockMon no sustituye a Portainer si buscas administración integral de Docker/K8s, pero cubre observabilidad y reacción con menos piezas que Prometheus+Grafana y más alcance que Dozzle/Watchtower por separado.
Quick start (compose en 5 minutos)
# docker-compose.yml
services:
dockmon:
image: ghcr.io/darthnorse/dockmon:latest
container_name: dockmon
restart: unless-stopped
ports:
- "8080:8080" # UI
- "8443:8443" # API/WS si separas puertos
environment:
DOCKMON_ADMIN_USER: "admin"
DOCKMON_ADMIN_PASS: "cambia_esto"
DOCKMON_TIMEZONE: "Europe/Madrid"
# Notificaciones (ejemplos; opcional)
DOCKMON_SMTP_HOST: "smtp.tu-dominio.com"
DOCKMON_SMTP_USER: "[email protected]"
DOCKMON_SMTP_PASS: "secreto"
DOCKMON_TELEGRAM_TOKEN: "12345:bot_token"
DOCKMON_TELEGRAM_CHAT: "-100123456789"
volumes:
- dockmon-data:/var/lib/dockmon
- /var/run/docker.sock:/var/run/docker.sock:ro
volumes:
dockmon-data:
Lenguaje del código: PHP (php)
docker compose up -d- Accede a
http://tu-host:8080con las credenciales. - Añade hosts remotos si procede (ver siguiente).
Monitorizar hosts remotos con mTLS (esquema básico)
- Habilitar la API Docker con TLS en el host remoto (ejemplo daemon.json):
{
"hosts": ["unix:///var/run/docker.sock","tcp://0.0.0.0:2376"],
"tlscacert": "/etc/docker/tls/ca.pem",
"tlscert": "/etc/docker/tls/server-cert.pem",
"tlskey": "/etc/docker/tls/server-key.pem",
"tlsverify": true
}
Lenguaje del código: JSON / JSON con comentarios (json)
- Abrir
2376/tcpen el firewall del remoto para el origen del servidor DockMon. - En DockMon → Hosts → Add host, define
tcp://IP:2376y sube los certificados cliente emitidos por tu CA. - Verifica que entran métricas y logs en caliente.
Consejo: si hay nodos en WAN, usa WireGuard o segmenta con mTLS y reglas estrictas (IP allow-list, rate-limit, auditoría).
Crear una regla de alerta típica
- Condición: contenedor
webcon CPU > 85 % durante 3 min. - Acción: enviar a Telegram + correo y marcar incidente en el visor de eventos.
- Remediación (opcional): reiniciar si supera 95 % durante 5 min o si falla el health check.
El nuevo motor de reglas en v2 permite plantillas por canal y ventanas de mantenimiento para silenciar durante deploys.
Buenas prácticas (operación diaria)
- Evita bucles de reinicio: usa retardos y límite de reintentos por contenedor; si se supera, dispara alerta en lugar de seguir reiniciando.
- Etiquetas y tagging: aprovecha Docker labels para clasificar servicios, entornos y responsables; DockMon deriva etiquetas automáticamente.
- Auto-updates con cabeza: programa fuera de horario, valida digest y habilita blackout windows para suprimir ruido mientras se actualiza.
- Seguridad: sesión con tiempo de vida acotado, TLS en la UI si expones fuera, y mTLS para hosts remotos.
Limitaciones y márgenes
- No es un orquestador: si necesitas auto-escalado, service mesh o despliegues canary, estás en terreno de Kubernetes u otras plataformas.
- Alertas avanzadas de negocio (SLOs, burn rate) requieren combinar DockMon con tu SIEM/Observability o extender por API.
- Si buscas observabilidad de bajo nivel (eBPF, tracing, perfiles), apóyate en herramientas especializadas y deja a DockMon la parte operativa (alerta+acción).
FAQ rápida
¿Consume muchos recursos?
Es ligero para lo que ofrece, pero métricas en tiempo real y logs en vivo sobre muchos contenedores y hosts suman. Dimensiona CPU/RAM y red en función de tu parque.
¿Puedo integrarlo con Grafana o un SIEM?
Sí, expone API REST/WS y events; úsalo como fuente de verdad operativa (incidentes, reinicios, health checks) y correlaciona en tu plataforma.
¿Soporta compose y despliegues repetibles?
Sí. Puedes guardar plantillas y lanzar despliegues en hosts remotos desde la UI.
¿Cómo migro de v1 a v2?
La base se migra automáticamente; recrea reglas de alertas, regenera mTLS y verifica conexiones tras el upgrade.
Conclusión
Para la enorme mayoría que no necesita Kubernetes, DockMon coloca en una sola caja lo que suele repartirse entre varias: ver, alertar y actuar sobre contenedores en tiempo real, en uno o varios hosts y con seguridad. No pretende competir con Portainer en administración general ni con Prometheus en observability profunda: complementa esas piezas o las evita cuando lo que se busca es operar Docker con luminosidad y reflejos.
Si tu equipo vive en Docker y quiere menos lío para estar enterado y protegido, merece una prueba.