2026 OpenClaw на аренде Mac Mini: Upptime или Uptime Kuma Webhook — срезы ночных задач 7×24, тихое окно UTC, backoff и слияние health в минимально воспроизводимых шагах
Команды с OpenClaw 2026.5.x на арендованной Mac Mini подключают Upptime или Uptime Kuma как HTTP Webhook без тяжёлого APM. Ниже — шаблон URL, UTC тишина, backoff, merge health и проверка за шлюзом: боли, матрица, семь шагов HowTo, факты и FAQ.
Серия OpenClaw: обзор в блоге, Healthchecks.io, runbook дашборда. Долгий контур и самовосстановление — гайд 7×24. Оформление доступа — страница аренды и тарифы.
Три боли, если вебхук стреляет напрямую в воркер без политики
- Шторм уведомлений. Каждый микросбой ночного среза превращает Upptime в десяток POST подряд без окна тишины и без накопителя backoff на вторичном канале.
- Расщепление источников истины. Три независимых монитора Kuma шлют разные тела JSON, и OpenClaw не может сопоставить границы срезов с единым batch_id в логах шлюза.
- Скрытый разрыв TLS или SNI. Внешний SaaS бьёт в публичное имя, а процесс слушает только loopback на арендованном узле без корректного reverse proxy и доверенных заголовков.
Матрица: Upptime, Uptime Kuma и объединённый synthetic health
Выбор контура для одной Mac Mini с OpenClaw: где проще держать секрет URL и как уменьшить шум эскалаций.
| Критерий | Upptime | Uptime Kuma | Merge health |
|---|---|---|---|
| Модель запуска | GitHub Actions по расписанию репозитория | Постоянный процесс на вашем VPS или второй Mac | Небольшой агрегатор статусов перед одним POST |
| Секрет вебхука | GitHub encrypted secret в workflow | Поле Custom Webhook в UI Kuma | Один общий токен на выходе агрегатора |
| Шум при флапе | Высокий без throttle между job | Средний, настраиваются retries | Низкий при majority и гистерезисе |
| Когда выбирать | Уже живёте в GitHub и хотите историю коммитов статусов | Нужен гибкий JSON и визуальные панели | Несколько зондов должны сойтись перед срезом |
Предусловия: macOS на аренде, сеть и версии
Apple Silicon, входящий HTTPS или туннель с фиксированным именем, Python или Node для CLI OpenClaw 2026.5.x, том логов с запасом inode. Keychain не должен блокировать неинтерактивный запуск агента под пользователем plist launchd.
Установка OpenClaw и базовая конфигурация приёмника
CLI из официального канала, OPENCLAW_HOME на APFS, inbound webhook в YAML: listen 127.0.0.1 и проброс nginx. Логи шлюза info и stdout агента — для batch_id без утечки токена.
Webhook URL, тихое окно UTC, backoff и слияние проверок
Шаблон точки: https://hooks.runmini.example/openclaw/inbound?token=REDACTED, JSON с status, slice_index, batch_id. Тишина: SILENCE_UTC=02:00-05:00; наружу — счётчик отложенных алертов. Backoff: старт 30 с, множитель 2, потолок 600 с на вторичный канал; шлюз пишет всё.
Merge: три внутренних GET → один synthetic POST; два красных подряд открывают инцидент, один жёлтый не стопорит срез.
POST /openclaw/inbound?token=$OC_SECRET
Content-Type: application/json
{"status":"degraded","batch_id":"night-20260511-01","slice_index":3,
"sources":[{"n":"edge","ok":true},{"n":"queue","ok":false},{"n":"disk","ok":true}]}
Шлюз и обратный прокси перед OpenClaw
Терминируйте TLS на nginx или caddy, пробрасывайте на 127.0.0.1:PORT OpenClaw и доверяйте только заголовкам X-Forwarded-Proto от своего балансировщика. Ограничьте rate limit по IP Uptime Kuma и Upptime runner, добавьте mTLS между Kuma и шлюзом, если политика арендатора требует zero-trust. Проверьте цепочку SNI и журнал отказов при несовпадении сертификата с именем хоста в UI Kuma.
launchd для постоянного контура 7×24 на Mac Mini
Используйте RunAtLoad, KeepAlive с успешным кодом и ThrottleInterval не меньше 30 секунд, чтобы не крутить рестарт при кратковременной деградации сети. После старта вызывайте локальный curl health порта и пишите код выхода в тот же лог, что и шлюз, для единой временной шкалы.
Семь шагов минимального воспроизведения HowTo
- Установите OpenClaw 2026.5.x, создайте каталог
OPENCLAW_HOMEи права только владельцу агента. - Включите inbound webhook, сгенерируйте секрет и сохраните полный URL в зашифрованном секрете GitHub или в поле Kuma без логирования значения.
- Поднимите nginx с TLS и proxy_pass на loopback порт процесса OpenClaw.
- Зарегистрируйте Custom Webhook в Kuma или шаг workflow в Upptime с JSON телом и batch_id.
- Добавьте UTC тишину и backoff в обёртку shell перед вызовом вторичного уведомителя.
- Реализуйте merge majority из трёх внутренних проверок перед единым POST наружу.
- Опишите plist launchd, загрузите через
launchctl bootstrap, проведите учения с искусственным статусом degraded.
Четыре опорных факта для постмортема и слайдов
- Потолок backoff 600 секунд обычно сохраняет внимание дежурного без спама при часовой деградации канала арендатора.
- ThrottleInterval 30 секунд на рестарт агента снижает риск петли при флапе сети между двумя датацентрами.
- Правило majority из трёх зондов перед POST отсекает до половины ложных ночных инцидентов на нестабильном edge.
- Единый batch_id в теле вебхука и в stdout шлюза сокращает время расследования до одного grep по журналу.
FAQ: поиск неисправностей
- Получаю 502 только из Kuma но не из локального curl
- Сравните заголовок Host и цепочку TLS, отключите проверку сертификата только во временной лаборатории, затем верните строгий режим после выпуска доверенного cert.
- Двойной POST на один slice_index
- Включите идемпотентный ключ в шлюзе с TTL пять минут и логируйте отброшенные дубликаты отдельным событием info.
- Тишина UTC проглотила реальный пожар
- Разведите каналы: критичный статус disk_full всегда пробивает тишину, остальные уважают SILENCE_UTC.
- Где смотреть долгий контур OpenClaw
- См. гайд по самовосстановлению 7×24 и чеклист рестартов launchd.
Узел RunMini, тарифы и помощь
Закрепите аренду Mac Mini под ночной контур с вебхуками: главная, тарифы, оформить аренду, центр помощи SSH и VNC, каталог блога.
Рядом: cron fan-out, установка OpenClaw.