2026 OpenClaw auf gemietetem Mac Mini: GitLab CI Scheduled Pipeline für Nacht-Inspektion und Morgen-Zusammenfassung

Lesezeit: 9 Min.

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

  1. Zu breite PATs: Personal Access Tokens mit api-Scope exponieren bei Leck das gesamte Projekt—Audit und Rotation werden teuer.
  2. Ungehärtete Webhooks: Öffentliche Endpunkte ohne HMAC, IP-Allowlist und strikte Header-Validierung erzeugen Replay- und Rauschalarme.
  3. 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

  1. Unter Einstellungen → CI/CD ein Trigger-Token erzeugen und als maskierte Variable OPENCLAW_TRIGGER_TOKEN ablegen—Prüfpunkt: Variable erscheint maskiert in der Job-Ausgabe.
  2. Zwei Pipeline-Zeitpläne anlegen: Schedule A nachts mit OPENCLAW_MODE=patrol, Schedule B vor dem Daily mit OPENCLAW_MODE=digest—Zeitzone explizit auf Region des RunMini-Knotens setzen.
  3. Jobs an ein dediziertes Runner-Tag binden, z. B. runmini-mac-mini, oder SSH mit fest gepinntem Hostkey nutzen—Prüfpunkt: gitlab-runner verify bzw. erfolgreicher Login-Test.
  4. In .gitlab-ci.yml rules so setzen, dass nur CI_PIPELINE_SOURCE==schedule und passende OPENCLAW_MODE die Jobs starten—kein versehentlicher Push-Trigger.
  5. retry.max: 2 für runner_system_failure und stuck_or_timeout_failure aktivieren—Auth-Fehler nicht endlos wiederholen.
  6. artifacts mit expire_in: 12h und Pfad logs/openclaw/—Digest-Job liest dieselbe Struktur.
  7. 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.

OpenClaw nächtlich automatisieren: Bestellen, Hilfe, Blog.

Mac Mini für OpenClaw + GitLab mieten