Docklite Handbuch & Referenz

Docklite ist eine radikal leichtgewichtige Portainer-Alternative in Go und Astro. Eine einzelne native Binärdatei für Linux und Windows, direkte Kommunikation mit dem Docker-Socket (docker.sock), ca. 10–15 MB RAM-Verbrauch und null Framework-Ballast.

⚡
Stand-Alone Binary: Das gesamte Web-Cockpit wird per go:embed direkt in das Go-Kompilat eingebettet. Kein Node.js, kein Nginx und keine externe Datenbank erforderlich.

⚖️ 2. Warum Docklite? Vergleich mit Portainer

Kriterium Portainer CE Docklite
RAM-Verbrauch 150 – 350 MB ~10 – 15 MB
Deployment Schwerer Docker-Container 1 native Binärdatei (oder Container)
Datenbank BoltDB / persistente Volumes Stateless (liest live vom Socket)
Kaltstart 5 – 15 Sekunden < 50 Millisekunden
Web-Terminal Ja (über Agenten-Proxy) Integriertes WebSocket PTY Terminal

✨ 3. Kernfunktionen & Architektur

⚡ Direkter Docker Socket

Kommuniziert nativ über HTTP-over-Unix-Socket (/var/run/docker.sock) unter Linux bzw. Named Pipe (//./pipe/docker_engine) unter Windows.

💻 In-Browser Terminal

Interaktive Shell via WebSockets direkt in jeden laufenden Container (/bin/sh, /bin/bash) mit PTY-Fenstergrößen-Synchronisation.

📦 Docker Compose Stacks

Automatische Gruppierung nach Compose-Projekten mit 1-Klick-Aktionen zum Neustarten, Stoppen und Protokoll-Inspektion.

🧹 Volume & Network Pruning

Schnelles Bereinigen ungenutzter Volumes und verwaister Netzwerke per Klick oder REST-API.

🚀 4. Installation & CLI-Optionen

Schnellstart mit Go

go install github.com/benzjeremy/docklite@latest
docklite --port 8080

CLI-Optionen

Usage of docklite:
  -docker-host string
        Docker socket path or URI (default: unix:///var/run/docker.sock)
  -host string
        Host address to bind to (default: "127.0.0.1")
  -open
        Automatically open the default browser upon launch
  -port int
        HTTP port for dashboard and REST API (default: 8080)
  -token string
        Optional security token for API authentication (X-Docklite-Token)
  -version
        Show version and exit

📡 5. REST API & Server-Sent Events

Method Path Beschreibung
GET /api/v1/ping Health-Check & Docker-Erreichbarkeit
GET /api/v1/containers Containerliste (?all=true, ?stats=true)
GET /api/v1/containers/{id}/stats Live CPU%, RAM, Netzwerk Rx/Tx
GET /api/v1/containers/{id}/logs Demuxed Logs (?tail=150)
POST /api/v1/containers/{id}/restart Container neu starten
GET /api/v1/live Server-Sent Events (SSE) Stream aller Container

🛡️ 6. Sicherheitsarchitektur

Docklite setzt auf echte Sicherheit nach Jeremy Benz Standards:

  • Anti-DNS-Rebinding: Strikte Validierung des Host-Headers. Unbefugte Domain-Anfragen werden sofort verworfen.
  • Anti-CSRF & Anti-CSWSH: Origin- und Sec-WebSocket-Origin-Prüfung für alle schreibenden Aktionen und WebSocket-Verbindungen.
  • Sicherheits-Header: X-Content-Type-Options: nosniff, X-Frame-Options: DENY, strikte CSP.
  • Token-Authentifizierung: Optionaler --token-Schutz via X-Docklite-Token Header.