Dieses Tool patched meine Server jetzt automatisch | Patchmon
Übersicht
Wer mehrere Server betreibt, kennt das Problem: Updates im Blick behalten, Sicherheitslücken schließen und Systeme aktuell halten kostet Zeit und wird schnell unübersichtlich.
Patchmon hatte ich bereits vor einiger Zeit vorgestellt, damals vor allem als zentrale Übersicht für Linux-Updates und Docker-Container. Seitdem hat sich allerdings einiges getan.
Mit automatischem Patch-Management, Windows-Support, Notifications und neuen Compliance-Funktionen entwickelt sich Patchmon inzwischen immer mehr zu einer vollständigen Patch-Management-Lösung für Homelab und kleine Server-Umgebungen.
In diesem Artikel schauen wir uns die wichtigsten Neuerungen an, richten die aktuelle Version per Docker ein und binden sowohl Linux- als auch Windows-Hosts an.
Link zum Video hier: https://youtu.be/ckkKJfsVNQQ
Installation
Docker
Da wir Patchmon mit Docker betreiben möchten, installieren wir als Erstes natürlich erstmal Docker selbst, falls noch nicht geschehen. Das können wir ganz einfach mit dem offiziellen Convenience Script von Docker machen.
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Verzeichnis
Bevor wir fortfahren, müssen wir uns ein geeignetes Verzeichnis erstellen, wo wir Patchmon später laufen lassen wollen. Ich habe meine Docker-Compose Stacks immer gerne unter /opt, darunter erstelle ich einen neuen Ordner für Patchmon mit:
sudo mkdir /opt/patchmon
cd /opt/patchmon
Docker Compose - Install Script
In der neuen Version gibt es nun ein Install-Script, das uns die meiste Arbeit abnimmt.
Das Script können wir mit folgendem Befehl auf unserem Server ausführen.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/PatchMon/PatchMon/refs/heads/main/docker/setup-env.sh)"
Uns werden dann einige Fragen gestellt.

Reverse Proxy
In dem heutigen Setup habe ich den Nginx Proxy Manager als Reverse Proxy auf einem anderen Host. Somit muss ich nichts weiter machen, außer einen neuen Eintrag erstellen mit meiner gewünschten Domain und als Ziel den Patchmon Server angeben.

Falls ihr einen Reverse Proxy wie den Nginx Proxy Manager auf demselben System habt, könnt ihr der docker-compose.yml einfach das Docker-Netzwerk hinzufügen. Mehr Infos dazu findet ihr hier für den Nginx Proxy Manager oder hier für Caddy.
Start
Nachdem wir nun also die docker-compose.yaml und die .env in unserem Patchmon-Verzeichnis haben, können wir die Container starten.
sudo docker compose up -d
Erste Schritte
Wie auch in der vorherigen Version erstellen wir uns einen Admin-Benutzer beim ersten Navigieren auf die Seite. Das gesamte Setup hat sich aber leicht verändert.

Im nächsten Schritt haben wir direkt die Möglichkeit, einen 2. Faktor zu hinterlegen, was ich jeder Produktivumgebung empfehlen würde.

Im 3. Schritt verifizieren wir noch einmal unsere URL.

Schritt 4 gibt uns die Möglichkeit, informiert zu bleiben über unsere Patchmon-Instanz.
Dashboard
Jetzt sind wir auch schon auf dem Dashboard angekommen, das deutlich mehr Kacheln und Co. besitzt als in der vorherigen Version. Um diese nun mit Leben zu füllen, fügen wir im nächsten Schritt Hosts hinzu.

Hosts
Wenn wir im Reiter Hosts auf Add Host gehen, können wir wie auch schon vorher einen Host hinzufügen. Hierbei gab es einige Veränderungen.
Als Erstes wählen wir unser Betriebssystem aus, das wir onboarden wollen.

Im nächsten Schritt können wir angeben, welche Integrationen mit auf dem Host aktiviert und installiert werden sollen. Hier aktiviere ich einmal Compliance, um das später ebenfalls zeigen zu können.

Im letzten Fenster erhalten wir dann einen Command zum Installieren auf dem Host.

Das können wir uns kopieren und auf dem Host ausführen. In der Zwischenzeit wartet Patchmon auf die Verbindung.

Sobald sich der Host gemeldet hat, wird er als aktiv angezeigt und initialisiert.

