Когда удалённый Mac mini M4 Pro с OpenClaw уже обслуживает не «одно сообщение туда-обратно», а от двух до пяти проектов или клиентов одновременно, точкой отказа перестаёт быть путь установки. Реальный риск — это скрытая совместность по пяти осям: данные, учётные данные, модели, плагины и порт шлюза. Один клиент обновил плагин ClawHub — у другого падают сессии. Один проект использует ту же API-ключ, что и другой, и лимит провайдера срабатывает на всех клиентах разом. После сбоя питания перезапустили только шлюз, а позже выяснилось, что три рабочих пространства живут в одном ~/.openclaw, и «бэкап» по-проектно никогда и не существовал. Эта статья — план для мультипроектного OpenClaw: пять границ изоляции, три рабочие топологии, фиксация плагинов и разнесение модельных ключей, рунбук миграции между регионами и реальный кейс от 1 до 5 проектов с чеклистом из 12 шагов. Тарифы и наличие — на странице цен NOVAKVM; заказ — через страницу заказа; политики удалённого доступа и резервного копирования — в центре помощи. Дополнительно полезны материал о первом запуске, production-разбор 2026.5.x, апгрейд через LaunchAgent, install.sh и диск, каналы и обратный прокси.
После прочтения вы должны уметь ответить на три вопроса: какая из трёх топологий подходит вашей команде сегодня; как развести ключи OpenAI, Anthropic или собственного хостинга между проектами так, чтобы один лимит не клал всех клиентов сразу; какие файлы и команды нужны, чтобы перенести полную инсталляцию OpenClaw на Mac в другом городе примерно за полчаса. Команды и номера версий ниже — по официальному репозиторию и документации; после каждой публикации открывайте ссылки и сверяйтесь.
[ SECTION_01 ] // BOUNDARY_MAP Пять осей изоляции, без которых мультипроект разваливается
Перед обсуждением топологий зафиксируем сами оси. Если хоть одна пропущена, она почти всегда становится источником следующего инцидента.
- Данные (рабочее пространство и история): контекст диалогов, история файловых операций и журналы вызовов навыков должны жить в отдельных каталогах рабочих пространств. Общий каталог означает, что одно случайное удаление сносит трассируемость у всех клиентов.
- Учётные данные (API-ключи, токены каналов, SSH-ключи): ключи задаются на уровне проекта. Общий ключ на пять клиентов превращает любую блокировку провайдера в одновременный отказ всей мультитенантности без возможности атрибуции.
- Модели (провайдер и версия): у каждого проекта обычно своя семья моделей и контекстное окно. Истинная изоляция — это разные ритмы апгрейдов, а не только разные имена.
- Плагины (навыки и инструменты ClawHub, beta-канал): общий плагинный репозиторий превращает любое обновление в массовый раскат. Настоящая мультитенантность требует фиксации версий по проекту.
- Шлюз (порт, демон, путь обратного прокси): по умолчанию шлюз OpenClaw слушает 18789. В мультипроекте необходимо планировать порты, владельца процесса, контекст launchd и аутентификацию входа отдельно для каждого проекта, иначе перезапуск одного валит соседние.
- Наблюдаемость: без проектного тега в логах, метриках диска и health-пробах разбор инцидента деградирует до полноэкранного
grep, а удалённое расследование уходит в десятки минут.
OpenClaw в масштабе ломается на связанности, а не на ёмкости. Перенести матрицу из пяти осей в change-тикет даёт больше стабильности, чем поднять одну категорию железа выше.
[ SECTION_02 ] // TOPOLOGY_MATRIX Один процесс, несколько пользователей или несколько портов: сравнение для боевой эксплуатации
В реальности рабочих топологий три. В таблице рядом стоят типичный сценарий, степень изоляции, окно изменений, цена отката и аппаратный порог, чтобы прекратить колебания между «работает» и «стабильно».
| Ось | A · Один процесс, много рабочих пространств | B · Несколько пользователей macOS, несколько процессов | C · Несколько инстансов, несколько портов |
|---|---|---|---|
| Типичный кейс | 2–3 внутренних проекта, оператор и есть разработчик | 2–4 продуктовых линии с требованием взаимной невидимости | Хостинг для нескольких клиентов, отдельные апгрейды и биллинг |
| Данные | Один ~/.openclaw, разделение по соглашению |
Естественная изоляция по пользователю macOS | Свой рабочий каталог и корень логов на инстанс |
| Учётные данные | Ручной .env.local на рабочее пространство |
Свой Keychain на пользователя — самый чистый вариант | Своя конфигурация и переменные окружения на инстанс |
| Плагины | Общий кэш ClawHub, фиксация по проекту затруднена | Кэш на пользователя, отдельная фиксация | Кэш на инстанс, гранулярные канареечные раскаты |
| Порт шлюза | Один (по умолчанию 18789), разделение по путям | Свой шлюз на пользователя, порты можно разнести | Явная привязка 18789 / 18790 / … |
| Окно изменений | Один апгрейд бьёт по всем | Сдвиг по пользователям | Своё окно на инстанс, минимальный радиус поражения |
| Откат | Простой, но глобальный | Средний (нужно переключать пользователя) | Дороже, но влияние самое локальное |
| Аппаратный порог | M4 24 ГБ / 512 ГБ | M4 Pro 48 ГБ+ / 1 ТБ | M4 Pro 64 ГБ / 2 ТБ + параллельные ресурсы |
Практическое правило: начинать с A, переходить к B при требованиях клиентской конфиденциальности и поднимать до C только для внешней мультитенантности. Прыжок с A сразу на C обычно равен переписыванию каталогов и демонов, что для большинства небольших команд не оправдано. При совмещении многопользовательского и многопортового режимов в одну ревизию заводят и обратный прокси, и выбор региона NOVAKVM: оценивают локацию клиентов, резидентность данных и сетевой round-trip до моделей, и только после этого выбирают город.
[ SECTION_03 ] // PIN_AND_SECRETS Фиксация плагинов ClawHub и разнесение модельных ключей
Самое опасное в общем OpenClaw — дать одному клиенту попробовать новую версию плагина «первым». Без явной фиксации openclaw plugin update поднимает все рабочие пространства одновременно, и любое изменение поведения мгновенно расходится по проектам. Скрипт ниже — минимальная гигиена: каталоги учётных данных по проектам, явные пины версий, канал по умолчанию stable, beta — только в именованном рабочем пространстве.
# Каталоги по проектам (acme = клиент, internal = R&D, pilot = пилот)
novakvm@m4pro-sg-01:~$ mkdir -p ~/.openclaw/secrets/{acme,internal,pilot}
novakvm@m4pro-sg-01:~$ chmod 700 ~/.openclaw/secrets
# Ключи провайдеров — только в .env.local своего проекта
novakvm@m4pro-sg-01:~$ cat > ~/.openclaw/secrets/acme/.env.local <<'EOF'
OPENAI_API_KEY=sk-proj-acme-xxxx
ANTHROPIC_API_KEY=sk-ant-acme-yyyy
OPENCLAW_DEFAULT_PROVIDER=anthropic
OPENCLAW_DEFAULT_MODEL=claude-sonnet-2026-stable
EOF
# Перед любым изменением сохранить состояние плагинов
novakvm@m4pro-sg-01:~$ openclaw plugin list --json | jq '.[] | {name,version,channel}'
[OK] mailbridge 1.4.2 (stable)
[OK] notion-sync 0.9.7 (stable)
[OK] code-review 2.0.0-beta.3 (beta)
# Зафиксировать нестабильную версию и принудить канал по умолчанию к stable
novakvm@m4pro-sg-01:~$ openclaw plugin pin code-review@1.9.5
novakvm@m4pro-sg-01:~$ openclaw config set plugin.default_channel=stable
# Beta — только в рабочем пространстве internal (настоящая канарейка)
novakvm@m4pro-sg-01:~$ openclaw --workspace internal plugin install code-review@2.0.0-beta.3 --channel beta
[WARN] При работе через границу рабочих пространств всегда указывайте --workspace явно.
Три неотменяемых правила:
- Один проект — один ключ. Никогда не делите ключ OpenAI или Anthropic между проектами клиентов: единичный лимит сложит всех одновременно.
- Сначала список, потом обновление.
openclaw plugin list --json > before.jsonподкладывают в change-тикет, после операции делаютdiff. Beta в production по умолчанию запрещена. - 700 на дереве секретов.
~/.openclaw/secrets/<project>/.env.local— минимальная аудит-единица; не коммитим в репозиторий, не показываем черезcatв общем экране.
[ SECTION_04 ] // MIGRATION_RUNBOOK Бэкап и миграция между регионами: переезд OpenClaw на Mac в другом городе
После полугода стабильной мультипроектной эксплуатации триггеров для миграции обычно три: рост стоимости текущего узла, перемещение клиентской базы, необходимость warm-резервирования для устранения единственной точки отказа. У OpenClaw состояние почти полностью файловое, поэтому корректный архив ~/.openclaw, secrets, plist LaunchAgent, материалов обратного прокси и конфигурации шлюза проигрывается на свежем Mac за минуты. Скрипт ниже — заготовка, которой мы пользовались при переезде Сингапур → US-West; в связке со страницей цен NOVAKVM она задаёт целевой регион.
# 1) Старый узел: версия, плагины и базовая линия health шлюза
novakvm@m4pro-sg-01:~$ openclaw --version > /tmp/openclaw.version
novakvm@m4pro-sg-01:~$ openclaw plugin list --json > /tmp/openclaw.plugins.json
novakvm@m4pro-sg-01:~$ curl -fsS http://127.0.0.1:18789/health > /tmp/openclaw.health.before
# 2) Старый узел: упаковать состояние без runtime-кэшей
novakvm@m4pro-sg-01:~$ tar --exclude='.openclaw/cache' --exclude='.openclaw/tmp' \
-czf /tmp/openclaw-state-2026-05-13.tgz \
-C ~ .openclaw \
Library/LaunchAgents/ai.openclaw.gateway.plist
[OK] state archive: 412 MB (workspaces=3, plugins=7, secrets=3 projects)
# 3) Передача через SSH ProxyJump, никакого открытого HTTP
novakvm@m4pro-sg-01:~$ scp /tmp/openclaw-state-2026-05-13.tgz \
novakvm@m4pro-usw-01:/tmp/
# 4) Новый узел: тот же major OpenClaw + Node 24, затем распаковка и загрузка
novakvm@m4pro-usw-01:~$ tar -xzf /tmp/openclaw-state-2026-05-13.tgz -C ~
novakvm@m4pro-usw-01:~$ launchctl bootstrap gui/$(id -u) \
~/Library/LaunchAgents/ai.openclaw.gateway.plist
# 5) Сравнение пункт к пункту: версия, плагины, /health
novakvm@m4pro-usw-01:~$ openclaw plugin list --json | diff - /tmp/openclaw.plugins.json
novakvm@m4pro-usw-01:~$ curl -fsS http://127.0.0.1:18789/health
{"status":"ok","gateway":"18789","workspaces":3,"plugins":7}
[WARN] Если на новом узле другая major macOS, прогон 30 минут на canary до переключения трафика.
Три повторяющихся вывода: первое — сначала сравнение, потом трафик; openclaw --version, plugin list и /health должны быть в migration-скрипте, а не в глазах. Второе — секреты и plist архивируем отдельно; передача только через SSH ProxyJump, без HTTP в открытую. Третье — при смене региона веса расставляем так: локация клиентов — первая, round-trip моделей — вторая, цена — третья. Реальное узкое место большинства проектов — задержка первого токена, а не месячная стоимость.
[ SECTION_05 ] // RUNBOOK_AND_FAQ От 1 до 5 проектов: реальный кейс, чеклист на 12 шагов и FAQ
Пример реальной траектории независимой команды из 4 человек на удалённом Mac NOVAKVM (данные обезличены):
- Месяц 1 (1 проект, топология A): один M4 24 ГБ / 512 ГБ, одно рабочее пространство, шлюз 18789. Около 1 200 сообщений в день, рост диска ~0,3 ГБ в неделю.
- Месяц 3 (3 проекта, A + несколько рабочих пространств): та же машина,
--workspaceна клиента, секреты разделены, плагины ClawHub зафиксированы. Около 4 700 сообщений в день, ~1,1 ГБ в неделю, появляются признаки цепочного апгрейда. - Месяц 5 (переход к B): требование клиента к взаимной невидимости файлов; переезд на M4 Pro 48 ГБ / 1 ТБ, по пользователю macOS на клиента, у каждого свой шлюз.
- Месяц 7 (переход к C + warm-резерв в другом регионе): пять проектов, M4 Pro 64 ГБ / 2 ТБ + параллельные ресурсы, порты 18789–18793, еженедельная синхронизация
~/.openclawна узел-побратим в другом регионе.
Чеклист на 12 шагов (с командами отката):
- Список проектов и требования: юрисдикция контрагентов, требование взаимной невидимости — фиксируем, выбираем A, B или C.
- Каталог секретов на проект:
chmod 700и собственный.env.local. - Зафиксировать major OpenClaw: запрет на еженедельные авто-апгрейды, обновления только в окно обслуживания.
- Сначала список плагинов:
openclaw plugin list --json > before.json, после изменений —diff. - Все плагины зафиксированы на stable: канал по умолчанию stable, beta — только в именованном рабочем пространстве.
- Health-проба шлюза: локальный cron,
curl -fsS http://127.0.0.1:18789/healthраз в минуту, оповещение после трёх подряд неудач. - Базовая линия по диску:
du -sh ~/.openclawеженедельно, при превышении среднего в 2× — запуск чистки или расширения. - Холодный бэкап секретов и plist раз в неделю: шифрование, отдельно от рабочих пространств, в объектное хранилище.
- Учения по cross-node восстановлению ежемесячно: по скрипту из раздела 4, цель RTO — 30 минут.
- Перед апгрейдом — canary: новое
--workspace canary, 24 часа регрессий. - Минимальный набор отката:
openclaw plugin pin <name>@<old>,launchctl kickstart -k gui/$(id -u)/ai.openclaw.gateway, в крайнем случае —tar -xzf openclaw-state-<date>.tgz. - Сверка перед закрытием окна: версия, список плагинов,
/healthи список рабочих пространств соответствуют состоянию до окна — только тогда возвращаем трафик.
Цитируемые технические данные (не менее трёх):
- Размер дерева состояния: 3 рабочих пространства, 7 плагинов, 3 набора секретов через 5 месяцев боевой эксплуатации — около 400–600 МБ без cache и tmp; удобно для еженедельного архива.
- Health-эндпоинты шлюза: по умолчанию OpenClaw отдаёт
/healthи/readyна 127.0.0.1:18789; ответы фиксируем до и после каждой операции. - Потолок мультиинстансов: один M4 Pro 64 ГБ стабильно тянет пять независимых шлюзов (порты 18789–18793) при свободных не менее 30% диска и 8 ГБ памяти; параллельные ресурсы становятся оправданными от 4 проектов.
- RTO между регионами: воспроизведение состояния около 500 МБ между двумя M4 Pro обычно укладывается в 15–30 минут, доминирующий фактор — пропускная способность SCP между регионами.
FAQ (частые тикеты):
- Сколько рабочих пространств держит один Mac? На M4 24 ГБ — порядка трёх параллельно, на M4 Pro 48 ГБ — около пяти; для пяти и более под нагрузкой — 64 ГБ / 2 ТБ и параллельные ресурсы.
- Конфликт порта шлюза?
openclaw config set gateway.port=18790. В мультиинстансной схеме порты 18789–18793 заранее закрепляем в матрице конфигов. - Обновление ClawHub сломалось — как откатиться?
openclaw plugin pin <name>@<old>вместе сlaunchctl kickstart -k; при ломающем изменении схемы — распаковываем недельный архив состояния. - Нужен ли повторный onboarding после смены региона? Нет, при совпадении major OpenClaw достаточно распаковать архив; 30 минут canary — и переключаем трафик.
- Один модельный ключ на несколько проектов — будут ли блокировки? Скорее всего да. Провайдеры часто ограничивают по ключу; держимся правила «один проект — один ключ».
Мультипроектный OpenClaw требует стабильного железа, управляемых окон обслуживания и пропускной способности, которую можно отрепетировать заранее. Общая виртуализация раз за разом мешает шумными соседями и незапланированными перезагрузками гипервизора, а собственный Mac mini становится жёстким там, где у клиентов меняется регион или контур соответствия. Для production, в котором нужны параллельные проекты, контролируемые окна изменений и репетируемая отказоустойчивость между регионами, облачная аренда Mac mini в NOVAKVM обычно оптимальный выбор: выделенные узлы Apple Silicon в шести регионах (Сингапур, Япония, Корея, Гонконг, US-East, US-West), оплата по дням, неделям или месяцам, конфигурация M4 Pro 64 ГБ / 2 ТБ для нескольких рабочих пространств одновременно и параллельные ресурсы для пяти и более шлюзов. До следующего окна обслуживания вклейте сегодняшний 12-шаговый чеклист в change-тикет. Стабильность мультипроекта — это умение записать границы до того, как это сделает инцидент.