Jenkins-Builds sollen vor dem Haupt-Job auf dem Remote-Mac prüfen, ob composer/npm sauber auflösen, und eine kurze Zusammenfassung per HTTP/Webhook zurückgeben. Stand 2026 nach docs.openclaw.ai: Node 22.16+ oder 24 LTS, openclaw doctor, Dashboard-Token außerhalb von Git, Gateway auf 127.0.0.1, Healthcheck mit curl. Hier: Generic Webhook Trigger, Token/Signatur, Preflight-Vorlagen, Retry. Mehr: Healthcheck & LaunchAgent, Composer-Matrix, Hilfe.

Umgebung und minimale Berechtigungen

Typische Engpässe: zu mächtiger Gateway-Benutzer; launchd-PATH ≠ Login-Shell (openclaw doctor warnt); fehlender Healthcheck → 502 vom Tunnel.

Dienstbenutzer ohne sudo, Repo nur per Deploy-Key. OpenClaw: curl-Installer oder npm i -g openclaw@latest, onboard, doctor für Node 22.16+/24 LTS. Dashboard nur Loopback; Token in Keychain, chmod 600-Datei oder LaunchAgent-Env – nie in Logs. Healthcheck: curl -fsS http://127.0.0.1:<port>/health z. B. minütlich; bei Fehler Dienst neu starten.

Komponente Minimal sinnvolle Grenze (2026)
macOS-Benutzer Kein Admin; getrennter Home; keine geteilte History
Jenkins-Token Nur Job/Read bzw. gezielt Build-Infos – kein Admin
OpenClaw Loopback + TLS/Tunnel nach außen
Anti-Pattern Globale COMPOSER_AUTH/.npmrc für alle Projekte

Checkliste: User → Doctor → Secret → Health → Test-curl mit statischem Token (ohne Jenkins).

Jenkins Generic Webhook und Signatur- bzw. Token-Parameter

Generic Webhook Trigger: Post-URL → TLS-Endpunkt → Tunnel/Relay auf 127.0.0.1 (vgl. Loopback-Gateway). Plugin-Token = JENKINS_WEBHOOK_SECRET im Handler. Optional Proxy-Authorization: Bearer. JSONPath auf $.build_url, $.job, $.branch filtert Spam-POSTs.

Parameter Zweck
Token Symmetrische Prüfung (Query/Body je Version)
HMAC (optional) Header X-Jenkins-Signature gegen Replay
IP-Whitelist Nur Jenkins-Egress am Ingress
Ohne Filter Jeder POST klont – Last & Risiko

Test: kleine JSON-Payloads mit build_url, git_commit, ref vor Produktiv-Jobs.

OpenClaw-Seite: Empfang und Preflight-Kommandos (composer / npm)

Handler: Secret/Signatur prüfen, Payload loggen, pro build_url eigenes Verzeichnis, git fetch + shallow checkout auf Jenkins-git_commit.

Composer (Spiegel siehe Matrix):

composer validate --no-check-publish
composer install --no-dev --no-interaction --dry-run

npm/pnpm:

npm ci --dry-run
pnpm install --frozen-lockfile --prefer-offline

Exit 0 = ok; sonst erste stderr-Zeile in die Summary – keine vollen Manifeste loggen.

So bleibt der Jenkins-Hauptagenten frei von langen Download-Phasen; Fehler treten früh und mit reproduzierbarem Log auf dem Mac auf. Bei Monorepos können Sie Unterverzeichnisse per Payload-Feld subdir wählen, bevor Sie composer oder npm starten.

Build-Zusammenfassung per HTTP/Webhook und Fehler-Retry

Payload-Felder: status, job, build, commit, preflight_exit, kurzer Text. Ziel: zweiter Generic-Webhook, HTTP-Notification oder wie Discord-CI-Summary beschrieben.

curl -sS -X POST -H 'Content-Type: application/json' \
-H 'Idempotency-Key: '"$BUILD_URL" \
--data '{"status":"ok","job":"'"$JOB"'","summary":"Preflight ok"}' \
"$SUMMARY_WEBHOOK_URL"

Retry: bei 429/502/503 2/4/8 s, max. ~5 Versuche, Cap ~60 s. Idempotency-Key = build_url. Zahlen: Preflight-Timeout oft 300–600 s; Healthcheck ~60 s.

Häufige Fehler – FAQ

401 auf dem Mac?

Plugin-Token ≠ Handler-Secret; Proxy-Authorization fehlt.

502 vom Tunnel?

Falscher Port / Prozess tot – lsof und Healthcheck-Port angleichen.

403 bei composer/npm?

Secrets nur für Dienstuser; NO_PROXY für interne Registry.

Doppelte Summaries?

Idempotency-Key aus build_url+Suffix preflight; Downstream deduplizieren.

Falsche Node-Version unter launchd?

LaunchAgent-PATH = Login-Shell oder absoluter node-Pfad.

Fazit

Fazit (2026): Jenkins + OpenClaw auf Remote-Mac: Node 22.16+/24, doctor, Loopback, Healthcheck, composer/npm-Preflight, HTTP-Summary mit Retry. 24/7-Gateway statt Laptop: Kaufen, Preise, Hilfe, Blog (öffentlich, ohne Login).

Remote-Mac · Gateway

Nächste Schritte

Kaufen · Hilfe · Preise · Blog

Apple-Silicon
24/7
CI