Skip to content

Releases: Kroste/Checkmk

v1.7.5

Choose a tag to compare

@github-actions github-actions released this 23 Jul 11:45

Release v1.7.5

v1.7.4

Choose a tag to compare

@github-actions github-actions released this 22 Jul 16:52

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 (TrayIconFactory mit RenderTargetBitmap)
    — 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

Choose a tag to compare

@github-actions github-actions released this 21 Jul 21:19

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

Choose a tag to compare

@github-actions github-actions released this 21 Jul 21:08

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 UpdateChannelUrl aus 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 in plugins/ ü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 UpdateChannelUrl werden 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.zip mit genau einer
    CheckmkPlugin.<Name>.dll drin.

Voraussetzung für Plugin-Update

Das jeweilige Plugin muss seine UpdateChannelUrl setzen. Ab folgenden
Plugin-Versionen ist das drin:

  • Checkmk-Plugin-AgentUpdater ≥ v0.1.1
  • Checkmk-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

Choose a tag to compare

@github-actions github-actions released this 21 Jul 20:00

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.zip direkt 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. Ein update.log im 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),
    weil cmd.exe eingerückte :label-Zeilen nicht als gültiges Sprungziel
    akzeptiert — die Folge wäre stiller goto-Fehler, xcopy würde während der
    noch laufenden App feuern und die alte Version startet neu.
  • Wait-Process per PowerShell blockiert sauber, bis der App-Prozess weg ist —
    kein Polling. Danach 2-Sekunden-Nachlauf per ping 127.0.0.1 -n 2 >NUL, damit
    Datei-Handles frei sind.
  • Der Work-Ordner wird nicht gelöscht — das update.log bleibt 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

Choose a tag to compare

@github-actions github-actions released this 21 Jul 19:30

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)
    und IAgentUpdater (Contract für Plugin-zu-Plugin-Aufrufe).
  • PluginLoader scannt plugins/*.dll neben der Exe, lädt jedes gefundene
    IPlugin, ruft Register(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 über Order).
  • Kontextmenü-Extension: Plugin-Einträge werden mit Separator unten an die
    bestehenden Menüs angehängt. Position pro Menü ist über
    IContextMenuContribution.SupportsLocation filterbar.

Breaking — Client-Aktualisierung raus aus dem Kern

Der Menüpunkt „Client aktualisieren…" ist entfernt. Wer die Funktion
weiterhin nutzen will:

  1. Neuestes ZIP von den
    Checkmk-Plugin-AgentUpdater-Releases
    herunterladen.
  2. Entpacken → CheckmkPlugin.AgentUpdater.dll in einen Ordner plugins/
    neben Checkmk.App.exe legen (Ordner ggf. anlegen).
  3. 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.cs
  • Checkmk.App/Views/AgentUpdateWindow.axaml(+.cs)
  • Checkmk.App/Views/CredentialDialog.axaml(+.cs)
  • ConnectionSettings.AgentShare und ConnectionSettings.AgentUpdateScript
    (Werte in settings.json werden 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 alten settings.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

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

Choose a tag to compare

@github-actions github-actions released this 21 Jul 17:56

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.Icon zur 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

  • CI/Release: actions/setup-dotnet@v6 und actions/cache@v6
    (Dependabot-Bumps, PRs #1 und #2 gemergt).

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

Choose a tag to compare

@github-actions github-actions released this 21 Jul 16:26

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 und Bearer-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.json wurde vervollständigt (build-release, watch, clean
    und release (tag + push)) und an Windows-only angepasst — bewusst ohne
    Linux-/AppImage-Task.
  • Release-Skripte scripts/release.ps1 und scripts/release.sh setzen 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

Choose a tag to compare

@github-actions github-actions released this 21 Jul 16:08

Release v1.5.2

v1.5.1

Choose a tag to compare

@github-actions github-actions released this 16 Jul 07:06

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-Archiv
  • Checkmk-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