Releases: Kroste/Checkmk
Release list
v1.7.5
v1.7.4
Kleine UX-Verbesserung: das Tray-Icon zeigt jetzt das App-Icon statt eines
nackten Farbpunkts — mit einem kleinen Status-Dot in der unteren rechten
Ecke, damit weiterhin auf einen Blick klar ist, wie es um dein Monitoring
steht.
Neu
Tray-Icon = App-Icon + Status-Overlay
Bisher waren im System-Tray nur farbige Punkte zu sehen (grün, gelb, rot,
grau). Zwischen dem Checkmk Cockpit und anderen minimierten Apps war das
nicht immer sofort zu unterscheiden. Neu:
- Basis: das App-Icon (Monitor + Pulslinie in Kroste-Blau) — im Tray
klar erkennbar als Checkmk Cockpit. - Status-Dot unten rechts, in derselben Ampelfarbe wie in der App
(grün#2E7D32/ gelb#F9A825/ rot#C62828/ grau#616161), mit
weißem Ring für Kontrast auch gegen den blauen Icon-Hintergrund. - Wird zur Laufzeit gerendert (
TrayIconFactorymitRenderTargetBitmap)
— kein Umweg über vier vorgebackene.ico-Files mehr, entsprechend
auch keine Divergenz mehr zwischen App-Ampelfarben und Tray-Farben.
Tooltip und Menü im Tray-Kontext bleiben unverändert (Anzeigen /
Test-Benachrichtigung / Snooze / Beenden).
Downloads
Checkmk-1.7.4-win-x64.zip
Fachbereich: 5424 IT-Basis-Dienste
v1.7.3
Bugfix: Der „Jetzt installieren"-Button aus v1.7.1 fehlte im Update-Dialog,
wenn man den Check über den „Nach Updates suchen"-Button in der Über-Box
angestoßen hatte — dort blieb nur „Release-Seite öffnen" übrig, und das
Update musste weiterhin von Hand gezogen werden.
Behoben
Der AboutWindow-Code-Behind rief new UpdateDialog(info) ohne den
UpdateInstaller als Ctor-Argument. Der Dialog interpretiert fehlenden
Installer als „Self-Update nicht möglich" und blendet den Button aus.
Fix: UpdateDialog holt sich den UpdateInstaller jetzt selbst aus dem
DI-Container, wenn keiner übergeben wurde. Damit ist „Jetzt installieren"
überall verfügbar, wo der Dialog aufpoppt — Startup-Badge und
Über-Box-Button gleichermaßen.
Downloads
Checkmk-1.7.3-win-x64.zip
Update-Hinweis
Wer v1.7.1 oder v1.7.2 einsetzt: der Fix ist im aktuellen Cockpit-Code
schon da. „Nach Updates suchen" öffnet nach dem einmaligen Update auf
v1.7.3 den korrekten Dialog mit dem „Jetzt installieren"-Button.
Fachbereich: 5424 IT-Basis-Dienste
v1.7.2
Auto-Update auch für Plugins. Nach dem Cockpit-Self-Update in v1.7.1 folgt
jetzt das gleiche für die installierten Plugins — ein zentraler Dialog listet
alle Plugins mit aktuellem/neuestem Stand, ein Klick installiert alle
verfügbaren Updates in einem Rutsch.
Neu
Plugin-Update-Dialog (Über → „Plugin-Updates…"):
- Zeigt alle geladenen Plugins mit
UpdateChannelUrlaus ihrer
PluginMetadata: installierte Version → neueste Version auf GitHub. - „Alle installieren" lädt die verfügbaren Plugin-ZIPs parallel herunter
(Fortschrittsanzeige, Firmen-Proxy-aware), extrahiert jede
CheckmkPlugin.*.dll, schreibt EIN Batch-Skript, das Cockpit-Ende
abwartet, dann alle DLLs inplugins/überschreibt und Cockpit neu
startet — analog zum Cockpit-Self-Update-Mechanismus aus v1.7.1. - „Erneut prüfen" wiederholt den Check ohne Neustart.
- Plugins ohne
UpdateChannelUrlwerden in der Liste nicht angezeigt.
Contract-Erweiterung PluginMetadata:
- Neues optionales Feld
UpdateChannelUrl(GitHub-Releases-API-URL des
Plugin-Repos, z. B.
https://api.github.com/repos/Kroste/Checkmk-Plugin-AgentUpdater/releases/latest). - Konvention für das Release-Asset:
<RepoName>-X.Y.Z.zipmit genau einer
CheckmkPlugin.<Name>.dlldrin.
Voraussetzung für Plugin-Update
Das jeweilige Plugin muss seine UpdateChannelUrl setzen. Ab folgenden
Plugin-Versionen ist das drin:
Checkmk-Plugin-AgentUpdater≥ v0.1.1Checkmk-Plugin-VSphereBaseImage≥ v0.2.3
Ältere Plugin-Versionen erscheinen im Dialog nicht — bitte einmal manuell
auf die passende Version ziehen (siehe Plugin-Release-Seiten), danach läuft
alles automatisch.
Downloads
Checkmk-1.7.2-win-x64.zip— Windows-Self-Contained-ZIP.
Update-Hinweis
Wer bereits v1.7.1 einsetzt: „Nach Updates suchen" in der Über-Box öffnet
den Cockpit-Update-Dialog, „Jetzt installieren" holt v1.7.2 vollautomatisch.
Fachbereich: 5424 IT-Basis-Dienste
v1.7.1
Kleines Nachschieben zur v1.7.0-Plugin-Runde: Self-Update wird jetzt aus
der App selbst gestartet — kein manuelles ZIP-Herunterladen und Entpacken mehr.
Neu
„Jetzt installieren"-Button im Update-Dialog (Kroste-Standard nach
Klemmbrett-Scaffold-Muster):
- Klick auf den gelben „Update auf X verfügbar"-Badge in der Statusleiste öffnet
wie gewohnt den Update-Dialog mit den Release-Notes. - Neuer Button „Jetzt installieren" (Primary) lädt das
Checkmk-x.y.z-win-x64.zipdirekt herunter — Fortschrittsanzeige mit
Prozent im Dialog, ohne Blockade der UI. Der Firmen-Proxy-Support ist
identisch zum Update-Check (WebRequest.DefaultWebProxy+
CredentialCache.DefaultCredentials). - Nach dem Download entpackt das Cockpit das ZIP in
%TEMP%\Checkmk-update-<guid>\,
schreibt ein Austausch-Skript (apply.bat) und startet es. Die App beendet
sich, das Skript wartet auf das Prozess-Ende
(powershell Wait-Process -Id <pid>— zuverlässiger als tasklist-Polling),
kopiert die neuen Dateien über die Installation (xcopy /E /Y /I) und startet
die neue Version. Einupdate.logim Temp-Ordner protokolliert jeden
Schritt für die Fehlersuche. - „Release-Seite öffnen" bleibt als Fallback für den händischen Weg (falls
der Auto-Install mal hakt oder man Notes im Browser lesen will).
Wenn kein Windows-ZIP im Release (unwahrscheinlich, aber möglich): der
„Jetzt installieren"-Button wird ausgeblendet, „Release-Seite öffnen" ist wieder
der Primary-Button.
Fallen aus dem Referenz-Muster (Klemmbrett-Scaffold) mitgenommen
- Batch-Zeilen werden ohne Einrückung geschrieben (
File.WriteAllLines),
weilcmd.exeeingerückte:label-Zeilen nicht als gültiges Sprungziel
akzeptiert — die Folge wäre stillergoto-Fehler,xcopywürde während der
noch laufenden App feuern und die alte Version startet neu. Wait-Processper PowerShell blockiert sauber, bis der App-Prozess weg ist —
kein Polling. Danach 2-Sekunden-Nachlauf perping 127.0.0.1 -n 2 >NUL, damit
Datei-Handles frei sind.- Der Work-Ordner wird nicht gelöscht — das
update.logbleibt liegen für
den Fehler-Debug.
Downloads
Checkmk-1.7.1-win-x64.zip— Windows-Self-Contained-ZIP.
Update-Hinweis
Wer auf v1.7.0 ist, kann diese v1.7.1 einmal noch manuell installieren
(Release-Seite → ZIP → entpacken). Danach übernimmt der „Jetzt installieren"-
Button alle weiteren Updates.
Fachbereich: 5424 IT-Basis-Dienste
v1.7.0
Version 1.7.0 macht das Plugin-System offiziell und lagert die erste
Funktion aus: Client-Aktualisierung liegt jetzt nicht mehr im Cockpit-Kern,
sondern als externes Plugin — wer sie will, installiert das Plugin einmalig.
Neu — Plugin-System (in Wellen 1 & 2a bereits gepusht, hier komplett)
Externe Erweiterungen können jetzt Tabs, Kontextmenü-Einträge und Services
beisteuern.
Checkmk.PluginContracts(neues Projekt in der Solution): definiert
IPlugin,IPluginContext,IContextMenuContribution(Status- und
Hosts-Kontextmenüs),ITabContribution(Tabs neben Status/Hosts/Dashboard)
undIAgentUpdater(Contract für Plugin-zu-Plugin-Aufrufe).PluginLoaderscanntplugins/*.dllneben der Exe, lädt jedes gefundene
IPlugin, ruftRegister(services, context). Robust: ein kaputtes Plugin
bricht den Cockpit-Start nicht.- Tab-Extension:
ITabContribution-Instanzen landen automatisch als Tabs
rechts von Status/Hosts/Dashboard (Sortierung überOrder). - Kontextmenü-Extension: Plugin-Einträge werden mit Separator unten an die
bestehenden Menüs angehängt. Position pro Menü ist über
IContextMenuContribution.SupportsLocationfilterbar.
Breaking — Client-Aktualisierung raus aus dem Kern
Der Menüpunkt „Client aktualisieren…" ist entfernt. Wer die Funktion
weiterhin nutzen will:
- Neuestes ZIP von den
Checkmk-Plugin-AgentUpdater-Releases
herunterladen. - Entpacken →
CheckmkPlugin.AgentUpdater.dllin einen Ordnerplugins/
nebenCheckmk.App.exelegen (Ordner ggf. anlegen). - Cockpit neu starten. Menüpunkt erscheint wieder.
Grund für den Auszug: die Aktion greift mit Admin-Credentials auf entfernte
Hosts zu — nicht jeder Cockpit-Nutzer soll das im Kontextmenü haben.
Entfernt:
Checkmk.App/Services/AgentUpdater.csCheckmk.App/Views/AgentUpdateWindow.axaml(+.cs)Checkmk.App/Views/CredentialDialog.axaml(+.cs)ConnectionSettings.AgentShareundConnectionSettings.AgentUpdateScript
(Werte insettings.jsonwerden vom Deserializer ignoriert). Plugin bringt
eigene Config unter%APPDATA%\Kroste\Checkmk\plugins\kroste.checkmk.agent-updater\settings.json.- Toolbar-Feld „Agent-Share" und Skript-Vorlage-Textbox aus dem Einstellungen-
Dialog.
Migration für bestehende Nutzer
- Wer die Client-Aktualisierung nutzt: Plugin-ZIP installieren (siehe oben).
Beim ersten Start bringt das Plugin die Default-Skript-Vorlage mit; falls du
eine angepasste Vorlage hattest, aus der altensettings.json(in der Backup-
Version) rüberkopieren nach der neuen Plugin-settings.json. - Wer sie nicht braucht: nichts zu tun. Der Menüpunkt ist einfach weg,
die App läuft schmaler.
Downloads
Checkmk-1.7.0-win-x64.zip— Windows-Self-Contained-ZIP.- Plugin separat:
Checkmk-Plugin-AgentUpdater v0.1.0.
Roadmap
Nächstes Plugin: Checkmk-Plugin-VSphereBaseImage — Batch-Update der
Checkmk-Agents in vSphere-CTX-Baseimages (nachts überschriebene VMs, wo die
Updates sonst verloren gehen). Nutzt IAgentUpdater aus Plugin 1.
Fachbereich: 5424 IT-Basis-Dienste
v1.6.1
Version 1.6.1 ist eine Chrome-/Polishing-Runde: das App-Icon ist jetzt
im Explorer, in der Taskleiste und im Alt-Tab-Wechsler sichtbar, die
Versionsanzeige zeigt die echte SemVer-Version (nicht mehr „1.0.0"), und
die Titelleiste sitzt sauber als wiederverwendbares UserControl in allen
13 Fenstern — mit den Avalonia-12-Hit-Test-Rollen, sodass ComboBoxen und
Buttons in der Titelleiste mit einem Klick reagieren.
Neu
App-Icon (Variante B: Monitor + Pulslinie in Kroste-Blau #123E6B)
Assets/app.ico(16/32/48/256 Auflösungen) → EXE-Icon (Explorer,
Taskleiste, Verknüpfungen).Assets/app.png(256×256) →Window.Iconzur Laufzeit (Fenster-
Kopfleiste, Alt-Tab, Task-Umschalter). Die Titelleiste zeigt es
zusätzlich klein oben links.
Titelleiste als eigenständiges UserControl
Bisher hatte jedes Fenster seine Titelleiste inline gebaut. Neu:
Controls/TitleBar.axaml(+.cs) — ein <controls:TitleBar Title="..." />
und fertig. Vorteile:
- Konsistentes Layout in allen 13 Fenstern (App, Einstellungen, About,
Update-Dialog, alle Dialogfenster). TitleBar.Extras-Content-Slot für Zusatzinhalte in der Titelleiste —
im MainWindow leben dort der Site-Umschalter, „Einstellungen"/„Über"-
Buttons und der „2.5 · v1"-Backend-Badge.- Referenz-Muster: kroste-avalonia-Skill / Klemmbrett-Scaffold.
Ein-Klick-Öffnen von ComboBox/Button in der Titelleiste
Chrome-Rollen nach Avalonia-12-Standard gesetzt: Titelleisten-Container
mit chrome:WindowDecorationProperties.ElementRole="TitleBar" (das OS
übernimmt Drag + Doppelklick-Maximieren nativ via HTCAPTION),
Fensterbuttons und der Extras-Slot mit "User" (HTCLIENT → Klicks
laufen direkt zu den Avalonia-Controls, DwmDefWindowProc und Snap-
Layouts können sie nicht mehr schlucken).
Bisher schluckte die OS-Caption-Zone unter Windows den ersten Klick auf
den Site-Umschalter — man brauchte einen Doppelklick, um das Dropdown zu
öffnen. Ab jetzt reicht ein einfacher Klick.
Versionsanzeige liest die echte SemVer
Neuer AppVersion.Display-Service liest die MinVer-InformationalVersion
(ohne +-Suffix). About-Box und Update-Dialog zeigten vorher via
Assembly.GetName().Version fälschlich 1.0.0 (MinVer setzt die
AssemblyVersion default nur auf Major.0.0.0). Jetzt steht überall
die richtige Version.
Aufgeräumt
ChromeWindow-Basisklasse reduziert
Der bisherige ChromeWindow hatte einen Visual-Tree-Ancestor-Walk-Hack,
um Klicks auf interaktive Controls in der Titelleiste zu erkennen (der
Workaround für das Doppelklick-Problem aus v1.5.x). Der Hack ist raus —
die ElementRole-Rollen lösen das Problem auf der richtigen Ebene. Auch
die inline Min/Max/Close-Handler in ChromeWindow sind entfallen, die
TitleBar-UserControl bringt ihre eigenen Buttons mit.
Reduziert auf die vier Pflicht-Zeilen (BorderOnly +
ExtendClientAreaToDecorationsHint=true +
ExtendClientAreaTitleBarHeightHint=-1 + CanResize=true) plus
Icon-Load.
Interna
Downloads
Checkmk-1.6.1-win-x64.zip— Windows-Self-Contained-ZIP.
Update-Hinweis
Kein Setup-Aufwand. Alle Fenster verhalten sich weiterhin gleich — nur
das Klick-Verhalten in der Titelleiste ist sauberer (Site-Umschalter
mit einem Klick), und die App zeigt jetzt ein sichtbares Icon in
Explorer/Taskleiste und die richtige Version in der About-Box.
Benutzerhandbuch
Aktuelle Anleitung: README.md.
Fachbereich: 5424 IT-Basis-Dienste
v1.6.0
Version 1.6.0 ist überwiegend ein Wartungs- und Infrastruktur-Release: Es
modernisiert die Abhängigkeiten und die Toolchain und macht die
Windows-only-Ausrichtung offiziell. Als einzige sichtbare Neuerung lässt sich
der Update-Check jetzt manuell aus der About-Box anstoßen.
Neu: Manueller Update-Check
In der About-Box („Über") gibt es jetzt den Button „Nach Updates suchen".
Bisher lief die Prüfung nur automatisch beim Start — jetzt lässt sie sich
jederzeit anstoßen, mit klarer Rückmeldung: Ist eine neuere Version verfügbar,
öffnet sich der gewohnte Update-Dialog mit den Release-Notes; sonst meldet die
Box „aktueller Stand" bzw. einen fehlgeschlagenen Check. Anders als der
automatische Check zeigt die manuelle Suche bewusst auch eine zuvor
übersprungene Version wieder an — wer aktiv nachsieht, will es schließlich wissen.
Plattform: offiziell Windows-only
Das Cockpit ist ab dieser Version bewusst und final auf Windows ausgerichtet
(App-Target net10.0-windows, nur win-x64). Grund sind tragende, Windows-nahe
Features: der DPAPI-geschützte Secret-Speicher, die WinRM/PowerShell-basierte
Client-Aktualisierung und die Tray-Benachrichtigungen per Shell_NotifyIcon.
Praktisch heißt das: Es gibt keinen Linux-Build und kein AppImage mehr. Die
Entscheidung ist in der CLAUDE.md als dokumentierte Ausnahme festgehalten, damit
sie nicht versehentlich „nach Cross-Platform zurückgebaut" wird.
Abhängigkeiten & Toolchain
Avalonia 12.0.5 → 12.1.0
Alle Kern-Pakete (Avalonia, Desktop, Themes.Fluent, Fonts.Inter, Controls.DataGrid)
wurden gemeinsam auf 12.1.0 gehoben — vorher lag ein Mix aus 12.0.5/12.0.1 vor.
Der transitive Tmds.DBus.Protocol-Pin wurde exakt auf die von Avalonia 12.1.0
geforderte Version 0.94.1 gesetzt.
xunit v2 → xunit.v3 (3.2.2)
Das Test-Framework wurde auf die aktuelle, nicht mehr veraltete Generation
migriert. Die 61 Tests laufen unverändert grün; am Testcode war nichts zu ändern.
Wartung, CI & Entwicklung
- Secret-Masking im Log: Ein eigener NLog-Layout-Renderer maskiert Passwörter,
Tokens undBearer-Header, bevor sie in die Logdatei gelangen. - Dependabot aktualisiert NuGet-Pakete und GitHub-Actions künftig wöchentlich.
- NuGet-Cache in der CI beschleunigt die Builds; die Release-Action nutzt
action-gh-release@v3. - VS-Code-
tasks.jsonwurde vervollständigt (build-release,watch,clean
undrelease (tag + push)) und an Windows-only angepasst — bewusst ohne
Linux-/AppImage-Task. - Release-Skripte
scripts/release.ps1undscripts/release.shsetzen den
annotierten Tag und stoßen die Release-Action an.
Downloads
Checkmk-1.6.0-win-x64.zip— Windows (self-contained, keine .NET-Installation nötig)
Update-Hinweis
Das Update ist nahtlos — an Konfiguration, gespeicherten Verbindungen, Filtern
oder Secrets ändert sich nichts. Der In-App-Update-Check erkennt dieses Release
automatisch.
Wer bisher einen Linux-Build (≤ 1.5.1) verwendet hat: Für 1.6.0 gibt es keinen
Linux-Nachfolger mehr, hier ist ein Wechsel auf Windows nötig.
Benutzerhandbuch
Ausführliche Anleitung: README.md.
Fachbereich: 5424 IT-Basis-Dienste
v1.5.2
v1.5.1
Version 1.5.1 ist ein Bugfix-Release. Es behebt einen Datenverlust bei den
Host-Filtern pro Site, der mit dem Site-Feature in 1.5.0 hinzukam.
Behoben
Filter der aktiven Site gingen nach dem Beenden verloren
Beim Laden eines Site-Filtersets wird die Filterliste intern geleert
(Filters.Clear()). Die two-way-gebundene Host-Filter-ComboBox schrieb daraufhin
Active = null zurück — und der Active-Setter löste ein Speichern mit der
gerade geleerten (leeren) Liste aus. Ergebnis: Die aktuelle Site wurde auf Platte
mit einer leeren Filterliste überschrieben.
Sichtbar wurde das so: Man beendet das Cockpit mit einer Site (z. B. LHP) und
einem aktiven Filter; beim nächsten Start ist diese Site zwar aktiv, aber ihre
Filter sind weg — während die Filter der anderen Site erhalten bleiben (die
wurde beim Wegwechseln rechtzeitig gespeichert).
Behoben durch einen Guard, der das automatische Speichern während des Ladens
unterdrückt. Ein Regressionstest stellt das ComboBox-Verhalten nach und ist gegen
die alte Version rot, mit dem Fix grün.
Downloads
Checkmk-1.5.1-win-x64.zip— Windows (empfohlen)Checkmk-1.5.1-linux-x64.tar.gz— Linux tar-ArchivCheckmk-1.5.1-x86_64.AppImage— Linux AppImage
Update-Hinweis
Bereits verlorene Filter kommen durch das Update nicht zurück — sie sind auf
Platte schon leer und müssen einmalig neu angelegt werden. Ab dann bleiben sie
über Site-Wechsel und Neustart erhalten.
Benutzerhandbuch
Ausführliche Anleitung: README.md.
Fachbereich: 5424 IT-Basis-Dienste