2026 OpenClaw auf gemietetem Mac Mini: GitLab CI Scheduled Pipeline für Nacht-Inspektion und Morgen-Zusammenfassung
DevOps-Teams wollen OpenClaw auf einem gemieteten Mac Mini per GitLab-Uhr starten, ohne dauernd per SSH einzugreifen, und morgens einen belastbaren Report vor dem Daily.
Dieser Leitfaden liefert ein reproduzierbares Muster für Scheduled Pipelines mit minimalem Tokenumfang, gehärtetem Webhook, Retry-Politik und Log-Archiv-Prüfpunkten. Vertiefung: OpenClaw-Modellrouting, Quota und Backoff, 7×24-Scheduling-Matrix auf dem Miet-Mac, Log-Rotation und Speicher-Schwellen sowie der Blog-Überblick.
Drei typische Fehlkonfigurationen
- Zu breite PATs: Personal Access Tokens mit api-Scope exponieren bei Leck das gesamte Projekt—Audit und Rotation werden teuer.
- Ungehärtete Webhooks: Öffentliche Endpunkte ohne HMAC, IP-Allowlist und strikte Header-Validierung erzeugen Replay- und Rauschalarme.
- Verlorene Artefakte: Kurzes expire_in oder falscher Pfad lässt den Morgen-Job leer laufen, obwohl die Nacht-Inspektion grün war.
Matrix: Auslöserwahl für OpenClaw auf dem Mietknoten
Wählen Sie genau einen primären Pfad pro Umgebung. Gemischte Trigger ohne Dokumentation verdoppeln den Prüfaufwand unter ISO- und Kunden-Audits.
| Muster | Optimal wenn | Minimales Credential | Stabilitätsmetrik | Sicherheitsnotiz |
|---|---|---|---|---|
| Nur GitLab-Schedule | GitLab soll die Uhr besitzen, Repo liegt unter Ihrer Kontrolle | Projekt-Trigger-Token, Scope nur trigger_job | p95 Start < 120 s nach Planzeit | Token nur als maskierte CI-Variable, kein Commit |
| Inbound-Webhook zum Mac | OpenClaw muss innerhalb weniger Sekunden auf externes Signal reagieren | Geteiltes HMAC-Geheimnis, Reverse-Proxy mit Allowlist | Signaturprüfung < 50 ms CPU-Zusatz | Kein Bearer im Querystring, TLS 1.2+ erzwingen |
| Read-only API-Poll | Dashboard braucht Status ohne Remote-Codeausführung | Projekt-Token read_api, Pfade eingeschränkt | Abfrageintervall ≥ 60 s empfohlen | Keine Schreibrechte auf Pipeline-Trigger |
Token-Arten und empfohlene Mindestrechte
| Token-Typ | Scope / Rolle | Einsatz | Rotation | Verboten |
|---|---|---|---|---|
| Trigger-Token | trigger_job | Manueller oder API-gestützter Pipeline-Start | 90 Tage oder bei Verdacht | Nie in Logs ausgeben |
| Projekt-Zugriffstoken | read_api | Checkpoint-Abfragen der letzten Pipeline | Vierteljährlich | Kein write_repository |
| Deploy-Token | read_registry | Image-Pull auf dem Mac-Runner | Mit Release-Zyklus | Kein write_package |
| Webhook-Geheimnis | HMAC SHA-256 | Signaturprüfung im lokalen Listener | Monatlich oder nach Incident | Keine symmetrische Wiederverwendung mit PAT |
| SSH-Hostkey | known_hosts Pinning | Fernausführung vom Runner auf den Miet-Mac | Bei Host-Reimage | StrictHostKeyChecking=accept-new in Prod vermeiden |
Sieben reproduzierbare Schritte
- Unter Einstellungen → CI/CD ein Trigger-Token erzeugen und als maskierte Variable
OPENCLAW_TRIGGER_TOKENablegen—Prüfpunkt: Variable erscheint maskiert in der Job-Ausgabe. - Zwei Pipeline-Zeitpläne anlegen: Schedule A nachts mit
OPENCLAW_MODE=patrol, Schedule B vor dem Daily mitOPENCLAW_MODE=digest—Zeitzone explizit auf Region des RunMini-Knotens setzen. - Jobs an ein dediziertes Runner-Tag binden, z. B.
runmini-mac-mini, oder SSH mit fest gepinntem Hostkey nutzen—Prüfpunkt:gitlab-runner verifybzw. erfolgreicher Login-Test. - In
.gitlab-ci.ymlrulesso setzen, dass nurCI_PIPELINE_SOURCE==scheduleund passendeOPENCLAW_MODEdie Jobs starten—kein versehentlicher Push-Trigger. retry.max: 2fürrunner_system_failureundstuck_or_timeout_failureaktivieren—Auth-Fehler nicht endlos wiederholen.artifactsmitexpire_in: 12hund Pfadlogs/openclaw/—Digest-Job liest dieselbe Struktur.- Rollback dokumentieren: Zeitpläne deaktivieren, Trigger widerrufen, Webhook-Secret rotieren—ein Change-Request pro Vorgang.
Befehle, YAML-Auszug und Checkpoints
Befehle von einer gesicherten Admin-Workstation ausführen. Platzhalter ersetzen. Nach jedem Schritt den angegebenen Checkpoint verifizieren.
Pipeline sofort testen ohne auf den Cron zu warten
curl --request POST \
--form token="$OPENCLAW_TRIGGER_TOKEN" \
--form ref=main \
--form "variables[OPENCLAW_MODE]=patrol" \
"$CI_API_V4_URL/projects/$CI_PROJECT_ID/trigger/pipeline"
Checkpoint A: letzte Pipeline sichtbar
curl --header "PRIVATE-TOKEN: $READ_API_TOKEN" \
"$CI_API_V4_URL/projects/$CI_PROJECT_ID/pipelines?per_page=1"
Checkpoint B: Logdatei auf dem Mac nach Patrol
test -f logs/openclaw/patrol-$(date +%Y%m%d).log && echo ok
Minimaler .gitlab-ci.yml-Ausschnitt (Schedules + Retry + Artefakte)
stages: [openclaw]
.openclaw_template:
tags: [runmini-mac-mini]
retry:
max: 2
when:
- runner_system_failure
- stuck_or_timeout_failure
openclaw_night:
extends: .openclaw_template
stage: openclaw
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule" && $OPENCLAW_MODE == "patrol"'
script:
- mkdir -p logs/openclaw
- ./scripts/openclaw-patrol.sh | tee "logs/openclaw/patrol-${CI_PIPELINE_ID}.log"
artifacts:
when: always
paths: [logs/openclaw/]
expire_in: 12h
openclaw_morning:
extends: .openclaw_template
stage: openclaw
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule" && $OPENCLAW_MODE == "digest"'
script:
- ./scripts/openclaw-digest.sh
Log-Archiv lokal unter ~/Library/Logs/OpenClaw/ führen, ältere Tage mit gzip komprimieren, mindestens sieben Rotationen vorhalten. Fernzugriff vor Produktivnahme mit dem Hilfe-Center zu SSH/VNC abgleichen.
Zitierfähige Betriebsparameter
- Zwei automatische Retries decken transiente Runner-Ausfälle ab, ohne echte Auth-Fehler zu maskieren.
- Zwölf Stunden expire_in überbrücken typische Nachtfenster bis zum Morgen-Report.
- Fünf Minuten maximal akzeptierte Uhrenabweichung zwischen GitLab und Mac bei Webhook-Timestamps.
- Getrennte CI-Variablen pro Schedule verhindern, dass Widerruf einer Spur die andere lahmlegt.
FAQ zur Fehlersuche
- Pipeline steht auf „triggered“, OpenClaw auf dem Mac bleibt untätig
- Runner-Tag oder SSH-Ziel prüfen; im GitLab-Job-Log zuerst Authentifizierungs- und Pfadfehler eliminieren, erst danach OpenClaw-Konfiguration ändern.
- Webhook antwortet 401 mit frischem Token
- Proxy auf entfernte Authorization-Header testen, HMAC-Secret rotieren, IP-Allowlist und TLS-Policy verschärfen.
- Morgen-Zusammenfassung leer trotz grüner Nacht-Inspektion
- expire_in, Artefakt-Pfade und Datums-Globs im Digest-Skript verifizieren; sicherstellen, dass derselbe Branch und dieselbe
logs/openclaw/-Konvention genutzt werden. - Sollen Patrol und Digest ein Token teilen?
- Nein—getrennte Variablen pro Schedule erlauben gezieltes Widerrufen ohne den read-only-Report-Pfad zu blockieren.
Nächster Schritt: Dedizierten Apple-Silicon-Knoten für OpenClaw und GitLab-Jobs wählen—Preise öffnen, passendes Mac Mini-Paket wählen und auf kaufen.html ohne Anmeldung bestellen. Hilfe-Center für Fernzugriff, weiterführende Ops-Artikel im Blog.
Mac-Knoten für OpenClaw und GitLab CI wählen
Scheduled Pipelines auf einem stabilen Miet-Mac Mini fahren. Über die Startseite einsteigen, Pakete vergleichen, dann ohne Anmeldung mieten. Hilfe-Center für SSH/VNC, Blog für weitere Runbooks.