PatchMon: actualiza todas tus máquinas Linux desde un panel

patchmon https github com patchmon patchmon software para mantener tus maquinas linux ac

Si tu homelab es un laberinto de servidores Linux que olvidas actualizar, PatchMon te va a quitar un dolor de cabeza. Ya no tendrás que SSH a cada máquina para comprobar qué parches penden, ni preocuparte por los contenedores desactualizados que nadie mira.

Te cuento cómo lo he montado en mi casa: un único panel web para ver y aplicar actualizaciones en todos tus hosts sin abrir puertos entrantes. Lo he probado con mis servidores Proxmox y Docker, y la experiencia es bastante directa si ya tienes algo de experiencia con contenedores.

Qué es PatchMon y por qué lo necesitas en tu homelab

Si tienes más de dos servidores Linux en casa, probablemente hay alguno que lleva meses sin tocar. No porque no quieras actualizarlo, sino porque comprobar qué parches penden en cada host requiere SSH, revisar la salida de apt o dnf, y decidir si es seguro aplicarlos ahora. Con el tiempo, esa tarea se acumula hasta que una actualización importante te pilla con el pie cambiado.

PatchMon resuelve esto con un panel web central. En lugar de conectarte a cada máquina, instalas un agente ligero en cada host y el panel te muestra qué actualizaciones están pendientes en toda tu flota. Desde ahí decides qué parches aplicar y cuándo. El agente solo hace conexiones salientes hacia el servidor de PatchMon, así que no necesitas abrir ningún puerto entrante en tus servidores. Para un homelab con IP dinámica o detrás de un router con NAT, esto elimina la principal fricción para centralizar la gestión.

El problema: actualizaciones olvidadas

En mi caso, el problema no era la complejidad técnica de lanzar un apt upgrade. Era la inercia. Un servidor de pruebas que no uso a menudo, un contenedor de Gitea que actualizo cuando me acuerdo, una máquina Proxmox que lleva la última versión estable pero no los parches de seguridad intermedios. Cada una de esas máquinas es un riesgo pequeño que se suma.

PatchMon es open source bajo licencia AGPL v3 y puedes autoalojarlo gratis en tu propio hardware. No hay licencias por nodo ni cuotas mensuales. Según su web oficial, más de 55.000 servidores ya lo usan, lo que sugiere que la comunidad ha validado el enfoque. Si ya gestionas tu homelab con Docker y Proxmox, esta herramienta encaja sin pedirte que cambies tu stack.

Lo que me ha convencido es que reduce la fricción de comprobar el estado de tus máquinas a un vistazo en un navegador. No sustituye a un sistema de gestión de configuraciones como Ansible, pero cubre ese hueco concreto de «¿qué parches penden y puedo aplicarlos ahora?» sin tener que recordar qué versión corre cada host.

Características clave de PatchMon

Lo primero que destaca es el control sobre el proceso de parcheo. No se trata de lanzar un upgrade ciego y rezar. El sistema permite ejecutar un dry-run antes de aplicar los cambios. Esto te da una vista previa de los paquetes que se instalarán o actualizarán en cada host. Puedes validar que no hay dependencias rotas o conflictos graves antes de tocar producción. Si algo no cuadra, cancelas la operación sin efectos secundarios.

El inventario de paquetes es otra pieza central. En mi caso, lo uso para saber exactamente qué repositorios están activos en cada máquina y qué versiones de software corren. No es solo una lista plana; te permite filtrar por host y ver el estado de cada paquete. Esto resuelve el problema de no saber si un servicio crítico lleva meses sin tocar. Si tienes varios nodos Proxmox o servidores dedicados, tener esta visibilidad centralizada ahorra horas de SSH por semana.

También cubre el terreno de la seguridad proactiva. PatchMon integra escaneos OpenSCAP y benchmarks CIS. No es un antivirus, pero te ayuda a detectar configuraciones inseguras o desviaciones de las buenas prácticas de seguridad. Para un homelab que expone servicios a la red local, esto es más relevante de lo que parece. No necesitas ser un experto en compliance, pero saber que tu nodo cumple los estándares básicos da tranquilidad.

Alertas y notificaciones

La versión 2 añadió alertas avanzadas que se integran bien con el resto de tu stack. Puedes recibir notificaciones cuando hay parches pendientes críticos o cuando un host cae fuera de línea. En mi setup, las he conectado a mi canal de Telegram para no perderme nada. No se trata de spamearte con cada actualización menor, sino de filtrar lo importante. Si un servidor lleva una semana sin parches de seguridad, te avisa. Si no, silencio.

SSH y RDP desde el navegador

