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.
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 viaX-Docklite-TokenHeader.