curl oder npm), openclaw onboard, Dashboard, Incoming-Webhooks, curl-Validierung, ein JSON-Embed-Mapping sowie Rate-Limits und Retries. Vertiefung ohne Login: Hilfe, Telegram/Slack am Gateway, Installations-Fehlersuche.
① Umgebungsvoraussetzungen und Minimalrechte-Prinzip
Node.js für OpenClaw 2026: typisch 22.16+ oder 24 LTS. Gleiche Version in Login-Shell und launchd-Gateway prüfen, sonst schlägt der Dienst fehl. Webhook-URL nur als DISCORD_WEBHOOK_URL / Secret / CI-Variable – nie ins Repo oder ungekürzt loggen.
- Pfad-Drift: Unterschiedliche
PATH-Einträge für Login-Shell und Daemon führen zu falschemnodeoder fehlendemopenclaw. - Token-Sichtbarkeit: Dashboard, Screen-Sharing und Support-Screenshots exponieren Gateway-Tokens – Rotation planen.
- Webhook-Scope: Incoming Webhooks schreiben nur in einen Kanal; das minimiert Rechte gegenüber vollwertigen Bots und erleichtert Audits.
curl-Installer vs. npm i -g openclaw@latest: eine Variante pro Host festlegen.
| Kriterium | curl |
npm global |
|---|---|---|
| Isolation | Festes Präfix | npm-Prefix / Rechte |
| Upgrade | Skript erneut | npm update -g |
| Proxy-TLS | CA-Bundle nötig | gleiches Bundle |
| Einsatz | Gateway-Server | Dev-Laptop |
openclaw onboard, dann Dashboard (Bind, Port, Token). Siehe Gateway-Healthcheck & LaunchAgent.
Mit openclaw doctor lässt sich die Laufzeitumgebung prüfen; die ausgegebene Version mit den Release-Notes abgleichen. Dokumentieren Sie, ob das Gateway nur auf 127.0.0.1 oder hinter einem Reverse-Proxy mit mTLS lauscht – daraus ergeben sich getrennte Checklisten für Firewall- und Secret-Rotation.
② Discord-Webhook anlegen und auf dem Gateway binden
Discord: Kanal → Integrationen → Webhooks → Incoming Webhook, URL kopieren. Am Mac DISCORD_WEBHOOK_URL für den Gateway-Prozess setzen (Schlüssel je nach Plugin-Version laut Release-Docs).
Erst kurzen Testpost, dann CI. Erwartung: HTTP 204.
Bei TLS/Proxy: HTTPS_PROXY, NO_PROXY und CA unter dem Dienstbenutzer wie im Betrieb testen. Optional CI → interner Relay auf dem Mac → Discord.
③ CI-Build-Zusammenfassung: Payload-Vorlage und Feldzuordnung
Embeds für Repo, Branch, Commit, Status; description kurz halten. Farbe z. B. 3066993 (OK) / 15158332 (Fail).
| CI-Metrik | Quelle (Beispiel) | Discord-Feld |
|---|---|---|
| Repository / Workflow | GITHUB_REPOSITORY oder Pipeline-Name |
embeds[].title oder Feldname „Projekt“ |
| Branch | GITHUB_REF_NAME / CI_COMMIT_REF_NAME |
Feld „Branch“ in fields |
| Commit | Kurz-SHA via git rev-parse --short HEAD |
description mit Link zur Web-UI |
| Status / Dauer | Exit-Code und SECONDS |
color + Text in description |
| Runner-Host | Hostname des Remote-Mac | optionales Feld „Knoten“ für Betrieb |
Optional: CI → interner HTTP auf dem Mac → Discord (PII-Filter, Signatur).
Unter GitHub Actions entsprechen die Variablen oft GITHUB_REPOSITORY, GITHUB_REF_NAME und GITHUB_SHA; GitLab nutzt CI_PROJECT_PATH, CI_COMMIT_REF_NAME und CI_COMMIT_SHORT_SHA. Mappen Sie immer dieselben Namen in Staging und Produktion, damit Playbooks nicht auseinanderlaufen.
④ Signatur, Ratenbegrenzung und Parameter für Wiederholungen
Webhook-URL = geteilter Schlüssel; Relay mit HMAC möglich. username/avatar_url für Umgebungen.
Bei 429 Retry-After + Jitter. curl: --connect-timeout 5 --max-time 20, max. 3 Versuche, Pause 2/4/8s. HTTPS_PROXY/NO_PROXY für Runner und Gateway gleich halten.
Operativ lohnt es sich, fehlgeschlagene Webhook-Posts mit Zeitstempel und HTTP-Status in die Job-Zusammenfassung zu schreiben, damit On-Call und Entwickler dieselbe Spur sehen. Wenn mehrere Repositories einen Kanal teilen, vereinbaren Sie ein Präfix im Embed-Titel, um Quelle und Umgebung sofort zu erkennen.
| Parameter | Empfohlener Startwert | Stabilitätsziel |
|---|---|---|
| Max. POST-Versuche | 3 | Keine Endlosschleifen bei dauerhaftem Ausfall |
| Backoff-Sequenz | 2s / 4s / 8s + Zufallsanteil | Entkopplung paralleler Jobs |
| Connect-Timeout | 5s | Schnelles Fail bei blockiertem SYN |
| Gesamt-Timeout | 15–20s | Pipeline hängt nicht an hängenden TLS-Handshakes |
| 429-Behandlung | Retry-After strikt einhalten |
Respekt vor API-Quoten |
⑤ Häufige Fehler FAQ (403 / 429 / Timeout)
HTTP 403 Forbidden von der Webhook-URL?
Webhook gelöscht, URL gekürzt oder Rechte fehlen – neu anlegen und Secret aktualisieren.
HTTP 429 Too Many Requests trotz weniger Builds?
Matrix multipliziert Posts – zusammenfassen oder Relay; Retry-After beachten.
Timeout oder TLS-Fehler nur auf dem Remote-Mac?
Proxy/DNS/CA für Shell vs. launchd vergleichen; curl -v als Dienstuser.
HTTP 204, aber kein neuer Beitrag im Kanal?
Falsche URL, leere content/embeds, archivierter Kanal oder Thread.
Fazit
Fazit (2026): Node, onboard, Dashboard und Webhook bilden die kurze Schleife für Build-Sichtbarkeit. Mit gemietetem Apple-Silicon-Remote-Mac laufen Gateway und Ausgangsnetz stabiler als auf schlafenden Laptops. Ohne Login: Startseite, Kaufen, Hilfe, Technik-Blog.
Nächste Schritte – ohne Login
Hilfe, Kaufen, Startseite und Technik-Blog mit weiteren Gateway-Artikeln.