Когда OpenClaw живёт месяцами на постоянно арендованном Mac, обновление перестаёт быть «npm install и перезапуск»: появляются два региона, фоновые webhook и GitHub delivery, плюс внутренний зонд на порту 18789, который нельзя «заглушить» заглушкой без реального RPC. После линии релизов 2026.5.7 многие команды разводят два параллельных каталога установки — условно «зелёный» и «синий» — чтобы катить пакет без остановки каналов. Ниже — практическая схема для US East и APAC, сравнение blue-green и rolling, чеклист непрерывности callback-ов и матрица «откатить дёшево / сохранить SLA». Тонкости проб и долгих транспортов удобно сопоставить с разбором OpenClaw на Kubernetes: Helm, пробы и CrashLoopBackOff — там же видно, как ложноположительный liveness ломает именно «здоровый» процесс, который долго поднимает RPC.
1. Два каталога и линия 2026.5.7: зачем разделять префиксы
Идея проста: каталог A обслуживает текущий launchd и симлинки CLI, каталог B получает новую версию пакета, прогон doctor и пробный gateway status --require-rpc. После переключения симлинка трафик идёт в B, а A остаётся как горячий откат. Линия 2026.5.7 в ченджлогах обычно означает сдвиг путей плагинов или формата локального кэша — поэтому «поверх старого каталога» рискованно: дубликаты minGatewayVersion и рассинхрон секретов дают плавающие 401. Зафиксируйте в runbook два абсолютных префикса, одну переменную окружения для канареечного запуска и запрет на правку «живого» каталога без смены симлинка.
node_modules между ними без явного копирования артефакта релиза.2. Blue-green против rolling на одной железной ноде
Синий-зелёный на одном Mac — это два префикса плюс атомарное переключение порта или upstream в reverse-proxy. Выигрыш — секунды простоя и предсказуемый откат. Rolling внутри одной машины — последовательная замена бинарей в одном префиксе; дешевле по диску, но выше риск «полупереходного» состояния для webhook-воркера. Для GitHub delivery выбирайте blue-green, если нельзя терять стабильный URL; rolling оставьте для патчей без смены HTTP-контракта. В обоих случаях держите отдельный лог на версию каталога.
3. US East и APAC параллельно: маршрутизация и секреты
Две ноды в разных регионах — не зеркало по умолчанию: у каждой свой набор токенов, свой DNS для внешних callback и свой uplink. Внешний балансировщик должен уметь липкую сессию только там, где это нужно агенту; для GitHub — наоборот, идемпотентность по заголовку доставки. Согласуйте часы ротации TLS и единый реестр секретов, иначе «зелёная» нода в Сингапуре пройдёт doctor, а GitHub упрётся в старый сертификат на востоке США. Если всплывают тайм-ауты на длинных транспортах MCP, сверьтесь с практикой из stdio, Streamable HTTP и ENOENT — те же классы ошибок проявляются, когда webhook дергает инструмент в контейнере с укороченным PATH.
4. Зонд 18789 и непрерывность webhook / GitHub
Порт 18789 в экосистеме OpenClaw трактуйте как «канал здоровья шлюза», а не как замену бизнес-пробы. Наружный мониторинг должен совпадать с тем, что реально проверяет status --require-rpc: иначе оркестратор увидит зелёный TCP, пока HTTP уже отдаёт 503. Для webhook включите очередь повторов на стороне отправителя и лимит параллелизма на приёмнике; для GitHub — проверьте подпись и логируйте X-GitHub-Delivery, чтобы дедуплицировать повторные POST. На время переключения симлинка держите «drain» секунды: воркер дочитывает очередь, новые события уходят на вторую ноду или в буфер SQS-совместимого слоя.
5. Градация железа и дешёвое расширение SSD
Для долгой аренды выгоднее заранее выбрать Mac mini M4 с запасом SSD, чем лечить нехватку места скриптами в проде. Градация: базовый уровень — шлюз и лёгкие плагины; средний — плюс локальный кэш моделей; верхний — совмещение с короткими CI-джобами на той же ноде. Расширение диска как отдельная строка в счёте почти всегда дешевле скачка на следующий SKU по RAM «на всякий случай». Ротация логов и вынос архивов в объектное хранилище снижают риск ночного падения по диску во время blue-green копирования каталога B.
6. Матрица отката и денег
Используйте таблицу ниже как шаблон совета финансам и дежурным: она связывает сценарий с длительностью простоя и стоимостью «лишней» ноды.
| Сценарий | Действие | SLA / деньги |
|---|---|---|
| Регрессия HTTP после релиза | Симлинк обратно на каталог A, перезапуск только демона | Минуты простоя; без второй ноды |
| Поломка плагина в одном регионе | Выключить канал на APAC, трафик на US East | Выше счёт за вторую ноду, ниже потери событий |
| Исчерпан диск во время копирования B | Отменить cutover, очистить стейдж, заказать SSD заранее | Дешевле, чем аварийное расширение в пике |
| Потеря webhook-секрета | Ротация в GitHub + синхронное обновление обеих нод | Короткое окно 401; готовьте заготовленный play |
7. Перекрёстная приёмка doctor и status
Чеклист из четырёх шагов: openclaw doctor в каталоге B под тем же пользователем, что и launchd; openclaw gateway status --require-rpc; ручной curl /v1/models с продовым Authorization; наконец, внешняя проверка порта 18789 с тем же TLS, что у клиентов. Расхождение «doctor чист, status красный» почти всегда указывает на разный PATH или прокси между интерактивной оболочкой и демоном. Сохраняйте оба вывода в тикет релиза — это ускоряет повторяемый откат.
- Одинаковые переменные среды для интерактива и для plist-юнита.
- Отдельный лог cutover с меткой симлинка и версии npm.
- Таблица тайм-аутов: балансировщик, прокси, upstream — согласованы для стрима.
- Реплика секретов US East ↔ APAC до переключения DNS на новый релиз.
8. Краткий FAQ
Можно ли обойтись одним каталогом? Для коротких аренд — да; для постоянной ноды с GitHub лучше два префикса.
Ловит ли 18789 сбой TLS? Только если проверка повторяет реальный клиентский рукопожатие; иначе добавьте внешний blackbox.
Что делать с дублями доставки GitHub? Идемпотентность по X-GitHub-Delivery и короткий TTL кэша на приёмнике.
Почему долгий OpenClaw удобнее держать на Mac mini и macOS
Для шлюза и фоновых воркеров важны стабильный Unix-стек, предсказуемые таймеры launchd и низкий шум железа при суточной нагрузке — это профиль macOS на Apple Silicon. Mac mini M4 даёт высокую пропускную способность памяти при умеренном энергопотреблении в простое, а Gatekeeper, SIP и FileVault снижают класс риска подмены бинарей на общей ноде. Стоимость владения такого узла при месячной аренде часто ниже, чем у громоздкого ПК с доработкой под круглосуточный режим и тем же классом IOPS. Если вы планируете закрепить blue-green на выделенном железе в двух регионах, Mac mini M4 — разумная базовая точка: откройте главную страницу Macstripe, согласуйте регион US или APAC и объём SSD под копирование второго каталога. Сейчас удобно зафиксировать конфигурацию под долгую аренду — Mac mini M4 остаётся самым доступным входом в выделенный Apple Silicon без лишнего шума в стойке.