← Zurück zum Tagebuch

Headless OpenClaw CI auf Cloud-Mac Kanada M4 2026: install-cli.sh, --no-onboard, launchd-Sonden Mac mini Hosting

OpenClaw · 2026.05.23 · ~10 Min.

Headless OpenClaw CI auf Kanada Cloud-Mac M4 mit install-cli.sh und launchd-Health-Checks

Wenn Plattformteams OpenClaw auf einen Fern-Mac M4 in Kanada verlagern, kopieren sie oft das Desktop-Playbook: Screen Sharing öffnen, vollständiges openclaw onboard ausführen, hoffen, dass die Gateway nach SSH-Abbruch überlebt. CI- und Batch-Workloads brauchen einen anderen Vertrag — einen Headless-Installationspfad mit offiziellem install-cli.sh und --no-onboard, vorkonfigurierten Secrets und launchd-Health-Probes statt Assistenten-Prompts. Dieser Beitrag beantwortet nur eine Frage: Wie landet reproduzierbare Headless-OpenClaw-CI auf einem Cloud-Mac- / Mac-mini-Cloud-Build-Sitz. Er diskutiert nicht erneut SSH-Tunnel vs. direkten Gateway-Zugriff (OpenClaw Kanada M4: SSH-Gateway, 18789-Token und launchd) oder das interaktive Onboard-Log-Playbook (Fern-Mac: Install, onboard und LaunchDaemon 24/7). Läuft auf demselben Mac-mini-Hosting-Sitz auch ein GitHub-Actions-Runner, trennen Sie Unix-Benutzer und launchd-Labels gemäß selbstgehosteten macOS-Runnern auf Cloud-Mac, damit Node-Versionen und Port 18789 nicht kollidieren.

Für Headless-CI an drei Ideen festhalten:

  • install-cli.sh --no-onboard überspringt den Assistenten

    Config-Verzeichnis und Tokens kommen aus Ihrem Runbook — ideal für Ansible oder GHA-Workflows.

  • Probes müssen launchd, 18789 und sharp abdecken

    Ein erfolgreiches curl reicht nicht; absolute plist-Pfade und native Module zählen.

  • Kanada-M4-Dediziersitze für 24/7

    24 GB Unified Memory und 512 GB+ SSD; Gateway-Arbeit und CI-Jobs getrennt queuen.

1. Wann Headless --no-onboard statt interaktivem onboard Pflicht ist

Interaktives openclaw onboard glänzt auf einem Mac mit echter GUI-Session, wo ein Operator TCC-Prompts (Bedienungshilfen, Automatisierung, Bildschirmaufnahme) bestätigt. Das ist die richtige Erstinstallation auf einem Entwickler-Laptop. Es ist der falsche Default, wenn das Ziel eine Cloud-Mac-CI-Spur ist, die nur per SSH oder Self-Hosted-Runner erreichbar ist und die Konfiguration bereits aus internen Templates stammt. Den Assistenten weiter aufzurufen blockiert Pipelines und erzeugt Schneeflocken-Hosts, die nicht aus Git rebuildbar sind.

Der Headless-Vertrag sieht so aus:

  • Node LTS und globales openclaw-CLI-Semver via install-cli.sh pinnen.
  • --no-onboard übergeben und das Config-Verzeichnis (laut Upstream-Docs oft ~/.openclaw) aus Secrets-Management synchronisieren.
  • Nur bei Browser-Automatisierung, die noch TCC braucht, ein einmaliges Screen-Sharing-Fenster planen; danach rein über launchd betreiben.

Im Vergleich zu unserer „Fern-Mac-Stabilität“-Notiz liefert dieser Artikel ein versioniertes CI-Runbook und Probe-Skripte — kein Desktop-Bedienerhandbuch. Tippt Ihr Team bei jedem neuen Sitz noch Antworten in onboard, habt Ihr Headless-Reife noch nicht erreicht.

2. Headless install-cli.sh vs. vollständiges onboard: Auswahl

OpenClaw-Installationspfade auf Cloud-Mac: Headless-CI vs. interaktives onboard
Dimension install-cli.sh --no-onboard CI / Batch · wiederholbar Vollständiges openclaw onboard Desktop · erstes TCC
Ideal fürGHA, Cron, homogene Fleet-SkalierungEinzelplatz-VNC-Setup, Menüleisten-App
Config-QuelleGit-Template + CI-SecretsAssistent schreibt Schritt für Schritt
Gateway 18789Runbook pinnt 127.0.0.1 + Bearer-TokenAssistent stellt Bearer aus
launchdSkript oder Post-Install install-daemonOptionales --install-daemon
Typische FehlerPATH-Drift, sharp-Load, Config-Semver-SkewFehlendes TCC, Port bereits gebunden
Sweet SpotMac-mini-Hosting 24/7-Agent-PoolsEntwickler-Laptop-Sidecar-Debugging

