AI / Automation 17 апреля 2026 г.

2026-04-17 OpenClaw onboard и install-daemon на безголовом арендованном облачном Mac

MacXCode Engineering Team 17 апреля 2026 г. ≈15 мин чтения

npm-дистрибутив OpenClaw 2026 подчёркивает CLI-first: глобальная установка, openclaw onboard, затем LaunchAgents для шлюза. На арендованном Apple Silicon Mac, доступном только по SSH, счастливый путь прост — пока не встретятся GUI-промпты, отсутствующие переменные окружения или Node на два мажора позади. Гайд 2026-04-17 закрывает пререквизиты, пинning, создание демона и проверки в HK / JP / KR / SG / US. После чистого старта читайте апгрейд и откат шлюза, секреты через launchd и health probes до публикации webhook.

Пререквизиты: аккаунты, порты, политика

  • Исходящий HTTPS — задокументируйте allowlist для корпоративных арендаторов.
  • Локальный bind — по умолчанию 127.0.0.1:18789; публичный трафик через nginx.
  • Контекст пользователя — ставьте под тем же POSIX-пользователем, что владеет CI/операторскими сессиями.

Пин версии Node (22 LTS vs 24)

Свежие сборки рекомендуют Node 24, пол Node 22.16+. fnm/nvm/pkg ок, но зафиксируйте в IaC. Сохраните node -v и npm -v рядом с redacted openclaw.json.

node -v && npm -v && which node

Не смешивайте системный /usr/bin/node и Homebrew — у launchd минимальный PATH; при необходимости абсолютные пути в EnvironmentVariables.

SSH и неинтерактив

Экспортируйте ключи провайдера до onboard. Для полностью неинтерактива: export VAR=… в той же оболочке, что и openclaw onboard, или source защищённого dotfile с правами 0400. Проверьте флаги --yes для вашей semver.

Установка CLI (пин, без дрейфа)

Продакшен на явную версию вроде 2026.4.x, не «первый хост тянет @latest».

npm install -g openclaw@2026.4.15

После установки openclaw --version и stdout в CMDB.

Запуск openclaw onboard --install-daemon

Подкоманда ведёт через выбор модели, дефолты воркспейса и установку демона. На headless заранее создайте ~/.openclaw с нужными ACL. После --install-daemon должен появиться plist в ~/Library/LaunchAgents (точное имя зависит от версии, например ai.openclaw.gateway).

СигналЗдоровоНе здорово
Код CLI0 и сводка «daemon installed»Неноль / EACCES на каталог plist
Файлыplist + каталог логовЧастичный ~/.openclaw без LaunchAgents
Портыcurl localhost окAddress already in use от старого процесса

Проверка launchd и дубликаты

Bootstrap через launchctl bootstrap gui/$UID …, затем сразу openclaw doctor по восстановлению дубликатов. Повторный onboard без unload наращивает plists.

Здоровье, логи, когда nginx

Лёгкие curl из readiness: крутите 127.0.0.1 до HTTP 200, затем TLS-терминация на nginx. Первый handshake — tail ~/.openclaw/logs (или OPENCLAW_STATE_DIR).

Стабильный первый узел → клонируйте плейбук во второй регион через pricing, не перегружая один Mac Xcode-ночами и постоянным AI-шлюзом. Mesh вместо публичных портов — Tailscale. Контейнеры — Docker vs native; здесь npm-native.

Teams comparing terminal agents: see our бенчмарк Codex CLI vs Claude Code M4 (Terminal-Bench 77,3% vs 65,4% на арендованном хосте).

FAQ: первая установка на облачных Mac

ВопросОтвет
Onboard из tmux?Да — загрузите тот же блок окружения; tmux часто теряет переменные launchd.
Конфликт 18789?Остановите старые шлюзы, unload устаревших plist, doctor снова; задокументируйте кастомные порты в nginx upstream.
Проще ли Docker?Другие компромиссы — см. сравнение; статья про npm-native.

Итог: закрепите Node и semver npm, экспортируйте секреты до SSH, один раз чисто поставьте демон, проверьте doctor+curl — и только потом ужесточайте.

Выделенный M4 для OpenClaw и Xcode sidecars

SSH в приоритете · HK · JP · KR · SG · US