HOWTO · MATTERMOST · OPENCLAW · MESHMAC · MEHRKNOTEN 2026

2026 OpenClaw MeshMac in der Praxis: Mattermost Incoming Webhook — minimale Schritte für Mehrknoten-Build-Status

Lesezeit: 9 Min.
Gateway, Mindestrechte, Aggregation, Idempotenz
Wenn mehrere gemietete MeshMac-Knoten dieselbe CI-Pipeline bedienen, soll der Mattermost-Kanal trotzdem eine klare Zeitlinie zeigen — ohne dass jeder Runner die Incoming-Webhook-URL kennt. Dieser Leitfaden beschreibt den kleinsten reproduzierbaren Pfad mit OpenClaw 2026 als einzigen ausgehenden Absender: TLS-Gateway, Geheimnis auf einem Host, normalisierte Mehrknoten-Felder, Retry mit Idempotenz und eine FAQ, wenn nichts ankommt. Vergleichbare Muster: Microsoft Teams Webhook, Matrix Webhook, gemeinsame Build-Benachrichtigung.

Kurzüberblick: fünf Schritte bis zum ersten Post

  1. Gateway bereitstellen: OpenClaw auf stabilem Ingress wie im Mehrknoten-Installationspfad; openclaw doctor und Healthchecks grün.
  2. Mattermost Webhook erzeugen: Integration → Incoming Webhook im Zielkanal; vollständige https://…/hooks/…-URL einmal kopieren.
  3. Egress zum Chat-Server: Nur das Gateway darf HTTPS zu Ihrem Mattermost-FQDN öffnen — siehe Abschnitt „Gateway“.
  4. Events vereinheitlichen: Runner schreiben in die gemeinsame Queue (Deploy und Task-Queue-Sync), das Gateway rendert text oder attachments.
  5. Betrieb: Retries mit Dedupe-Key, Metriken, vierteljährliche URL-Rotation im Kalender.

Gateway und Webhook-Konfiguration

Stellen Sie genau einen HTTPS-Endpunkt nach außen bereit (Reverse Proxy oder Ingress), der POST mit Content-Type: application/json annimmt — dort validiert OpenClaw eingehende Build-Events (HMAC, langer Header oder mTLS). Im Mattermost-Client wählen Sie Integrationen → Eingehender Webhook, aktivieren den Kanal und notieren die ausgegebene URL. Diese URL enthält den geheimen Token im Pfad; speichern Sie sie ausschließlich auf dem Gateway unterhalb von /etc/openclaw/secrets.d mit Rechten 0440 und einer Gruppe wie openclaw. Committen Sie niemals Webhook-Zeichenketten.

Ausgehend postet das Gateway mit application/json — typischerweise {"text": "…"} oder strukturierte attachments mit fallback für Mobilgeräte. Optional setzen Sie username und icon_url, um Staging vs. Produktion oder Repos zu unterscheiden. Hinter einem Forward-Proxy muss dieselbe HTTPS_PROXY-Konfiguration wie der OpenClaw-Dienst gelten; testen Sie mit curl -v vom Gateway-Subnetz, nicht vom Entwickler-Laptop. Details zu Sitzungen und Raten: Gateway Rate-Limit FAQ.

  • TLS-Inspection: Wenn der Proxy eigene CAs einspielt, CA-Bundle auf dem Gateway pflegen.
  • Self-hosted Mattermost: Zertifikatskette und SNI zum internen FQDN prüfen; ggf. nicht-Standard-Port in Firewall und Webhook-Test explizit setzen.

Implementieren Sie auf dem Gateway eine klare Route (z. B. POST /hooks/mattermost/build-status), die nur validierte Events aus der Worker-Queue annimmt und sie unmittelbar in den Mattermost-POST übersetzt. So bleibt die Latenz vorhersehbar: der Webhook-Handler antwortet dem Broker schnell mit einer Bestätigung, während der eigentliche Chat-POST asynchron oder in derselben Transaktion mit kurzem Timeout erfolgt — aber niemals blockiert ein Mac-Runner direkt auf die Mattermost-Antwort.

Mehrknoten-Statusaggregation: Mindestschritte

Jeder MeshMac sendet keine Rohtexte an Mattermost, sondern ein normiertes Ereignis an die zentrale Queue (Redis, NATS, RabbitMQ — konsistent mit Ihrem Deploy- und Queue-Setup). Der Gateway-Worker liest daraus, faltet Zwischenstände pro logischem Lauf zusammen (z. B. gleicher provider_run_id) und erzeugt einen sichtbaren Post pro relevanter Zustandsänderung — nicht pro internem Retry eines Knotens.

