OpenClaw Umgebungsvariablen mit launchd auf Cloud Mac in 2026: Vorrang, Secrets und sicherer Rollout
OpenClaw-Gateways unter macOS launchd auf gemieteten Apple-Silicon-Hosts zu betreiben offenbart ein klassisches Missverhältnis: Ihre SSH-Session „sieht“ Dutzende Exports aus .zshrc, während der LaunchAgent nach Reboot fast nackt startet. 2026 verschwenden Teams ohne schriftliche Vorrangtabelle Stunden mit „funktioniert per SSH, scheitert beim Boot“—besonders wenn API-Schlüssel vierteljährlich rotieren und jemand .env ändert aber die Plist vergisst. Dieser Leitfaden erklärt Layering, eine Fünf-Zeilen-Matrix, einen Neun-Schritte-Rollout mit Checkpunkten, OPENCLAW_STATE_DIR versus riskantes Shell-Sourcing, Secret-Rotation ohne unnötiges Gateway-Churn, FAQ und den Bezug zu MacLogin-Regionen (Hongkong, Japan, Korea, Singapur, USA).
Verknüpfen Sie den Betriebskontext mit OpenClaw-Cron und launchd, Audit-Erwartungen in CLI-Hooks und Compliance-Logging, und Transportstabilität aus SSH-Keepalive-Fehleranalyse, damit Umgebungsfixes Netzwerkabbrüche nicht überdecken. Bei Änderungsfenstern Plist-Prüfsumme, doctor-Ausgabe und einen erfolgreichen Cron-Lauf dokumentieren.
Warum Umgebungs-Layering für OpenClaw-Gateways wichtig ist
OpenClaw erbt die Node-Prozessumgebung und merged Workspace-Dateien sowie optionale Dotenv-Loader je nach Build. Auf Cloud-Macs konkurrieren drei Akteure: interaktive Shell, launchd-Daemon und per SSH deployende CI-Jobs. Lädt nur ein Pfad ANTHROPIC_API_KEY, werden Automatisierungen nach Wartungsreboots flaky. Dokumentieren Sie die Quelle der Wahrheit pro Variablenklasse.
- Reproduzierbarkeit: Auditoren fragen „welche Datei definiert Produktion?“—versionierte JSON- und Plist-Dateien schlagen Ad-hoc-Exports. Ticket: betrifft nur Daemon oder auch SSH?
- Least Privilege: Nur-Lese-Konfiguration von Secret-Material trennen; chmod
600auf.env. - Multi-Tenant: Geteilte MacLogin-Konten dürfen keinen gemeinsamen
~/.openclaw-Baum für fremde Kunden nutzen.
Vorrangmatrix: wo jede Variable leben sollte
| Schicht | Am besten für | Caveats unter launchd | Beispiel-Keys |
|---|---|---|---|
EnvironmentVariables in LaunchAgent-Plist |
Boot-kritische Pfade, PATH-Fixes |
launchctl unload/load nach Änderung |
NODE_OPTIONS |
openclaw.json |
Nicht-geheime Defaults, Feature-Toggles | Wird nach Prozessstart gelesen | Modell-Routing, Tool-Allowlists |
Repo-.env |
Secrets außerhalb von git | WorkingDirectory korrekt setzen |
Provider-API-Keys |
| Shell-Wrapper | Komplexes Sourcing (selten) | Schwerer auditierbar | Legacy-CA-Bundles |
| Nur interaktive Exports | Entwickler-Laptops | Niemals für Gateways | Aliase |
launchctl print gui/$(id -u)/com.example.openclaw (Label ersetzen) prüfen.
Neun-Schritte-launchd-Umgebungs-Rollout
- Baseline: Aus funktionierender SSH-Session
env | sortins Ticket. - Klassifizieren: secret, path, flag—keine Duplikate zwischen Plist und JSON.
- PATH einfrieren: Minimalen PATH in Plist, wenn Homebrew/nvm abweichen.
- WorkingDirectory: Repo-Root mit
.env. - ProgramArguments: Absoluten
node-Pfad vonwhich node. - Unload/Load-Test: Zwei Zyklen.
- Health:
openclaw doctoran Change Record anhängen. - Reboot-Übung: Monatlich; Gateway unter 90 Sekunden wieder online.
- Dokumentation: Plist-Pfad + Checksumme ins Wiki; MacLogin-Hilfe für SSH-Grundlagen.
OPENCLAW_STATE_DIR und Shell-Import-Abwägungen
Status mit OPENCLAW_STATE_DIR zu verlagern hilft, wenn schnelles NVMe für Builds reserviert ist und Agenten-Journale andere Backup-Retention brauchen. Variable in die Plist, damit launchd und CLI übereinstimmen. ProgramArguments mit /bin/zsh -lc 'source ~/.profile && exec node ...' zieht interaktive Dotfiles nach—für Demos bequem, für Compliance gefährlich. Shell-Sourcing nur in Sandboxes.
Secret-Rotation ohne überraschende Gateway-Neustarts
Bei API-Key-Rotation springen Teams oft das ganze Gateway an. Wenn OpenClaw Secrets pro Request aus Datei-Watcher oder externem Store liest, lässt sich Ausfallzeit reduzieren: Neue .env atomar schreiben (mv von temp), SIGUSR oder dokumentierten Reload-Hook nutzen, 15 Minuten Fehlerrate beobachten vor Key-Widerruf. Mit Hook-Logging aus unserem Hooks-Artikel korrelieren.
Umgebungs-FAQ 2026
Ändert Docker auf Mac etwas? Env bei docker run injizieren; launchd verwaltet nur den Container-Supervisor. Diagramme aktualisieren.
Mehrere Node-Versionen? Absolute Pfade oder versionierte Manager-Datei im Repo; nicht auf zufälliges brew link vertrauen.
1Password CLI? Ja, aber LaunchAgent muss auf Netzwerk und Gerätefreigabe warten—headless Mac minis in Tokio verhalten sich anders als Laptops.
Warum Mac-mini-M4-Hosts strenge Umgebungsdisziplin erleichtern
Einheitlicher Speicher auf M4 hält Node, Watcher und optionale lokale Modelle flott, auch mit separaten LaunchAgents für Gateway und Cron-Worker (siehe Cron-Leitfaden). MacLogins Fünf-Regionen-Fußabdruck erlaubt Plist-Templates pro Region mit nur latenzsensitiven Endpoints als Variable. Kapazität über die Preisseite, Matrix anwenden, Umgebungsdrift als Incident-Klasse behandeln.
OpenClaw auf dediziertem Apple Silicon standardisieren
Ein Gateway pro Mandant reduziert versehentlichen Env-Cross-Talk.