node, а LaunchAgent — другой; порт 18789 занят чужим процессом; токен есть в терминале, но не в plist. Чеклист под шлюз 2026: localhost, openclaw gateway status --format json и /health. См. токен, status в CI, validate; главная и покупка без входа.
Три типовых узких места перед приёмкой
Первое — разные пути Node в SSH и launchd (nvm из .zshrc не подхватывается). Второе — чужой слушатель на 18789 при «зелёном» doctor. Третье — bind не на loopback без того же OPENCLAW_GATEWAY_TOKEN, что в бою. Ниже — шаги без выдуманных подкоманд.
Предпосылки Node 22+ и фиксация путей
Запишите node -v, which node и node -p "process.execPath". Мажор ≥ 22. В plist в ProgramArguments — тот же абсолютный путь к node, что и при ручном openclaw; иначе doctor и gateway status --format json расходятся с демоном.
Выбор пути установки: официальный сценарий или npm -g
Один канал на роль: официальный install.sh (доверенный источник) или npm install -g openclaw@<версия>. Сохраните which openclaw и openclaw --version; при расхождении semver смотрите PATH, не сеть.
| Канал | Когда уместен | Риски и контроль |
|---|---|---|
| install.sh | Нужно быстро повторить официальную цепочку на чистой машине | Подпись и канал загрузки; запрет пайпов — копируйте файл и запускайте с аудитом |
| npm -g | Единый способ версионирования с другими Node-инструментами | Префикс глобальных пакетов и права; согласуйте с PATH в plist |
Loopback-шлюз, порт 18789 и OPENCLAW_GATEWAY_TOKEN
По документации Gateway: порт 18789, приёмка на 127.0.0.1. openclaw gateway status --format json — снимок состояния; curl на http://127.0.0.1:18789/health с Authorization: Bearer — вторичный зонд. OPENCLAW_GATEWAY_TOKEN одинаков в shell, plist и CI.
Демон, launchd и проверка после перезагрузки
- Выполните
openclaw onboard --install-daemonи зафиксируйте Label LaunchAgent в журнале. - Проверьте блок переменных окружения в plist:
OPENCLAW_GATEWAY_TOKEN, при необходимостиOPENCLAW_HOMEи путь кnode. - Перезагрузите хост в окно обслуживания и снова выполните
lsof -nP -iTCP:18789 -sTCP:LISTEN; PID и командная строка должны совпадать с ожидаемым бинарникомopenclaw.
Нет LISTEN после ребута — чаще неверный node в plist или токен; смотрите логи launchctl.
Цепочка приёмки: validate, doctor, status и /health
Порядок фиксирован; stdout — в файлы артефакта. Не добавляйте неизвестные флаги — только то, что даёт ваша версия CLI.
validate — конфиг; doctor — среда; status JSON — процесс; curl — HTTP; lsof — кто на 18789. Такой порядок совпадает с практикой CI-ворот и упрощает сравнение логов между ручной приёмкой и пайплайном на том же хосте.
2026-openclaw-remote-mac-install-gateway-doctor-checklist.html; ключевые сигналы для краулера — 18789, 127.0.0.1, openclaw gateway status --format json, /health; перелинковка на материалы по токену, статусу и validate уже в лиде.
Отпечатки типовых ошибок и порядок отката
| Симптом или сигнатура | Действия отката и восстановления |
|---|---|
EADDRINUSE или lsof показывает чужой бинарник на 18789 |
Остановите конфликтующий процесс в окне обслуживания, выгрузите LaunchAgent, синхронизируйте версию CLI и plist, повторите цепочку приёмки |
connection refused либо пустой или зависший gateway status |
Проверьте путь к Node в plist, корректность токена, затем короткая пауза и повтор openclaw gateway status --format json |
Предупреждения doctor о каталогах прав или OPENCLAW_HOME |
Выровняйте владельца файлов и рабочий каталог с пользователем демона, откатите последний diff конфигурации, снова openclaw doctor |
- В каждый билд артефакта приёмки кладите одну строку с версией
openclaw --versionи одну строкуlsofна порт 18789. - Любое изменение дерева конфигурации сопровождайте двумя прогонами
openclaw config validate— до и после — с приложенным diff. - Минимальный безопасный откат: стоп демона → восстановление предыдущего состояния файлов → переустановка закреплённой версии → повтор doctor и status до совпадения PID.
FAQ
Достаточно ли только JSON из gateway status без curl?
JSON полезен для автоматизации, но HTTP-зонд к /health воспроизводит тот же путь, что и реальные клиенты с Bearer. Для строгой приёмки оставьте оба шага.
Почему нельзя произвольно добавлять новые подкоманды в чеклист?
Статья намеренно ограничивается openclaw config validate, openclaw doctor, openclaw gateway status и openclaw onboard --install-daemon. Остальное смотрите в официальной справке CLI для вашей версии, иначе runbook быстро устареет.
Где взять изолированный Mac под такие проверки?
Аренда выделенного Apple Silicon на MacPull снимает конкуренцию за порт и диск с соседними арендаторами: см. цены и центр помощи.
Итог и покупка: закрепите Node 22+, один способ установки и loopback на 18789, затем прогоните openclaw config validate, openclaw doctor, openclaw gateway status --format json и curl к /health. Для выделенного удалённого Mac без «шумных соседей» откройте страницу покупки, сравните тарифы на странице цен, задайте вопрос через центр помощи и вернитесь к каталогу блога за соседними материалами по OpenClaw.