2026-04-17 OpenClaw onboard и install-daemon на безголовом арендованном облачном Mac
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).
| Сигнал | Здорово | Не здорово |
|---|---|---|
| Код CLI | 0 и сводка «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