2026-04-15 OpenClaw Umgebungsvariablen & Geheimnisse auf headless gemietetem Cloud-Mac (launchd)
Das OpenClaw-Gateway liest Schichten: Prozessumgebung, Projekt-.env, ~/.openclaw/.env, JSON unter ~/.openclaw/openclaw.json. Teams, die nur interaktive Shells testeten, unterschätzen die Reihenfolge. Auf gemietetem Apple Silicon, erreichbar nur per SSH, fehlen Variablen als kryptische LLM-Auth-Fehler, nicht als TUI. Dieses Playbook vom 2026-04-15 zeigt reale Reihenfolge, launchd-Lücken, eine Speichermatrix, sechs Rotations-Schritte und verlinkt Health Probes, nginx-Ingress und strukturiertes Logging, damit Gateways in HK/JP/KR/SG/US reproduzierbar bleiben.
launchctl injiziert Variablen oft bevor der CLI lokale Dateien parst; doppelte Schlüssel erzeugen „tmux ja, reboot nein“. Bündeln Sie Geheimnisse an einem auditierbaren Ort, nutzen Sie ${VAR} in JSON, und loggen Sie die effektive Env-Größe (< 32 KB typisch), um versehentliche printenv-Importe in CI zu erkennen.
Wie OpenClaw die Umgebung auflöst (2026-Modell)
Als LaunchAgent startet der Baum bei launchd. Nur in .zprofile gesetzte Variablen erscheinen nicht ohne kontrollierten Shell-Import. Nicht-sensitive Schalter dürfen ins plist, langlebige Token nicht in geteilte, breit lesbare plists. Ein Wrapper, der kurzlebige Werte aus dem Schlüsselbund exportiert, ist sicherer.
Terminal-echo beweist nicht Sichtbarkeit für das Gateway. Mandantenfähige Hosts setzen Proxy/CA-Baseline-Variablen; OpenClaw-.env gewinnt nicht automatisch. Maskierte Key-Listen im CI-Wrapper plus Diff-Audit nach plist-Änderungen reduzieren Übergabefehler. Ein einseitiges „Region ↔ Credential“-Sheet hilft zusätzlich.
Lücken auf headless-Miet-Macs
- Kein Loginfenster —
.zprofileallein speist LaunchAgents nicht. - GUI vs. SSH UID —
openclaw gatewayunter falschem Benutzer → leere Konfiguration. - Geheimnis-Sprawl —
.envnach/tmpkopieren erzeugt world-readable Dateien;chmod 600und löschen. - Multi-Region-Drift — US-Ost-Schlüssel auf JP-Gateway kann Residency brechen.
Speichermatrix (ein Primär)
| Mechanismus | Stärke | Risiko |
|---|---|---|
~/.openclaw/.env (0600) |
Schnelle Iteration, einfache Backups | Sichtbar für root und Full-Disk-Images |
launchd EnvironmentVariables |
Explizit für Daemons, rebootfest | Plist in ~/Library/LaunchAgents nicht world-writable |
| Schlüsselbund + Wrapper | Beste Audit-Story | Headless-Unlock-Zeitfenster knifflig |
launchd-Muster für gemietete Builder
Plist-UID = SSH-CI-Benutzer. Geheimnisse indirekt via Schlüsselbund oder OPENCLAW_STATE_DIR=/Volumes/secure/openclaw-$REGION, damit Tokens nicht mit Xcode-Caches im Home kollidieren. VNC nur für Policy-Break-Glass; Standard bleibt SSH + openclaw doctor-Logs.
#!/bin/bash
set -euo pipefail
export OPENCLAW_STATE_DIR="/Volumes/secure/openclaw-sg"
exec /usr/local/bin/openclaw gateway run
Sechsstufige Rotation ohne Webhook-Drop
- Ingress einfrieren — nginx externe Webhooks ≤ 90 s (Reverse-Proxy-Artikel).
- Neuer Schlüssel — Konsole zuerst, Alt 15 Min parallel gültig.
- Atomarer Swap —
.env.new, fsync,mv,chmod 600. - launchctl kickstart -k gui/$UID/pcx.openclaw.gateway — syslog exit 0.
- Prüfen —
openclaw doctor+ synthetisch 127.0.0.1:18789 (Probes). - nginx wieder an — 200 innerhalb 120 s; Rollback wenn Fehlerquote > 5 %.
.env in App-Repos committen — auch private werden oft gespiegelt.
Multi-Tenant-Macs: OPENCLAW_STATE_DIR-Grenzen
Zwei Squads auf einem Mac mini M4: trennen Sie /Volumes/secure/openclaw-teamA und ...-teamB, nutzen Sie getrennte launchd-Labels und Unix-Gruppen für ACLs. Regionscode im Pfad verhindert grenzüberschreitende Inferenz-Fehlrouten. Wenn nächtliche Xcode-Archive laufen, halten Sie Zustandsverzeichnisse außerhalb von CI-Cleanup-Pfaden und schließen Sie /Volumes/secure vom Janitor aus.
FAQ: OpenClaw-Geheimnisse auf Cloud-Macs
| Frage | Antwort | Link |
|---|---|---|
| Shell-Env-Import in Produktion? | Deaktivieren, wenn hunderte irrelevante Variablen gezogen werden; plist explizit. | Hilfe |
| Wer hat den Schlüssel geändert? | Plist-Checksums in git, syslog in SIEM. | Logging |
| Gleiche .env über Regionen? | Technisch ja, betrieblich nein — segmentieren. | Preise |
Brücke zu Observability & Kapazität
Geheimnisse sind nur halb die Geschichte. Nach stabilen Umgebungen: Probes und Logs verdrahten. Lesen Sie Health Probes erneut, skalieren Sie über Preise, wenn die Warteschlange > 40 Nachrichten länger als 10 Minuten bleibt. Der Blog-Index führt weiter.
Fazit: Behandeln Sie OpenClaw-Umgebung wie produktive Kubernetes-Secrets — explizit, least privilege, geübte Rotation — dann verhalten sich Apple Silicon-Gateways in Tokio und Virginia gleich.
OpenClaw auf dedizierten M4-Gateways ausrollen
SSH-first · HK · JP · KR · SG · US