Quizás la característica más práctica para el día a día es la terminal web. La v2 incluye un cliente SSH y RDP integrado. No necesitas abrir tu terminal local ni recordar claves de acceso para cada máquina. Desde el navegador, inicias sesión en cualquier host gestionado y ejecutas comandos directamente. Para tareas de diagnóstico rápido o ajustes menores, esto elimina la fricción de conectarse por SSH tradicional. Si tu homelab vive en una red con IP dinámica, como es común con la fibra en España, no tienes que configurar túneles ni puertos entrantes. El agente solo hace conexiones salientes, así que tu router sigue cerrado al exterior. Es una forma cómoda de mantener el control sin abrir agujeros de seguridad en tu red doméstica.

Requisitos y preparación del despliegue

Antes de tocar nada, asegúrate de tener Docker Engine 24 o superior instalado en tu nodo principal. La versión 24 es el mínimo viable porque el despliegue utiliza Compose v2. Si aún estás usando la versión clásica de Docker Compose, actualiza primero. En mi caso, lo tengo corriendo en un nodo Proxmox dedicado, pero funciona en cualquier servidor Linux con recursos libres.

La memoria es el punto crítico. El sistema pide 1 GB de RAM como mínimo, aunque yo recomiendo encarecidamente que le asignes 2 GB. PatchMon levanta cuatro contenedores: el servidor principal, PostgreSQL 17, Redis 7 y guacd para las terminales. Con 1 GB justo, notarás latencia al abrir la interfaz o al sincronizar muchos hosts a la vez. Con 2 GB, vuela.

Necesitas un proxy inverso con soporte para WebSockets apuntando al puerto 3000. No sirve un Nginx básico sin configurar la cabecera `Upgrade`. Además, recuerda configurar la variable `CORS_ORIGIN` en el archivo `.env` con la URL completa desde la que accedas. Si omites esto, el navegador bloqueará las conexiones. Si no tienes experiencia montando contenedores en tu infraestructura, te recomiendo leer nuestra guía de Docker en NAS Linux para repasar la base antes de avanzar.

Instalar PatchMon paso a paso con Docker

El despliegue está pensado para ser lo menos tedioso posible. En mi caso, he optado por el script oficial que automatiza la generación de secretos y la configuración inicial. No es magia, pero te ahorra copiar y pegar variables de entorno que, si las fallas, dan errores raros más adelante.

Clona el repositorio y ejecuta el script de configuración:

git clone https://github.com/PatchMon/PatchMon.git
cd PatchMon
./setup-env.sh

Este comando genera el archivo .env con las claves necesarias. Antes de continuar, abre ese archivo y busca la variable CORS_ORIGIN. Debes sustituirla por la URL exacta desde la que accedas al panel. Si usas un dominio propio, pon https://patchmon.tudominio.es. Si accedes por IP local, usa http://192.168.1.100:3000. Si esta variable no coincide con la URL del navegador, la interfaz cargará pero las conexiones fallarán silenciosamente.

Una vez ajustado el archivo, levantas los contenedores con:

docker compose up -d

Espera unos minutos mientras se descargan las imágenes. Al terminar, abre tu navegador y navega al puerto 3000. Verás la pantalla de inicio de sesión. Crea tu cuenta de administrador con el usuario y contraseña que definiste en el .env. Si el proxy inverso está bien configurado para WebSockets, el panel responderá de inmediato. Si ves una pantalla en blanco o errores de conexión, revisa que el proxy esté reenviando correctamente la cabecera Upgrade hacia el puerto 3000.

Instalación manual alternativa

Si prefieres no usar el script o tu entorno es más restrictivo, puedes montar los contenedores manualmente. Necesitas definir los servicios de PostgreSQL 17, Redis 7, guacd y el servidor principal en tu propio archivo docker-compose.yml. La estructura es la misma, pero tendrás que gestionar tú mismo las variables de entorno y las redes internas entre contenedores. Es más propenso a errores de configuración, así que solo lo recomiendo si ya tienes experiencia avanzada con Docker Compose y quieres un control total sobre el despliegue.

Añadir hosts y lanzar tu primer parche

Una vez que el panel web responde correctamente, toca conectar las máquinas que quieres gestionar. En mi caso, empecé por el servidor principal del homelab y un nodo secundario que suelo dejar olvidado. Accede a la sección de hosts en la interfaz de PatchMon y crea una nueva entrada. El sistema te generará un comando específico para ese host.

Ejecuta ese comando en el servidor objetivo. El script descargará el agente y lo configurará para que se comunique con tu servidor central. Recuerda que el agente solo realiza conexiones salientes, así que no necesitas abrir ningún puerto entrante en tu firewall. Esto es especialmente útil si tienes una IP dinámica en casa y no quieres exponer servicios innecesarios. En menos de un minuto, el host aparecerá como activo en el panel.

