📖 Offizielles Docklite Wiki

🚧
Pre-Release Status: Docklite befindet sich in aktiver Entwicklung und ist ein Pre-Release (WIP). Alle Versionen werden kontinuierlich weiterentwickelt. / Docklite is under active development and is a Pre-Release (WIP).

Willkommen in der Dokumentation für Docklite – die radikal schlanke, sichere Alternative zu Portainer in Go und Astro.

1. Einführung

Docklite wurde entwickelt, um den immensen Ressourcenverbrauch von Portainer auf Servern, Raspberry Pis und Homelabs zu eliminieren. Während Portainer 150 bis über 300 MB Arbeitsspeicher beansprucht, benötigt Docklite lediglich 10 bis 15 MB RAM und liefert dennoch alle essentiellen Funktionen:

2. Architektur & Docker-Socket

Docklite benötigt keine Container-in-Container-Konstrukte oder externe Datenbanken. Die Go-Binary kommuniziert direkt über den lokalen Docker-Socket:

Das gesamte Astro-Frontend wird beim Build in statisches HTML/CSS/JS übersetzt und via embed.FS vollständig in die ausführbare Go-Datei eingebunden.

3. Installation & Setup

Docklite wird als eigenständige, statische Binary ohne externe Laufzeitabhängigkeiten bereitgestellt.

Empfohlen: Go Install (Automatisch Latest)

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

Vorkompilierte Binaries (Latest Release)

Alle vorkompilierten Archive für Linux (AMD64) und Windows (AMD64) stehen im GitHub Repository unter Releases (Latest) bereit.

Linux Standalone

# Auspacken und starten:
tar -xzf docklite-*-linux-amd64.tar.gz
./docklite --port 8080

Windows Standalone

Lade docklite-*-windows-amd64.zip herunter, entpacke das Archiv und führe docklite.exe in der PowerShell oder per Doppelklick aus.

4. REST API Referenz

Alle API-Routen sind versioniert unter dem Präfix /api/v1/:

Methode Endpunkt Beschreibung
GET /api/v1/ping Prüft Docker-Socket Erreichbarkeit und Status
GET /api/v1/system Liefert NCPU, Gesamtspeicher und Engine-Version
GET /api/v1/containers?all=true&stats=true Liefert alle Container mit berechneten Stats
GET /api/v1/containers/{id}/stats Gibt CPU %, Mem MB & %, Net und Disk I/O zurück
GET /api/v1/containers/{id}/top Gibt laufende Linux-Prozesse (PID, User, Time, CMD) des Containers zurück
GET /api/v1/containers/{id}/logs?tail=150 Demuxte Stdout/Stderr Logs mit Timestamp-Parsing
POST /api/v1/containers/{id}/{action} Aktionen: start, stop, restart, pause, unpause
POST /api/v1/containers/{id}/update Aktualisiert Container-Konfiguration (z. B. RestartPolicy)
DELETE /api/v1/containers/{id}?force=true Entfernt einen Container (optional mit Force)
POST /api/v1/images/pull Zieht ein Image aus der Registry (inkl. Live-Progress-Stream)
DELETE /api/v1/images/{id}?force=true Löscht ein lokales Docker Image
GET /api/v1/volumes Listet alle lokalen Docker Volumes auf
GET /api/v1/networks Listet alle Docker Netzwerke inklusive Subnetzen & Gateways auf
GET /api/v1/live Server-Sent Events (SSE) Stream aller Container-Metriken in Echtzeit

5. Systemd Service Setup (Linux)

Erstelle die Datei /etc/systemd/system/docklite.service:

[Unit]
Description=Docklite - Lightweight Docker Monitor
After=docker.service
Requires=docker.service

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/docklite --port 8080
Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target

Aktivieren mit:

sudo systemctl daemon-reload
sudo systemctl enable --now docklite

6. Sicherheitsarchitektur

Docklite implementiert strikte Sicherheitsrichtlinien gemäß Jeremy Benz' Coding Standards: