2025-11-11 10:36:31 +01:00
2025-11-11 10:36:31 +01:00
2025-11-11 10:36:31 +01:00
2025-11-11 10:36:31 +01:00
2025-11-11 10:36:31 +01:00
2025-11-11 10:36:31 +01:00
2025-11-11 10:36:31 +01:00
2025-11-11 10:36:31 +01:00
2025-11-11 10:36:31 +01:00
2025-11-11 10:36:31 +01:00
2025-11-11 10:36:31 +01:00
2025-11-11 10:36:31 +01:00

Docker Stack Stats UI (v5)

Ein leichtgewichtiges Dashboard für die Übersicht über Docker-Stacks und deren Container-Ressourcen (CPU, RAM, Container). Die Node.js-Serverkomponente wertet Docker-Statistiken aus, stellt sie über eine kleine REST-API bereit und liefert eine statische Weboberfläche aus public/.

Highlights

  • Gruppierte Ansicht nach Stack/Compose-Projekt mit persistierbarem Toggle für Stapel-/Flat-Ansicht
  • Sortierbare Spaltenköpfe und kompakteres UI für doppelt so viele Zeilen auf einen Blick
  • System- und Container-RAM-Anzeige inklusive prozentualer Nutzung des Hosts
  • Flat-View mit Spalten-filtern, Stack-Spalte und adaptiver Detailsicht

Projektstruktur

  • server.js: Express-Server, Basis-Auth, Docker-Stats-Erfassung und API-Endpunkte
  • public/: Gebündelte UI für das Dashboard
  • web/: Alternative Version der Oberfläche (für Referenz oder eigenes Frontend)
  • docker-compose.yml & Dockerfile: Containerisierung
  • extension/: eigenständige Browser-Erweiterung (nicht Teil der Runtime, liegt hier als Referenz)

Voraussetzungen

  • Docker Engine (Abfrage über Socket /var/run/docker.sock)
  • Node.js 18+ (für lokale Entwicklung)

Lokale Entwicklung

  1. Repository klonen und Abhängigkeiten installieren:
    npm install
    
  2. Server starten (liefert UI unter http://localhost:8080):
    npm start
    
  3. Alternativ mit einem Live-Proxy bzw. lokalen Backend an server.js binden und public/ separat hosten.

Docker

  1. Image bauen:
    docker build -t docker-stack-stats-ui .
    
  2. Beispiel-Container starten (Docker-Socket mounten, optional Basic Auth):
    docker run -d --name stack-stats -p 8080:8080 \
      -v /var/run/docker.sock:/var/run/docker.sock:ro \
      -e BASIC_AUTH_USER=me -e BASIC_AUTH_PASS=secret \
      --restart unless-stopped \
      docker-stack-stats-ui
    
  3. Oder mit Docker Compose:
    docker compose up -d
    

Konfiguration (Umgebungsvariablen)

  • PORT (Default: 8080)
  • BASIC_AUTH_USER + BASIC_AUTH_PASS: Aktivieren Basic Auth; die Werte werden für den Zugriff auf das Dashboard geprüft.
  • MEM_SUBTRACT_CACHE (true/false, Default true): Zieht Caches aus dem Statistik-Usage, um die sichtbare RAM-Nutzung auf aktiv verwendete Speicher zu begrenzen.

API-Endpunkte

  • GET /api/summary: Gesamtdaten pro Stack inklusive CPU/MEM, Host-Systeminformationen.
  • GET /api/group/:name: Detailinformationen zu einem Stack (Container-Liste, Summen).
  • GET /api/containers: Liste aller Container (Name, Stack, CPU %, RAM MiB, Host-%).
  • GET /health: Prüft Docker-Ping und Anzahl der Container; nützlich für Monitoring.

Alle Antworten sind JSON; Fehler mit HTTP 500 liefern ein error-Feld.

Sicherheit & Betrieb

  • Der Zugriff erfolgt über die statischen Dateien in public/, daher sollte der Container nur intern erreichbar gemacht oder Basic Auth aktiviert werden.
  • Der Server benötigt nur Leserechte auf /var/run/docker.sock, daher ist das Mounten im :ro-Modus empfehlenswert.
  • Neustart-policy (unless-stopped) sichert den Betrieb über Host-Reboots.
Description
ocker-Stack-Insights mit Echtzeit-CPU/RAM-Messungen und Filter-UI über ein leichtgewichtiges Node/ Express-Frontend.
Readme 66 KiB
Languages
JavaScript 83.7%
CSS 9.9%
HTML 6%
Dockerfile 0.4%