Beim Provisionieren eines frischen Mac-mini-Cloud-Sitzes beim Provider zuerst die Headless-Smoke-Pipeline laufen lassen. Teams, die „einmal per Hand onboarden“, merken oft Wochen später, dass sie die Gateway nicht innerhalb einer Stunde disaster-recovern können.

3. Headless-Provisionierungs-Runbook: install-cli.sh und Config-Injection

Die Beispiele setzen einen dedizierten Systembenutzer openclaw-ci voraus, isoliert vom VNC-Admin. Auf einem Kanada-M4-Cloud-Mac Node auf LTS pinnen (22.x ist 2026 eine vernünftige Basis) und von nvm-Shims des Runner-Benutzers trennen — launchd-Jobs laden keine interaktiven Shell-Profile.

Headless-Install und Daemon (illustrativ; Upstream-Docs folgen)
# SSH als openclaw-ci auf dem Cloud-Mac
export OPENCLAW_CONFIG_DIR="$HOME/.openclaw"
curl -fsSL https://example.openclaw.dev/install-cli.sh | bash -s -- --no-onboard

# Config aus CI-Secrets wiederherstellen — Tokens nie nach Git committen
install -d -m 700 "$OPENCLAW_CONFIG_DIR"
echo "$OPENCLAW_CONFIG_JSON" > "$OPENCLAW_CONFIG_DIR/config.json"

# Gateway-launchd-Service installieren, wenn unterstützt
openclaw gateway install-daemon
openclaw doctor --non-interactive

Operative Hinweise, die Hobby-Installs von Produktions-Cloud-Mac-Spuren trennen:

  1. Idempotenz: Ihr Workflow muss Wiederholungen tolerieren. Gutes Skript no-op oder konvergiert Version bei bereits installiert.
  2. Semver-Lock: openclaw --version und Config-Schema-Version im Runbook festhalten; Upgrades über Change Window mit Rollback.
  3. Disk-Layout: npm/pnpm-Caches auf unabhängig wipebarem Pfad; bei iOS-Builds auf demselben Host von Derived Data trennen.
  4. Checksum: Install-Skript-Digest in Produktion pinnen; nacktes curl | bash ohne Verifikation wartet auf Supply-Chain-Vorfall.
Koexistenz mit CI-Runner
Läuft auf demselben Mac-mini-Hosting-Sitz ein GitHub-Actions-Runner, verschiedene Unix-Benutzer: Runner-Benutzer besitzt xcodebuild; openclaw-ci besitzt die Gateway. Niemals ein launchd-Job-Label oder einen globalen node_modules/.sharp-Baum teilen.

4. launchd-Health-Checks: Prozess-, Port- und Log-Dreieck

Im Headless-Modus bedeutet „Gateway scheint up“ oft, dass jemand einmal curl in einer SSH-Session mit vollem PATH lief. Produktions-Probes sollten launchd-Status, Listen-Adresse und Log-Schlüsselwörter gemeinsam validieren. Alle fünf Minuten per Cron oder geplantem GHA-Workflow:

launchd- + Gateway-Probe (Beispiel)
#!/bin/bash
set -euo pipefail
LABEL="ai.openclaw.gateway"
launchctl print "gui/$(id -u)/$LABEL" | grep -q 'state = running'
lsof -nP -iTCP:18789 -sTCP:LISTEN | grep -q openclaw
curl -sf -H "Authorization: Bearer $OPENCLAW_GATEWAY_TOKEN" \
  http://127.0.0.1:18789/health | grep -q '"ok":true'
tail -n 50 ~/Library/Logs/openclaw/gateway.log | grep -Ei 'sharp|EADDRINUSE|401' && exit 1 || true

Das plist muss openclaw mit absolutem Pfad aufrufen und explizite EnvironmentVariables setzen, inkl. PATH=/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin. launchd liest Ihr interaktives ~/.zprofile nicht. Diese Diskrepanz ist der Top-Grund, warum Befehle über SSH funktionieren, der Daemon auf einem gemieteten Cloud-Mac aber sofort beendet.

Probes um Duration-Metriken erweitern: p95-Latenz von /health tracken und alerten, wenn Cold Starts das Workflow-Timeout-Budget überschreiten. Eine Gateway, die interaktiv in vier Sekunden antwortet, launchd aber in dreißig, kann CI-Jobs mit engen Retries dennoch scheitern lassen.

5. Probe-Ergebnis-Matrix: grün, gelb und rot