Windows
Windows Hosts werden nun ebenfalls unterstützt und es gibt einen Agent dafür. Den installiert man ebenfalls per Terminal Command direkt auf dem gewünschten Host. Sobald sich der Host gemeldet hat, erhalten wir ebenfalls Infos über benötigte Updates & Co.

Neuerungen
Kommen wir nun zu den Neuerungen. Dabei kamen drei große Features dazu, die Patchmon nochmal deutlich aufgewertet haben.
Patching
Die meiner Meinung nach beste Neuerung finden wir im Reiter Patching. Hier können wir Schedules konfigurieren, um unsere Server völlig automatisch von Patchmon patchen zu lassen.
Dort unter Policys haben wir die Möglichkeit, eigene Richtlinien zu erstellen, bei denen wir angeben, wann welche Server gepatcht werden sollen. Dabei können wir eine feste Zeit festlegen oder auch immer sofort patchen.

Ist die Policy erstellt, können wir dort einzelne Hosts oder auch Host-Gruppen hinzufügen.

Anschließend werden die Hosts entsprechend konfiguriert gepatcht.
Sollte mal ein Host sofort geupdatet werden, gibt es auch auf dem entsprechenden Host einen Patch-Button dafür, womit man die hinterlegte Policy überschreiben kann.

Wenn man einen Patch startet, sieht man ebenfalls, was auf dem Host passiert.

Windows
Bei Windows-Hosts können wir aktuell noch keine Updates via Patchmon installieren. Hier erhalten wir die Info, dass die Updates via Windows Updates gemanagt werden.

Aber wir erhalten eine Übersicht über die fehlenden Updates, die das System benötigt.

Theoretisch gibt es zusätzlich einen RDP-Reiter bei Windows-Hosts, worüber man sich direkt auf den Server schalten kann, das hat in meinem Test allerdings trotz funktionierendem RDP nicht so wirklich funktioniert.

Compliance
Ein verbessertes Feature soll Compliance sein. Hier wird bei Bedarf mit dem Agent auf dem Host ein Scanner mit installiert, der das System auf Schwachstellen und Misskonfiguration prüft.

In meinem Test mit verschiedenen Systemen musste ich feststellen, dass dies aktuell noch sehr hakelig funktioniert.
Es gab einige Fehler bei der Installation des Scanners, anschließend Informationen, dass keine der Profile für das Betriebssystem sind. Mit Ubuntu habe ich keinen Scan zum Laufen bekommen.

Man sieht in der Übersicht, dass alle Tests übersprungen wurden. 
Nach einigen Tests hatte ich halbwegs Erfolg mit einer Debian 13-Installation. Die wurde anfangs falsch erkannt, hat dann aber doch noch einen erfolgreichen Scan gemacht.

Notifications
Die letzte der drei Neuerungen sind die Notifications. Wir haben nun die Möglichkeit, uns benachrichtigen zu lassen, wenn es Updates gibt, ein Host down ist und vieles mehr.
Die Funktion ist im Reiter Reporting zu finden.

Meiner Meinung nach recht versteckt unter dem Punkt Destinations kann man dann externe Notifications wie SMTP und NTFY konfigurieren.

Es gibt einige Default Event Rules für Updates und Co. Diese gelten aber nur für die internen Benachrichtigungen.
Haben wir eine Destination hinzugefügt, können wir unter Event Rules entsprechende Benachrichtigungen, die wir erhalten möchten, konfigurieren.

Fazit
Seit meinem ersten Blick auf Patchmon hat sich das Projekt deutlich weiterentwickelt. Während der Fokus damals noch hauptsächlich auf Monitoring und Übersicht lag, geht die Plattform inzwischen klar in Richtung automatisiertes Patch-Management.
Vor allem die neuen Patch-Policies und automatischen Updates machen das Tool deutlich interessanter für produktive Umgebungen und größere Homelabs. Dazu kommen praktische Funktionen wie Notifications und erste Windows-Unterstützung.
Nicht alles wirkt aktuell schon komplett ausgereift. Gerade die Compliance-Features funktionierten in meinen Tests noch etwas inkonsistent. Trotzdem sieht man sehr gut, wohin sich das Projekt entwickelt.
Wer seine Server zentral verwalten, fehlende Updates im Blick behalten und Routineaufgaben beim Patchen automatisieren möchte, sollte Patchmon definitiv im Auge behalten.