Nützliche Docker-Container für Claude Code: IT-Tools & Co.

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:

  1. Die Chat-Umgebung selbst hat keinen direkten Netzwerkzugriff auf lokale Docker-Container.
  2. claude-linux ist 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 Standby
  • hdparm -S <wert> /dev/sdX – zeitgesteuerter Spin-Down nach Inaktivität
  • hdparm -Y /dev/sdX – Deep Sleep
  • udisksctl 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

  1. „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.
  2. 127.0.0.1-Port-Mapping ist der einfachste Weg, einen Container ausschliesslich lokal verfügbar zu machen, ohne die Isolation zu durchbrechen.
  3. localhost in Dashboard-Konfigurationen ist kontextabhängig – funktioniert nur, wenn Dashboard und Zielservice auf derselben Maschine laufen.
  4. 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.
  5. 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.

Schreibe einen Kommentar