Teams parken OpenClaw zunehmend auf einem dedizierten Remote-Mac, damit Webhooks, MCP-Kindprozesse und langlebige Warteschlangen nicht auf Entwickler-Laptops leben. Der langweilige Ausfallmodus ist selten „schlechtes YAML“ — es sind PATH-Drift, Doppel-NAT und ein Gateway, das nur antwortet, wenn jemand per VNC angemeldet ist. Dasselbe System kann selbst gehostete Runner beherbergen, während das Gateway an 127.0.0.1 bleibt; so bleibt die Angriffsfläche kleiner als bei einem öffentlich erreichbaren Cloud-VM-Listener. Dieser Leitfaden beschreibt einen wiederholbaren Weg: native Installation mit Node 22, ein onboard-Lauf, der Verzeichnisse anlegt, bevor doctor meckert, SSH-Tunnel-Muster, die den Listener ohne öffentliches Binden erreichbar machen, und eine kompakte FAQ zu den doctor-Tickets, die Sie wirklich schreiben. Für Transport-MCP, sobald der Tunnel steht, ergänzen Sie mit
OpenClaw MCP: stdio vs. Streamable HTTP, Tool-Timeouts und ENOENT-Triage;
für Runner-Pools und Cache-Festplatten mit
mehrere selbst gehostete Mac-Runner, GitHub Actions Cache und Festplatten-FAQ.
1. Host-Baseline: Apple Silicon, Xcode CLT und ein für plist taugliches Node 22
Installieren Sie die Command Line Tools oder vollständiges Xcode, damit git, security und Hilfen zur Notarisierung vorhanden sind. Pinnen Sie Node 22 mit einem absoluten Interpreterpfad (/opt/homebrew/opt/node@22/bin/node oder Ihr nvm-Präfix) und prüfen Sie, dass node -v zu dem passt, was doctor ausgibt — Diskrepanzen zwischen interaktiver Shell und launchd-Job erklären einen Großteil der „bei mir geht es“-Regressionen. Wenn Sie Node mitten im Experiment anheben, plist rollen, Agent neu laden und erst dann doctor erneut führen; sonst jagen Sie Schein-Berechtigungsfehlern hinterher, die in Wahrheit argv-Drift sind. Legen Sie OpenClaw-State auf lokales APFS außerhalb von Desktop-/Dokumente-Spiegeln; WAL-lastige Stores und iCloud sind eine zuverlässige Quelle für hängende Locks.
ProgramArguments für den Daemon kopiert werden, der um 03:00 Uhr wirklich läuft.2. Native Installationsreihenfolge: onboard vor doctor
onboard legt erwartete Ordner an, setzt Beispielkonfigurationen und richtet Plugin-Einträge am Dateisystem aus, das Ihr Build erwartet. doctor zuerst zu führen erzeugt lautes Rauschen: fehlende Sockets, nicht lesbare State-Roots und „ENOENT“ für Binaries, die noch gar nicht verlinkt sind. Behandeln Sie onboard als Provisionierung und doctor als Verifikation — erfassen Sie beide Ausgaben im selben Ticket, damit der Support sie diffen kann. Wenn Sie ClawHub-Skills importieren, kürzen Sie plugins.entries auf die kleinste sinnvolle Oberfläche, analog zu den Minimalrechte-Artikeln im OpenClaw-Korpus.
3. SSH-Tunnel für Gateway-Erreichbarkeit (häufig Port 18789 auf Loopback)
Viele Teams wollen das Gateway nur an 127.0.0.1 auf dem Mac und von Bastion oder Laptop aus erreichbar. Nutzen Sie LocalForward auf dem Client, wenn „mein Laptop spricht mit remote localhost:18789“. Nutzen Sie RemoteForward, wenn ein zentraler Sammler ohne eingehende Firewall-Regeln am RZ-Rand zurückwählen muss. Kombinieren Sie das mit expliziter Loopback-Bindung des Gateways (je nach Version benannt), damit MCP nie versehentlich an 0.0.0.0 geht. Stellen Sie ServerAliveInterval und TCPKeepAlive so ein, dass CI-Jobs keine halb offenen Tunnel erben.
ssh -N -L 18789:127.0.0.1:18789 user@remote-mac mappt Ihren lokalen Port 18789 auf das Remote-Gateway. Tauschen Sie -R, wenn die Gegenseite den Dial-Pfad durch dieselbe SSH-Sitzung beginnen muss; dokumentieren Sie, auf welchem Host curl-Healthchecks laufen, damit der Bereitschaftsdienst nicht die falsche Schnittstelle testet.4. onboard-Helfer und Gateway mit launchd dauerhaft machen
Verwenden Sie einen Benutzer-LaunchAgent für Gateway-ähnliche Last, setzen Sie WorkingDirectory auf die Repo-Wurzel, exportieren Sie ein minimales PATH und leiten Sie stdout/stderr nach ~/Library/Logs. Nach Änderungen launchctl bootstrap gui/$UID ausführen. Wenn Sie ein einmaliges onboard in einer plist kapseln, RunAtLoad nur einmal setzen und danach deaktivieren, um absichtliche Drift nicht zu überschreiben; die meisten Teams führen onboard bei Upgrades manuell aus und lassen nur das Gateway überwachen.
Wenn mehrere Operatoren einen Remote-Mac teilen, bevorzugen Sie pro Benutzer Agents statt eines einzelnen root-Dienstes — root-Jobs verbergen TCC-Hinweise, die sonst früh sichtbar würden.
5. doctor-FAQ: Fehler, die den Tunnel überleben
ENOENT bei MCP-Kindern: cwd, argv[0] und PATH in der plist korrigieren — nicht den Tunnel. Port bereits belegt: nur ein Gateway pro Port; verwaiste LaunchAgents mit launchctl print aufräumen. TLS- oder Webhook-Mismatch: prüfen, ob die öffentliche URL, die GitHub sieht, zum weitergeleiteten Host-Header passt; lokal mit curl -v durch den Tunnel testen, bevor OpenClaw die Schuld trägt. Timeouts bei stürmischen Tools: MCP-Timeouts erst anheben, wenn der Transport validiert ist, sonst jagen Sie Geister, während Xcode die CPU spitzt.
Lokal „healthy“, Webhooks scheitern: prüfen, ob Traffic den weitergeleiteten Port trifft, nicht eine veraltete LAN-IP. Speicherdruck: Logs und DerivedData aufräumen, bevor IO-Stalls als OpenClaw-Bugs gelesen werden.
6. Preflight-Checkliste: „Remote-Mac ist Produktion“
- Node-22-Pfad in der plist stimmt mit
doctorüberein; Reboot-Test ohne interaktive Anmeldung. - State-Verzeichnis lokal, explizit gesichert, nicht cloud-synchronisiert.
- SSH-Tunnel mappt exakt den Loopback-Port des Gateways; Healthchecks per
curldurch den Tunnel. - Schwere Xcode- oder Simulator-Spitzen haben einen größeren Worker oder Zeitfenster, damit das Gateway reaktionsfähig bleibt.
Warum Mac-mini-Klasse dieses Muster noch trägt
SSH-weitergeleitete Gateways brauchen stabile NICs, vorhersehbare Thermik und ruhige Festplatten mehr als Spitzen-Takte. Ein Mac mini auf Apple Silicon hält im Leerlauf im niedrigen einstelligen Watt-Bereich und bietet dieselbe Unix-Oberfläche, der Ihre CI-Flotte bereits vertraut. macOS bündelt Gatekeeper, SIP und FileVault neben SSH- und Code-Signing-Werkzeugen für unbeaufsichtigte Jobs — oft einfacher als ein generischer PC für dieselbe Rolle zu härten.
Wenn Sie dieses Profil ohne weiteren Schreibtisch-Rechner wollen, liefert ein dedizierter Mac mini M4 nahe Ihren Nutzern Loopback-only-Listener, robuste Tunnel und Luft für Xcode-Spitzen — starten Sie auf der Macstripe-Startseite, um Region, Bandbreite und RAM an Ihre OpenClaw-Last anzupassen.