[ e-networld.de ]

OpenHab Log Viewer

Live-Ansicht für die openHAB-Protokolle im Browser: Filter nach Quelle, Level und Text, Streaming per Server-Sent Events, jede Logzeile bleibt als eigene Zeile sichtbar.

MITNode.js 22 oder neuer · Linux · systemdv2.5.4 · 20.10.2026
OpenHab Log Viewer mit farblich getrennten Einträgen aus events.log und openhab.log

Überblick

Der OpenHab Log Viewer macht die beiden wichtigsten openHAB-Protokolle im Browser lesbar, ohne sich per SSH auf den Rechner zu verbinden. Er verfolgt events.log und openhab.log gleichzeitig, lädt beim Öffnen die letzten Zeilen und hängt danach neue Zeilen live an.

Neue Zeilen erreichen den Browser über Server-Sent Events, nicht über wiederholtes Abfragen. Client und Server arbeiten mit begrenzten Ringpuffern, damit die Ansicht auch bei hohem Protokollaufkommen bedienbar bleibt. Der Server wird zu einer einzelnen Datei gebündelt, auf dem Zielrechner ist deshalb nur Node.js nötig, keine Paketinstallation.

Beim Darstellen bleibt jede physische Zeile der Datei eine eigene Zeile in der Oberfläche. Fortsetzungszeilen, etwa aus Stacktraces, stehen in eigenen Zeilen, gehören aber sichtbar zum Eintrag mit dem Zeitstempel. Der Zustand jeder überwachten Datei wird angezeigt, sodass eine fehlende Datei oder ein Rechteproblem sofort erkennbar ist statt als leere Ansicht zu erscheinen.

Die Anwendung bringt keine eigene Anmeldung mit und verlässt sich auf die Same-Origin-Politik des Browsers. Weil DNS-Rebinding diese umgehen kann, lässt sich über ALLOWED_HOSTS festlegen, unter welchen Hostnamen der Viewer erreichbar sein darf; alles andere wird mit 403 abgewiesen. Für echte Zugangskontrolle gehört ein authentifizierender Reverse Proxy davor.

Funktionen

events.log und openhab.log gleichzeitig verfolgen
Neue Zeilen live über Server-Sent Events, ohne Neuladen
Zustand je Datei sichtbar: watching, missing, permission-denied, rotated
Filter nach Quelle, Level und Freitext, Suche ohne Groß- und Kleinschreibung
Pause, Puffer leeren, Auto-Scroll und Reihenfolge umstellen
Einstellungen bleiben im Browser gespeichert und überleben ein Neuladen
Fortsetzungszeilen bleiben unter ihrem Eintrag gruppiert
Host-Allowlist gegen DNS-Rebinding, Rate-Limit je IP

Installation

npm install
npm run build
npm run start

Danach läuft die Anwendung auf http://localhost:9001/. Für den Dauerbetrieb liegt eine systemd-Unit im Repository; auf dem Zielrechner genügt Node.js, da der Server gebündelt ist.

Releases

v2.5.4 · 20.10.2026
  • build(deps): bump express from 5.2.1 to 5.3.0
  • [Server] Add configurable timezone for log timestamps

GitHub ↗

v2.5.3 · 14.10.2026
  • build(deps): bump ip-address from 10.4.0 to 10.7.2
  • build(deps): bump SonarSource/sonarqube-scan-action from 8.2.2 to 8.3.0 in the actions group
  • build(deps-dev): bump @types/node from 26.6.2 to 26.6.3 in the types group
  • build: update version to 2.5.3 in package.json and package-lock.json
  • build(deps): bump express-rate-limit from 8.7.0 to 8.7.1
  • build(deps-dev): bump jsdom from 30.1.1 to 30.1.2
  • build(deps): bump actions/setup-node from 7.0.0 to 7.1.0 in the actions group
  • build(deps-dev): bump @types/node from 26.6.3 to 26.6.5 in the types group across 1 directory

GitHub ↗

v2.5.2 · 28.09.2026
  • build(deps-dev): bump @types/node from 26.4.1 to 26.5.1 in the types group
  • Rebuild website after release
  • build(deps): bump compression from 1.8.1 to 1.8.2
  • build(deps-dev): bump @types/node from 26.5.1 to 26.6.1 in the types group
  • build(deps): bump SonarSource/sonarqube-scan-action from 8.2.1 to 8.2.2 in the actions group
  • build(deps-dev): bump tsx from 4.23.13 to 4.23.15
  • build(deps-dev): bump jsdom from 30.0.1 to 30.1.1
  • build(deps-dev): bump @types/node from 26.6.1 to 26.6.2 in the types group across 1 directory

GitHub ↗

v2.5.1 · 06.09.2026

Abhängigkeiten aktualisiert

GitHub ↗

v2.5.0 · 16.08.2026
  • build(deps): bump body-parser from 2.2.2 to 2.3.0
  • build(deps): bump actions/checkout from 7.0.0 to 7.0.1 in the actions group
  • perf(sseHub): batch live log lines into chunked SSE writes
  • build(deps): bump express-rate-limit from 8.6.0 to 8.6.1
  • build(deps-dev): bump jsdom from 29.1.1 to 30.0.1
  • build(deps-dev): bump @types/node from 26.1.1 to 26.1.2 in the types group across 1 directory
  • build(deps): bump ip-address from 10.2.0 to 10.4.0
  • build(deps): bump express-rate-limit from 8.6.1 to 8.6.2
  • build(deps-dev): bump tsx from 4.23.1 to 4.23.8
  • build(deps-dev): bump tsx from 4.23.8 to 4.23.12
  • build(deps-dev): bump esbuild from 0.28.1 to 0.28.2
  • build(deps-dev): bump the types group across 1 directory with 2 updates

GitHub ↗

Alle Releases auf GitHub ↗