3.1 KiB
3.1 KiB
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-Endpunktepublic/: Gebündelte UI für das Dashboardweb/: Alternative Version der Oberfläche (für Referenz oder eigenes Frontend)docker-compose.yml&Dockerfile: Containerisierungextension/: 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
- Repository klonen und Abhängigkeiten installieren:
npm install - Server starten (liefert UI unter http://localhost:8080):
npm start - Alternativ mit einem Live-Proxy bzw. lokalen Backend an
server.jsbinden undpublic/separat hosten.
Docker
- Image bauen:
docker build -t docker-stack-stats-ui . - 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 - 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, Defaulttrue): 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.