Ahora puedes ver el estado de cada máquina. PatchMon consulta los repositorios de tu distribución (apt, dnf, pacman, etc.) y lista las actualizaciones pendientes. Verás claramente qué paquetes están desactualizados y desde hace cuánto. Si tienes contenedores Docker, también puedes revisar si las imágenes que estás usando tienen versiones más recientes disponibles.

Antes de aplicar nada, usa la función de dry-run. Esta opción simula el proceso de actualización sin modificar el sistema real. Es tu red de seguridad. Si el dry-run termina sin errores, puedes aprobar la ejecución real. El panel te mostrará el progreso en tiempo real y te alertará si algo falla.

Lo que me ha funcionado bien es establecer una rutina: revisar el panel una vez a la semana. Así evito acumular parches críticos y mantengo el homelab estable sin tener que hacer SSH a cada máquina individualmente. Es mucho más cómodo que gestionar cada servidor por separado, especialmente cuando tienes varios nodos con distribuciones diferentes.

PatchMon frente a otras opciones del homelab

Si vienes de entornos corporativos, sabrás que herramientas como SUSE Manager o Canonical Landscape son potentes pero pesadas. Requieren infraestructura considerable y, en el caso de Landscape, licencias por nodo que no tienen sentido para un homelab. PatchMon es mucho más ligero: corre en cuatro contenedores y no te obliga a pagar por cada servidor que conectes. Es la alternativa self-hosted gratuita que cubre lo esencial sin la complejidad de una solución enterprise.

Un punto que me interesa mucho es la integración con Docker. Aunque está en fase beta, apunta a ser un sustituto directo de Watchtower. En lugar de reiniciar contenedores automáticamente, PatchMon te permite ver qué imágenes tienen actualizaciones pendientes y decidir cuándo aplicarlas. Esto te da el control que Watchtower no ofrece, eliminando el riesgo de que un contenedor crítico se reinicie en el peor momento. Si ya gestionas tus contenedores con Docker en tu NAS Linux, esta funcionalidad te va a ahorrar más de un dolor de cabeza.

No es un sistema aislado. Complementa muy bien a otros servicios que ya tengas en tu homelab. Por ejemplo, si usas Gitea para gestionar tu código, PatchMon se encarga de mantener actualizados los servidores donde corre. Es una pieza más del puzzle, no un reemplazo total. La comunidad en Discord es activa, lo que ayuda cuando algo no va como esperas en el despliegue.

¿Merece la pena PatchMon? Mi recomendación

Si en tu casa solo tienes un servidor y un NAS, quizá no lo necesites. Pero si gestionas más de tres máquinas Linux, el tiempo que pierdes haciendo SSH a cada una para lanzar apt upgrade se dispara. PatchMon centraliza esa tarea en un panel web, eliminando la fricción de recordar qué máquina lleva meses sin tocar.

Es un proyecto joven. Algunas funciones, como la integración profunda con Docker, siguen en fase beta. No es una herramienta enterprise madura, sino un software open source que evoluciona rápido. Eso significa que puedes encontrar bugs o cambios de comportamiento entre versiones. Aun así, el riesgo es bajo: es gratuito, autoalojable y no dependes de licencias por nodo ni de servicios en la nube.

Lo que me ha convencido es la simplicidad. Un solo docker compose y un agente ligero por host. No abres puertos entrantes, solo salientes, lo cual es perfecto para homelabs con IP dinámica en España. Si ya tienes un entorno montado con Docker en tu NAS, como explicamos en nuestra guía de Docker en NAS Linux, añadir PatchMon es trivial.

No lo instales si solo tienes una máquina. Pero si tu homelab crece, es la alternativa self-hosted más sensata frente a herramientas de pago. Despliega PatchMon hoy y deja de parchear a ciegas.

Si estás montando esto desde cero, te interesa leer también Gitea, otra joya self-hosted para tu homelab y comparativa de Unraid y TrueNAS Scale.

Preguntas frecuentes

¿PatchMon es gratis?

Sí, la edición Community es AGPL v3 y autoalojable sin coste. Existe una nube gestionada de pago con prueba de 14 días.

¿Necesito abrir puertos en mis servidores?

No. El agente solo realiza conexiones salientes hacia el servidor PatchMon, sin exponer SSH ni puertos entrantes.

¿Qué distribuciones soporta PatchMon?

Debian, Ubuntu, RHEL, CentOS, Fedora, AlmaLinux, Alpine, Arch y FreeBSD. El agente de Windows está en beta.

¿Puedo actualizar contenedores Docker con PatchMon?

PatchMon descubre e inventaría contenedores, imágenes, volúmenes y redes, detectando imágenes base desactualizadas. La actualización automática está en desarrollo.

Sé el primero en comentar

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*