OpenClaw-Gateway-launchd-Health-Level und Operator-Aktionen
LevelSignaleEmpfohlene Aktion
Grünlaunchd running + 18789 LISTEN + /health 200Nur gateway.log älter als 7 Tage rotieren
GelbLangsames /health oder intermittierendes 401; keine sharp-Fehler in LogsToken-Rotation prüfen; openclaw doctor; parallele Agent-Jobs begrenzen
Rotlaunchd-Exit-Loop; EADDRINUSE; sharp-Load-FehlerJob-Queue stoppen; bootout + plist rebuild; sharp-Abschnitt unten

Gelb länger als vierundzwanzig Stunden als Release-Blocker behandeln. Headless-CI setzt vorhersagbares Gateway-Verhalten voraus; intermittierende Auth- oder Latenzfehler eskalieren zu teuren Batch-Timeouts ohne VNC.

6. sharp-Native-Modul-Troubleshooting auf Apple-Silicon-Cloud-Macs

OpenClaws Abhängigkeitsgraph enthält sharp (libvips-Bindings). Auf M4-arm64-Hosts erzeugen inkonsistente Node-Major-Versionen oder gemischte Install-Benutzer Fehler wie Cannot find module '../build/Release/sharp.node' oder Architektur-Mismatch zur Laufzeit. Headless-CI darf das nicht erst beim ersten fehlgeschlagenen Job entdecken — sharp-Validierung in Golden Images oder Post-Install-Hooks einbacken.

6.1 Häufige Fehlermodi und Fixes

  • Benutzer-Mismatch: root installierte globales CLI, openclaw-ci führt Daemon aus — sharp oder CLI als Service-Benutzer neu installieren.
  • Node-Upgrade ohne Rebuild: nach Node-Bump npm rebuild sharp oder openclaw-CLI-Paket neu installieren.
  • Rosetta-Mix: plist und CLI beide arm64; file $(which node) sollte arm64 melden.
  • Offline-Cache: auf bandbreitenbeschränkten Mac-mini-Cloud-Hosts sharp-Binaries prefetchen, damit CI-Jobs nicht jeden Lauf GitHub Releases treffen.
  • Mehrere Node-Manager: Homebrew Node für Daemon und nvm in interaktiven Shells vermeiden — eine Story wählen und im plist encodieren.
sharp-Diagnose und Rebuild (als openclaw-ci)
node -p "process.arch + ' ' + process.version"
npm ls sharp --global 2>/dev/null || true
npm rebuild sharp --foreground-scripts
openclaw doctor 2>&1 | tee /tmp/openclaw-doctor.log
grep -i sharp /tmp/openclaw-doctor.log && exit 1 || echo "sharp OK"

Meldet doctor weiter sharp, Node- und CLI-Install-Kanäle vom selben install-cli.sh-Artefakt ausrichten, bevor Anwendungsbugs gejagt werden. Homebrew Node mit npm-globalem CLI ohne plist-PATH-Fix ist die häufigste sharp-Kante in Mac-mini-Hosting-Tickets.

7. Gateway-18789-Grenzen und Token-Rotation in CI

Headless-Pipelines sollten die lokale Gateway unter 127.0.0.1:18789 mit Bearer-Token aufrufen — Port nie auf öffentlicher Schnittstelle exposen. Tokens in CI-Secrets speichern (z. B. OPENCLAW_GATEWAY_TOKEN). Rotationsfluss: neues Token in Config schreiben, Daemon reload, Probes grün validieren, altes Secret widerrufen. Loopback hält Latenz minimal, wenn Runner und Gateway einen Cloud-Mac teilen; Cross-Host-Aufrufe gehören in die verlinkte SSH-Gateway-Notiz.

Workflows brauchen explizite Timeouts und begrenzte Retries. Cold Start kann nach Reboot zehn bis dreißig Sekunden dauern; Probe-Fehler sollte einmal launchctl kickstart auslösen, bevor destruktive Reinstall. Dokumentieren, damit On-Call bei Boot-Storms nach macOS-Patches keine funktionierende Config löscht.

8. Sicherheits-Baseline für Headless-OpenClaw auf gehosteten Mac-Sitzen

  • Dedizierter Benutzer: openclaw-ci ohne Admin-Rechte oder VNC-Login.
  • Secrets: Config und Tokens nur aus Vault; FileVault auf Volume aktiv.
  • Netzwerk: eingehend nur SSH oder Tailscale; 18789 nicht im LAN broadcasten.
  • Supply Chain: Install-Skript-Checksums verifizieren; ungeprüftes pipe-to-bash in Produktion blockieren.
  • Audit: gateway.log vierzehn Tage behalten; 401- und sharp-Schlüsselwörter in Log-Stack shippen.
  • Blast Radius: Agent-Tools-Profil least privilege; untrusted Fork-PRs dürfen Produktions-Gateway-Hosts nicht erreichen.

