openclaw@2026.5.x на сервисном удалённом Mac, пройти порог Node 24 в соответствии с актуальной документацией ветки релиза, выбрать ровно один канал установки (curl install.sh из официального зеркала или npm install -g), поднять onboard и демон, затем связать openclaw gateway status, openclaw doctor и openclaw config validate с понятным чтением JSON и tarball-чекпоинтом перед рискованными правками. Связанные материалы: ворота validate в CI, status JSON и doctor, неинтерактивный onboard, чеклист установки шлюза, prefetch и шлюз.
Три боли на загруженном раннере:
- Расхождение рантайма. Интерактивный SSH показывает Node 24 из менеджера версий, а LaunchAgent поднимает другой
node; шлюз 2026.5.x падает на старте или ведёт себя нестабильно. - Двойная установка. Смешение
curl … install.shи глобального npm без явного удаления даёт два бинарникаopenclawв PATH и недетерминированные артефакты CI. - Каскад без снимка. Частые git pull и предзагрузка зависимостей ускоряют доставку, но один неверный блок в
openclaw.jsonмножит отказы по job; без архива конфигурации откат превращается в ручной квест.
Матрица: curl install.sh против npm -g
| Канал | Когда выбирать | Риски и контроль |
|---|---|---|
curl … | bash по шагам из upstream |
Нужен повтор документации quickstart один в один, минимум локальной npm-политики | Зафиксируйте URL и хеш скрипта в runbook; запретите «плавающий» редирект без ревью |
npm install -g openclaw@^2026.5.0 с последующим пином минора |
Корпоративное зеркало npm, централизованные апрувы semver, единый кеш артефактов | Включите openclaw --version в начало каждого job; не смешивайте с curl-путём на том же хосте |
На MacPull, где команды параллелят высокочастотные pull и заранее прогревают кеши CocoaPods, npm или контейнерных слоёв, стабильный шлюз снижает число «ложных» падений пайплайна: пока doctor зелёный и validate даёт нулевой код, агенты и prefetch-скрипты не упираются в полуподнятый сервис.
Минимально воспроизводимые шаги
Шаг 1. Порог Node 24. В документации 2026.5.x закреплён ориентир на Node 24 как на поддерживаемый контур для шлюза; выровняйте golden-образ и учётку раннера заранее. Печатайте node -v из shell, который совпадает с тем, что попадёт в plist через абсолютный путь к бинарнику, без надежды только на .zshrc.
Шаг 2. Установка одним каналом. Либо официальный curl install.sh с проверенного источника, либо npm install -g с диапазоном, ограниченным 2026.5.x; задокументируйте выбор в README сервиса.
Шаг 3. Каталоги и чекпоинт. Экспортируйте OPENCLAW_HOME и OPENCLAW_CONFIG_HOME, выставьте права chmod 700, затем создайте архив до правок:
ts="$(date -u +%Y%m%dT%H%M%SZ)"
tar czf "${OPENCLAW_CONFIG_HOME}/../openclaw-config-${ts}.tgz" \
-C "${OPENCLAW_CONFIG_HOME}" .
shasum -a 256 "${OPENCLAW_CONFIG_HOME}/../openclaw-config-${ts}.tgz" | tee "${OPENCLAW_CONFIG_HOME}/../openclaw-config-${ts}.sha256"
Шаг 4. Onboard и демон. Выполните openclaw onboard для сервисного пользователя, затем openclaw onboard --install-daemon, чтобы перезагрузки macOS не гасили шлюз; сверьте переменные окружения в LaunchAgent с SSH-сессией.
Шаг 5. status и doctor. Снимите openclaw gateway status в машиночитаемом виде и openclaw doctor; объедините вывод в один лог CI по образцу ворот из соседней статьи про status JSON.
Шаг 6. validate. Запустите openclaw config validate с явным путём к JSON при необходимости; интерпретацию см. ниже.
Шаг 7. Откат. Остановите демон, распакуйте tarball обратно в OPENCLAW_CONFIG_HOME, при смене semver переустановите прежний диапазон npm, перезагрузите launchd и повторите цепочку приёмки из шагов 5–6.
node в SSH и plist; (2) один канал установки openclaw; (3) артефакт CI содержит openclaw --version, фрагмент status, вывод doctor и JSON validate с нулевым кодом; (4) checksum tarball лежит рядом с архивом.
Как читать JSON-вывод config validate
Машиночитаемый ответ обычно разделяет корректные пути и список issues. Каждая запись issues несёт указатель на поле — JSON Pointer вроде /agents/0/providers или точечную нотацию, совпадающую с ветвью в openclaw.json. Трактуйте это как адрес правки: откройте файл ровно по этому пути, исправьте тип, обязательный ключ или ссылку на секрет, затем перезапустите validate. Не полагайтесь только на человекочитаемый хвост stderr, если в CI включён парсер JSON — он должен стать единственным источником истины для ворот merge. Подробнее про автоматизацию ворот см. отдельный материал.
FAQ
Для ранних миноров это иногда проходило, но линия 2026.5.x в документации опирается на Node 24; смешение 22 и 24 между job на одном Mac даёт трудноуловимые регрессии движка и разъезжающиеся логи поддержки.
gateway status отвечает на вопрос «что шлюз декларирует», а doctor проверяет среду исполнения: PATH, права на каталоги, несостыковки переменных, которые статус может не показать.
Когда шлюз стабильно поднят, сценарии предзагрузки индексов и пакетов из материала про RAG и prefetch не упираются в рестарт посреди ночного прогона; при частых pull это экономит wall-clock очереди на общем удалённом Mac.
Публичные шаги MacPull без входа
Выберите выделенный удалённый Mac под CI, зафиксируйте образ с Node 24 и повторяемой цепочкой приёмки шлюза. Публичные страницы без обязательного входа: главная, цены, аренда и покупка, центр помощи, каталог блога.
Удалённый Mac под OpenClaw и CI
Стабильный шлюз и предсказуемая сеть снижают флаки при частых pull. Ниже только открытые страницы сайта.