Praktisch bedeutet das: Wenn Knoten A und B dieselbe Pipeline parallel starten, sehen Sie im Kanal keine zwei widersprüchlichen Zeilen, sondern eine Aktualisierung, die den Gesamtstatus widerspiegelt (z. B. „noch laufend“ bis alle mesh_node_id-Teilresultate eingetroffen sind, oder „fehlgeschlagen“, sobald der erste relevante Fehler vorliegt — je nach Team-Policy). Halten Sie diese Policy im Repository oder Config-Repo dokumentiert, damit On-Call nicht raten muss, warum ein Kanal plötzlich „stiller“ wirkt als ein anderes Dashboard.

Gateway-Schlüssel Beispiel Rolle in Mattermost
workflowios-releaseErste Zeile / Titel
statesuccess / failureAmpel, Emoji
branchmainKontext
commitKurz-SHALink zum VCS
run_urlCI-HTML-URLKlickbarer Link
mesh_node_idmac-pool-3Fußzeile Mehrknoten
provider_run_idGitHub/GitLab-Run-IDIdempotenz & Support

Implementieren Sie exponentielles Backoff mit Jitter bei HTTP 429 oder 5xx von Mattermost, maximal fünf Versuche innerhalb weniger Minuten. Den Dedupe-Schlüssel bilden Sie aus provider_run_id plus normalisiertem state; verworfene Duplikate können Sie 72 Stunden vorhalten. Fehlgeschlagene Zustellungen landen in einer Dead-Letter-Queue, damit Ops zwischen „Chat limitiert“ und „Payload ungültig“ unterscheiden können. Wenn Sie sehr große attachments-Blöcke nutzen, prüfen Sie die Markdown-Limits von Mattermost, damit mobile Clients nicht nur leere Karten rendern.

Tokens und Mindestberechtigungen

Trennen Sie eingehende Authentifizierung (HMAC/Header für Runner → Gateway) strikt von der Mattermost Webhook-URL. Letztere ist gleichzeitig Secret — behandeln Sie sie wie ein API-Token. Kein CI-Container und kein Xcode-Runner soll diese Variable standardmäßig erben; nur der Gateway-Prozess liest die Datei beim Start. Vertiefung: Secrets und Mindestrechte auf Knoten sowie IM-Benachrichtigungen und Token-Rotation.

Bei Rotation: neuen Webhook in Mattermost erzeugen, neue Datei atomar neben die alte legen, Gateway mit Dual-Read für ein Übergangszeitfenster neu laden, alte URL in Mattermost deaktivieren, alte Datei entfernen. Loggen Sie Antwortkörper redigiert — nie vollständige Hook-URLs. Für getrennte Umgebungen (Dev/Staging/Prod) nutzen Sie Env-Templates und Secrets je Umgebung, damit nicht versehentlich Produktions-Posts im Testkanal landen.

FAQ: Keine Nachrichten erhalten

Gehen Sie die Kette Runner → Queue → Gateway → Mattermost von hinten nach vorne durch: zuerst HTTP-Status und Antworttext des ausgehenden POST, dann Gateway-Logs, dann ob der Build überhaupt ein Queue-Event erzeugt hat.

Symptom Häufige Ursache Maßnahme
HTTP 404 beim POSTWebhook gelöscht oder URL abgeschnittenNeuen Incoming Webhook erstellen, Secret auf Gateway atomar ersetzen
HTTP 403Kanalrecht oder Team-PolicyWebhook-Berechtigung im Kanal prüfen, ggf. anderen Kanal wählen
HTTP 200, leerer KanalLeerer text, falsches JSONMinimales {"text":"test"} vom Gateway senden
HTTP 429Zu viele Posts / Proxy-LimitGlobales Token-Bucket am Gateway, längere Backoffs
Nur ein Knoten „stumm“Alter Queue-Endpunkt in UmgebungsvariablePool-Env mit Template synchronisieren

Referenz für den Betrieb: fünf Retries, 72 Stunden Dedupe-Fenster, TLS 1.2+ zum Mattermost-Host, Gateway-Secret 0440. Vertiefung und weitere Szenarien im OpenClaw-Themenhub und in der Blog-Übersicht.

Mattermost ist hier bewusst nur der Broadcast-Endpunkt für Menschen: Ihre MeshMac-Knoten bleiben austauschbare Worker, während Geheimnisfläche und Zustellpfad am Gateway messbar bleiben. Wenn die Queue trotzdem überläuft, prüfen Sie Kapazität und Task-Queue-Retries, bevor Sie weitere Hardware mieten.

Mesh-Miete für Mehrknoten-CI

Skalieren Sie den Pool ohne jedem Mac Chat-Secrets zu geben: Kapazität auf der Startseite vergleichen, Preise und Pakete für mehrere Knoten prüfen, Anbindung und SSH im Hilfezentrum lesen — ohne Anmeldung in der Kaufentscheidung. Serie im Blog und OpenClaw-Leitfaden fortsetzen.

Mesh-Knoten mieten