Headless-Automatisierung erhöht Velocity; sie entfernt auch die menschliche Pause, in der jemand eine verdächtige Install-URL bemerken würde. Install-Skript-URL und Checksum mit derselben Strenge wie Produktions-TLS-Zertifikate behandeln.

9. Headless-OpenClaw in GHA oder interne CI einbinden

Sind Gateway-Probes grün, OpenClaw über guarded Steps an Pipelines anbinden:

  1. OPENCLAW_GATEWAY_TOKEN aus GitHub Environments exportieren; Produktion mit required reviewers.
  2. Agent-Jobs auf runs-on: [self-hosted, macos-m4-canada, openclaw]-Labels, getrennt von Signing- oder Archive-Jobs.
  3. Preflight mit derselben Shell-Probe wie Cron; fast fail vor teuren LLM- oder Browser-Schritten.
  4. openclaw doctor-Output bei Fehler als Workflow-Artefakt für async Review.

Memory-Planung: auf 24-GB-Mac-mini-Cloud-Sitz OpenClaw-Agent-Batches pausieren, wenn Unified-Memory-Druck achtzig Prozent überschreitet und derselbe Host noch xcodebuild archive fertigstellen muss. Queue-Tiefe-Alerts verhindern, „GitHub ist langsam“ zu beschuldigen, wenn der Host einfach überlastet ist.

10. Erste-Woche-Checkliste auf dediziertem Kanada-M4-Sitz

  1. Mac-mini-Hosting-Plan wählen (24 GB RAM und 512 GB SSD Minimum für kombinierte CI + Gateway).
  2. openclaw-ci anlegen und install-cli.sh --no-onboard-Smoke-Tests bestehen.
  3. Config und Token injizieren; openclaw doctor --non-interactive clean sicherstellen.
  4. launchd installieren; grün/gelb/rot-Probes mit Paging deployen.
  5. sharp vorvalidieren; Node- und CLI-Versionen im Runbook locken.
  6. Teilt sich ein GHA-Runner den Host, getrennte Benutzer und keine Port-Konflikte verifizieren.
  7. Rebuild dokumentieren: neuer Cloud-Mac-Sitz soll innerhalb dreißig Minuten identisches Gateway-Verhalten erreichen.

11. FAQ

Brauche ich nach --no-onboard noch VNC?

Bei Browser-Automatisierung oder TCC-Berechtigungen einmalige grafische Session planen. Reine CLI- oder API-Gateway-Workloads können ohne VNC dauerhaft laufen, sobald launchd stabil ist.

install-cli.sh vs. vollständiges install.sh?

install-cli.sh, wenn CI nur CLI plus Gateway braucht. Vollinstaller mit Menüleisten-Apps passen schlecht zu wiederholten Headless-Runner-Deployments.

Probe liefert 401, Prozess läuft?

Meist Token-Rotations-Drift oder Workflows senden noch altes Secret. Config auf Disk mit Authorization-Header alignen; Proxys prüfen, die stale Tokens injizieren.

sharp scheitert unter launchd, funktioniert über SSH?

Fast immer PATH- oder Benutzer-Umgebungs-Unterschiede. launchctl print-Environment-Blöcke mit interaktivem env side by side vergleichen.

Kann ich OpenClaw Gateway in Docker auf macOS betreiben?

Docker auf Mac ersetzt native TCC- und GUI-Automatisierungs-Anforderungen nicht. Gateway unter nativem launchd; Container nur für Peripherie-Tools.

Wie plane ich OpenClaw neben GitHub Actions auf einem Host?

Agent-Batches von Archive-Peaks wegstagger; Agenten über achtzig Prozent Memory-Druck pausieren. Label- und Concurrency-Guidance im Self-Hosted-Runner-Artikel.

Ist ein Hashvps-Kanada-Knoten gut für Headless-OpenClaw?

Ja bei Bedarf an dediziertem IPv4, Bare-Metal-M4 und persistentem SSH. Disk-Tier für npm-Caches und rotierte gateway-Logs vor Commitment bestätigen.

Was ist das Standard-CLI-Upgrade-Verfahren?

Wartungsfenster: launchctl bootout, Version via install-cli konvergieren, npm rebuild sharp, doctor, grüne Probes, dann Traffic wiederherstellen.

Headless OpenClaw braucht ein stabiles Mac-mini-Cloud-Fundament

install-cli.sh --no-onboard liefert reproduzierbare Deploys; Langzeitstabilität hängt vom Cloud-Mac ab. M4 Unified Memory, macOS launchd, stromsparendes Mac mini Hosting, Gatekeeper/FileVault.

Mac-mini-Cloud-Tarife vergleichen

Hashvps · Mac Cloud

Mac mini Hosting für headless OpenClaw CI

M4 Bare Metal, dedizierte IPv4, install-cli Headless-Deploys und 24/7-Gateway-Sonden.

Zur Startseite
Sonderangebot