Nachdem Claude Code auf meiner isolierten claude-linux-VM lief, stellte sich die nächste Frage: Welche Docker-Container ergänzen das Setup sinnvoll?
Ausgangslage
Mit einer laufenden Claude-Code-Umgebung im Terminal wollte ich wissen, welche Docker-Container sich gut dazu ergänzen – kleine, nützliche Helferlein für den Terminal-Alltag. Auf Vorschlag kamen fünf Kandidaten auf den Tisch:
- IT-Tools (
corentinth/it-tools) – eine Sammlung von Entwickler-Alltagstools (Base64, JSON-Formatter, Hash-Generatoren, Cron-Parser etc.) in einer Weboberfläche - ntfy – simple Push-Benachrichtigungen
- Vaultwarden – selbstgehosteter Passwortmanager
- Uptime Kuma – Status-/Uptime-Monitoring
- Paperless-ngx – Dokumentenverwaltung mit OCR
Die Wahl fiel auf IT-Tools als ersten Kandidaten – ein guter Allrounder, der sofort einen Mehrwert liefert.
Der Denkfehler: „Einfach auf docker01 deployen“
Der erste Reflex war, IT-Tools wie gewohnt als Compose-Stack auf docker01 zu deployen, mit Anbindung an NPM und eigenem Subdomain-Eintrag – genau das Schema, nach dem im Homelab sonst alles läuft.
Nur: Das griff hier zu kurz. Meine claude-linux-Umgebung, in der Claude Code läuft, ist bewusst isoliert und hat keinen Zugriff auf das übrige Homelab. Ein Installations-Prompt, der auf docker01 und NPM zielt, wäre für diese Maschine schlicht falsch gewesen.
Die Lösung: den Prompt für eine rein lokale Bereitstellung umschreiben. Statt eines NPM-Backends einfach ein direktes Port-Mapping auf localhost:
yaml
services:
it-tools:
image: corentinth/it-tools:latest
container_name: it-tools
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080"
Damit läuft IT-Tools sauber lokal auf claude-linux, ohne die Netzwerk-Isolation der VM aufzuweichen.
Homepage-Dashboard-Eintrag
Für mein Homepage-Dashboard sollte IT-Tools natürlich auch auftauchen. Der YAML-Eintrag dafür ist unkompliziert:
yaml
- Entwicklung:
- IT-Tools:
icon: it-tools.png
href: http://localhost:8080
description: Sammlung von Entwickler-Tools
Wichtiger Haken dabei: localhost löst hier nur dann korrekt auf, wenn Homepage auf derselben Maschine läuft wie IT-Tools. Läuft das Dashboard woanders, braucht es stattdessen die tatsächliche IP oder einen erreichbaren Hostnamen – sonst zeigt der Link ins Leere.
Kurzer Exkurs: Kann Claude direkt in BookStack schreiben?
Da ich meine Homelab-Doku ohnehin in BookStack pflege, kam die naheliegende Frage auf: Könnte Claude Code autonom Einträge in eine lokale BookStack-Instanz auf claude-linux schreiben, statt dass ich Markdown-Texte manuell kopiere?
Kurz geprüft, kurz beantwortet: Nein, jedenfalls nicht ohne Weiteres. Zwei Gründe kommen zusammen:
- Die Chat-Umgebung selbst hat keinen direkten Netzwerkzugriff auf lokale Docker-Container.
claude-linuxist ja gerade bewusst isoliert – auch von dort aus gäbe es keinen sinnvollen Pfad zurück.
Eine Suche im MCP-Registry nach einem bestehenden BookStack-Connector blieb ergebnislos – es gibt (noch) keinen fertigen Connector dafür. Für den Moment bleibt der manuelle Copy-Paste-Workflow also die pragmatischste Lösung. Als Ausblick fürs Grübeln: Ein eigener kleiner BookStack-MCP-Server auf Basis der BookStack-REST-API wäre technisch machbar und könnte diesen Schritt irgendwann automatisieren.
Bonus: Festplatte im Terminal schlafen legen
Am Ende der Session noch eine praktische Nebenfrage, die nichts mit Docker zu tun hatte, aber gut ins Terminal-Werkzeugkasten passt: Wie legt man eine Festplatte unter Linux gezielt in den Standby?
Drei Werkzeuge dafür:
hdparm -y /dev/sdX– sofortiger Standbyhdparm -S <wert> /dev/sdX– zeitgesteuerter Spin-Down nach Inaktivitäthdparm -Y /dev/sdX– Deep Sleepudisksctl power-off -b /dev/sdX– sicheres Abschalten für USB-Laufwerke- Alternativ das sysfs-Delete-Verfahren (
echo 1 > /sys/block/sdX/device/delete) für Hot-Swap-Entfernung ohne physisches Aus- und Wiedereinstecken
Für welchen konkreten Use-Case das gedacht war, ist noch offen – wird sich in einem künftigen Beitrag zeigen.
Lessons Learned
- „Isoliert“ heisst wirklich isoliert. Ein Compose-Stack, der für docker01 gedacht ist, passt nicht automatisch auf eine bewusst abgeschottete VM – Netzwerk-Anbindung immer zuerst klären, bevor der Prompt geschrieben wird.
127.0.0.1-Port-Mapping ist der einfachste Weg, einen Container ausschliesslich lokal verfügbar zu machen, ohne die Isolation zu durchbrechen.localhostin Dashboard-Konfigurationen ist kontextabhängig – funktioniert nur, wenn Dashboard und Zielservice auf derselben Maschine laufen.- Nicht jede Integration existiert schon als MCP-Connector. Für Nischenwerkzeuge wie BookStack lohnt sich vorher ein Blick ins Registry, bevor man Zeit in einen Workflow steckt, der sich später doch automatisieren liesse.
- hdparm bleibt das richtige Werkzeug, wenn eine Festplatte gezielt in den Ruhezustand soll – ob dauerhaft, zeitgesteuert oder komplett abgeschaltet.
Fazit
IT-Tools ist jetzt lokal auf claude-linux unterwegs, sauber isoliert und im Homepage-Dashboard verlinkt. Die BookStack-Automatisierung bleibt vorerst Zukunftsmusik – aber die Idee eines eigenen MCP-Servers steht im Hinterkopf. Und auch wenn nicht jede Session am Ende zum ursprünglichen Thema zurückführt: Ein bisschen hdparm-Wissen für den nächsten Festplatten-Fall schadet nie.