install.sh и глобальный npm, openclaw onboard --install-daemon, launchd, порт 18789, openclaw gateway status, почему каталог состояния вне облачной синхронизации, выбор региона рядом с Git и OCI, когда помогает M4 Pro 64 ГБ и порядок triage. Про сутки без простоя, heartbeat, pm2 — круглосуточный OpenClaw в той же папке, здесь только установка и первичная диагностика.Шесть «почти получилось» сценариев на облачном Mac
Арендованный Mac — не тот ноутбук, на котором пять лет копились костыли. Образ тоньше, сессии короче. Если мыслить одной строкой curl и npm -g, вы теряете Label launchd, рабочий каталог, stdout, PATH, которые пишет openclaw onboard --install-daemon. Первый сценарий: дрейф версий — openclaw gateway status указывает на одну сборку, а launchctl — на другой префикс. Второй: порт 18789 занят health-сервисом, вы видите «плавающие» ошибки API. Третье: каталог состояния в iCloud, Dropbox, корпоративной синхронизации — sqlite ломается волнами, процесс вроде жив, записи падают. Четвёртое: регион далеко от Git, registry, npm-зеркала, мелкий I/O при установке сыпется как битая сборка. Пятое: мало unified memory при пачке skills и кэшей, swap маскируется под «модель тупит». Шестой: не тот порядок triage — сначала правят конфиг, потом вспоминают openclaw gateway status. Суточный режим, pm2, heartbeat смотрите соседнюю статью. С CI на том же диске — кэш Xcode и лог-шторм конкурируют по I/O. Много-регион: гайд для RTT. EDR, антивирус в реальном времени, — отдельная нагрузка на тот же том. M4 Pro 64 ГБ снимает давление кучи и swap, не сокращает океан RTT. Внутренняя CA, прокси CONNECT, сроки сертификатов важнее «ещё терафлопа GPU».
Субагенты, другие long-running, cron и login-items на том же user — риск коллизий портов и logrotate, держите реестр. «Глобальный стандарт» из одного региона, перенесённый без цифр, даёт иллюзию одинаковой установки.
Нет тега релиза и major Node в Confluence, только copy-paste.
Нет openclaw onboard --install-daemon или нет launchctl list — VNC-сеанс не прод.
18789 вне ведомственной карты — lsof, status, список владельцев.
State в sync — снимок в объект, не туда-сюда облако. Логи с секретами — чистить.
Регион не там — сначала геометрия, потом 64 ГБ.
Смешали npm-ошибку и OOM — runtime в статье 24/7.
Далее: таблица путей, порт, каталог, регион. Субсети, mTLS, zero trust, split DNS, свои registries, обязанности SRE, FinOps, Sec — всё в одной строке тикета иначе «что-то в облаке» снова. E2E-acceptance: холодный reboot, одинаковый openclaw --version до и после. «Сегодня на лаптопе работало» не аргумент, если which в login и launchd не совпал. 18789 и кастом — в одной матрице. 64 ГБ с графиком swap, без графика — шум. Репозиторий monorepo с жёстким Node — npm -g, но путь в plist. Федеративные AD/IdP, ротация токенов в выходной — план. Лог-агрегатор, хранение PII — отдельный DPA, не «свалить в S3».
install.sh, 18789, state: поля, которые сходятся в triage
one-liner — быстрее всего дать одинаковый вход на пустой VM. npm -g — если Node, proxy, artifactory уже закреплены, но nvm shims невидимы в launchd — абсолютные пути. openclaw gateway status валидирует совпадение. 18789 — локальная health-плоскость, не трафик к LLM. 127.0.0.1 vs 0.0.0.0 — влияет на zero trust, SSH-туннели, k8s-probe. M4 Pro 64 ГБ — много skills, headless browser, векторный кэш, одновременно, без лишнего RTT-ожидания. NVMe+swap+лог+state — квота отдельно, иначе «докупили чип, а I/O в красной зоне». EDR, скан, NAS — I/O, не «модель плохая». OCI+npm+Git+LLM в одной экономической зоне снижает p95 установки. Сертификат и clock skew — внешние, но сыпятся как внутренняя npm. 18789 не менять без changefree и без обновления закладок. Регистрация 18789 в service-catalog. Лог-дамп без редактирования — риск утечки, маска и инцидент ID. 64 ГБ + RTT в одной строке бюджета — путаница, разносить. Ночной OOM, дневной 24 ГБ — две строки или две роли, не «магия тумблера».
| Путь | Кому подходит | onboard |
|---|---|---|
| install.sh / one-liner | чистая машина, 30 минут, один runbook | затем openclaw onboard --install-daemon |
| npm -g | фикс Node, внутреннее зеркало | abs node/openclaw в plist |
Следующая таблица — порт, state, регион. Цены и оформление — в одной ветке, не «тихий чат». 18789 и кастом: две ячейки, не сливать. Мульти-облачные peering, латентность trans-ocean, split-brain DNS — внешние, но сыпят внутрь. Длинные выходные: ротация внутр CA, риск, что npm и docker pull одновременно краснеют — календарь, не only git blame. 64 ГБ и «ещё 200 ГБ NVMe» — обе цифры, не одна. «Только 18789 свободен» без bind-строки — пусто. «state локально» без пути — пусто. «регион Сингапур» без ping до registry — пусто. Triage, когда 18789 занят: не kill -9 по инерции, а владелец, расписание, autossh. 18789 и sidecar-контейнер: docker-proxy иногда впереди, lsof путает, смотрите и PID, и PPID, и who listens first.
| Элемент | По умолчанию | Сначала |
|---|---|---|
| Lo health | 18789 | lsof, status bind, who else |
| State | быстрый диск, не sync | iCloud, EDR, NAS, time machine to SMB |
| Регион | у Git+registry | RTT, proxy, internal DNS, routing |
Одна ветка бинарника, одна ветка launchd, один bind, одна папка state без синхронизации, один согласованный RTT-контур — и тогда 64 ГБ не прикрывают сеть, а сеть не прикрывают кэш.
M4 Pro 64 ГБ — когда одновременно: gateway+skills+кэш+возможно E2E-браузер, и график swap > бюджета. «Купим чип, разберёмся с RTT потом» — плохой порядок. 18789 смена — co-change для всех, кто парсит URL. Реплика state на объект для аварий — ok, iCloud two-way — нет. Пятничный инц «странно тормозит» часто: sync, EDR, не enough disk, не 64 ГБ. 18789 и IPv6: если слушаем только v4, а check — v6, зелёный/красный враньё. 18789 и k8s hostNetwork: путаница порт-неймспейс. 64 ГБ, если лог-шторм на том же диске — вначале logrotate+quota, не память. Трансграничный PII в логах — юр.риск, не SRE-ноутка. 18789 в service mesh — отдельный virtualService. Восемь вариантов, но суть: таблица, цифры, владелец, не ощущение.
Сначала status и launchd, потом .env, потом реинсталл
Сначала убедитесь, что openclaw gateway status описывает тот же бинарник, что launchctl list и выбранный вами префикс установки, затем проверьте, что порт 18789 свободен для того bind, который задокументирован. Каталог состояния вне облачной двусторонней синхронизации и вне сетевых файловых систем с пессимистическими блокировками, иначе вы получите волны sqlite-ошибок при «зелёном» процессе. Сравните which openclaw в интерактивной оболочке и в среде, которую видит launchd: если nvm, asdf или корпоративный shims, абсолютные пути в plist или тонкий wrapper обязательны. Для внешних вызовов: TLS к Git, OCI, LLM, корпоративный прокси, корректное время, список доверия — до правок модели. Длительный uptime, pm2, heartbeat согласуйте с круглосуточной статьёй, иначе появятся два независимых супервизора. Логи с токенами — маскировка, минимальный пакет для инцидента, срок хранения. Если health-check идёт через HAProxy, согласуйте SNI, HTTP и путь, а не сравнивайте «200» с mTLS-эндпоинтом. Память 64 ГБ не снимет перегруженные gzip-ротации в том же разделе: сначала I/O, потом увеличение RAM. Когда на одной системе две учётки с разным HOME и state, путаницу triage снимают раздельные runbook-страницы, а не угадывание. На macOS важны TCC, SIP и доступ к диску для демонов, не «просто поставим npm».
1) openclaw gateway status 2) lsof 18789 или custom 3) launchctl, plist, prefix 4) state: локальный, без sync, без сети с блокировками 5) which node, which openclaw: shell vs launchd 6) Git, registry, API, TLS, proxy, time
Рекомендация: порт+state+Node major в одно окно, status зелёный, затем prod.
Шесть шагов: пустой облачный Mac до audit reboot
Закрепите в wiki Node, путь, выбор install.sh либо npm, тег релиза и, при необходимости, corepack. Установите CLI и сверьте openclaw --version с заметками к выпуску. Выполните openclaw onboard --install-daemon, сохраните путь к plist, Label, stdout, убедитесь через launchctl, что job загружен, и не меняйте 18789, пока не увидите явный конфликт. Запустите openclaw gateway status: адрес прослушивания, родительский процесс, нет привязки к интерактивной сессии. Разместите state и логи на быстром локальном разделе, настройте ротацию и свободное место; при совместной нагрузке с CI разделяйте владельцев и, при доказанном swap, обсудите M4 Pro 64 ГБ. Сделайте холодный перезагруз, снова проверьте status, прогоните лёгкий сценарий, затем свяжите долгий uptime с руководством 24/7. Аренда и смена калибра: цены и оформление — так закупка остаётся в аудите. Слушать 0.0.0.0 без ACL в проде — плохая идея; туннель или пограничный health по договорённости. Считайте, что 403, 429, 502 от внешних API, отказ диска и OOM — разные классы инцидентов, не прикрывайте их одной заявкой «модель глючит».
Node, тег, путь, wiki, corepack, корп. CA.
openclaw --version к релизу, npm — wrapper launchd.
onboard, plist, launchctl, 18789 не трогать без конфликта.
openclaw gateway status, 127.0.0.1, туннель, ztn.
state, лог, квота, 64 ГБ с swap-графиком.
reboot, малый трафик, сутки для long-run.
Три строки для бюджета/арх-ревью
Воспроизводимость: вторая машина, тот же tag+Node+onboard+reboot+status.
18789 = учёт, не пятничный kill.
регион, RAM, диск, RTT, отдельные строки.
Внимание: VNC, держащий процесс, не production; это «живой ноутбук».
По сравнению с разнородным парком ноутбуков, облачные Mac M4 и M4 Pro в одной линейке сферы с явным регионом и сроком аренды удобнее вписываются в opex, runbook и реестр портов: одна и та же матрица install, launchd, 18789, state, RTT. KVMNODE даёт мульти-регион, несколько калибров и прозрачные цены вместе с оформлением заказа — пилот на неделю, измерения swap и задержек, затем фиксированный 64 ГБ при необходимости, вместо срочных «ещё одна машина в чате». Суточный режим и pm2 согласуются с статьёй о постоянном агенте, чтобы install-runbook и 24/7-runbook не разошлись. Когда 18789 ведёт учёт владельца, state локален, регион прижат к репозиторию и реестру, openclaw gateway status идентичен после холодного рестарта, а заявка на 64 ГБ сопровождается графиком memory pressure, финансисты и платформа смотрят на одни и те же цифры, а on-call в понедельник не начинает расследование с нуля.