OpenClaw в 2026: Docker-установка, прод-усиление, обратный прокси и рабочий процесс на удалённом Mac

30 марта 2026 · ~9 мин · Техническая команда MacCompute · Руководство

Материал для инженеров, которые встраивают OpenClaw в реальные процессы: установка OpenClaw (глобальный CLI или контейнер), развёртывание в Docker, обратный прокси с TLS, усиление под продакшен, разбор типовых ошибок и шаблон удалённого Mac workflow. Команды сверены с публичными openclaw/openclaw и docs.openclaw.ai/install/docker (март 2026). Точки входа MacCompute: главная, все заметки, справочный центр.

Фон развёртывания в 2026 и типовые сценарии

OpenClaw — самохостящийся стек личного ассистента: Gateway (плоскость управления по WebSocket, в README указан ориентир ws://127.0.0.1:18789), Control UI в браузере, CLI, каналы мессенджеров и инструменты на хосте или в песочнице. На практике встречаются два пересекающихся паттерна:

  • Шлюз на Linux/VPS — постоянно включённая плоскость рядом с API, доступ по SSH или Tailscale.
  • Тяжёлые шаги на удалённом Mac — сборки Xcode, macOS-скрипты, подпись, длительные агенты без удержания ноутбука включённым.

Ниже — воспроизводимые команды и явные порты, без «обзорных» абзацев.

Чек-лист окружения перед установкой

  • Node (путь CLI) — в README: Node 24 (рекомендуется) или Node 22.16+ до npm install -g openclaw@latest.
  • Docker + Compose v2 — актуальный Engine/Desktop; в документации Docker предупреждают: для сборки образа желательно ≥ 2 ГБ RAM (иначе OOM, часто exit 137 при pnpm install).
  • Git — для клонирования репозитория и ./docker-setup.sh.
  • DNS и TLS — если выводите UI в интернет, заранее hostname и сертификаты (Let’s Encrypt через Caddy или certbot для Nginx).
  • Фаервол и VPS — прочитайте upstream «Security hardening for network exposure» и заметки про DOCKER-USER для Docker на публичном хосте.

Воспроизводимые пути: глобальный CLI и Docker

Рекомендуемый CLI-путь (из README):

npm install -g openclaw@latest
openclaw onboard --install-daemon
openclaw gateway --port 18789 --verbose

Control UI: http://127.0.0.1:18789/. После обновлений полезно openclaw doctor.

Docker (официально) — из корня клонированного репозитория:

git clone https://github.com/openclaw/openclaw.git
cd openclaw
./docker-setup.sh

Пропустить локальную сборку, взяв образ из GHCR:

export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
./docker-setup.sh

Опционально песочница для gateway-окружения: export OPENCLAW_SANDBOX=1 перед скриптом (см. раздел Sandboxing в документации).

Ручной compose-поток (как в доках):

docker build -t openclaw:local -f Dockerfile .
docker compose run --rm openclaw-cli onboard
docker compose up -d openclaw-gateway

Сравнение: CLI и Docker

Тема Глобальный CLI Docker (./docker-setup.sh)
Когда уместно Быстрый цикл на своей машине, daemon через onboard Изолированный шлюз, воспроизводимые серверы, минимум «мусора» на хосте
Точка входа openclaw onboard --install-daemon ./docker-setup.sh из корня репо + локальный docker-compose.yml
Control UI http://127.0.0.1:18789/ Тот же URL после публикации порта
Проверка живости curl -fsS http://127.0.0.1:18789/healthz То же; в образе есть HEALTHCHECK к /healthz
CLI после установки Хост: openclaw … docker compose run --rm openclaw-cli … (общий network namespace с шлюзом)

Минимальная конфигурация безопасности: bind, токен, песочница, исходящий трафик

Привязка (bind). В конфиге используются значения gateway.bind вроде lan, loopback, tailnet, auto, custom — не сырые алиасы вроде 0.0.0.0 в этом поле. Для Docker по умолчанию задаётся OPENCLAW_GATEWAY_BIND=lan, чтобы хост доходил до опубликованного порта. При Tailscale Serve/Funnel upstream требует loopback для gateway.bind.

Токен и UI. Скрипт записывает токен шлюза в .env; вставьте его в Control UI (настройки). Относитесь к токену как к root-доступу к плоскости ассистента.

Личные сообщения. Входящие DM — ненадёжный ввод; по умолчанию действует pairing. Одобрение: openclaw pairing approve …; рискованные политики покажет openclaw doctor.

Песочница. Для групповых/канальных сессий задайте agents.defaults.sandbox.mode: "non-main", чтобы не-main сессии шли в Docker-песочницы. Это отдельно от «шлюз в Docker», но может делить один Docker на хосте.

Исходящий трафик. В профиле песочницы по умолчанию docker.network: "none"; расширяйте осознанно. На границе сети комбинируйте с политиками allow/deny инструментов.

Обратный прокси Nginx/Caddy и HTTPS

В документации первоклассны Tailscale и SSH-туннели. Если нужен классический прокси — терминируйте TLS на Caddy/Nginx и проксируйте на 127.0.0.1:18789 с поддержкой WebSocket.

Caddy (иллюстрация):

claw.example.com {
  reverse_proxy 127.0.0.1:18789
}

Nginx: добавьте заголовки Upgrade и Connection для WebSocket; точные пути поверхности см. docs.openclaw.ai/web.

Контрольный список: валидный сертификат; наружу только 443 (или ограниченный allowlist); лимиты/ACL для админ-маршрутов; ротация токена задокументирована; curl -fsS https://claw.example.com/healthz через прокси возвращает успех.

Матрица диагностики: симптом → причина → действие

Симптом Вероятная причина Что сделать
Порт 18789 занят Старый процесс шлюза или другой сервис Linux: ss -tlnp | grep 18789; остановите дубликат compose или смените --port
401 / unauthorized в UI Неверный токен или pairing устройства docker compose run --rm openclaw-cli dashboard --no-open; docker compose run --rm openclaw-cli devices list и approve по документации
CLI показывает ws://172.x, pairing required Сбой gateway.mode / gateway.bind в Docker docker compose run --rm openclaw-cli config set gateway.mode local; config set gateway.bind lan; проверка ws://127.0.0.1:18789
Сборка образа exit 137 OOM при установке зависимостей Увеличьте RAM ≥ 2 ГБ или используйте OPENCLAW_IMAGE
EACCES на /home/node/.openclaw Права bind-mount (образ под uid 1000) Linux: sudo chown -R 1000:1000 путь_к_конфигу …
Песочница не стартует Нет образа sandbox scripts/sandbox-setup.sh или свой образ в конфиге
/readyz даёт 503 Каналы в grace-периоде или отвал Логи шлюза; проверка каналов; см. описание readyz в Docker-доках

Автоматизация без TTY: docker compose run -T --rm openclaw-cli gateway probe.

Бизнес-пример: сквозной процесс на удалённом Mac

Шаблон для пользователей аренды или покупки Mac-вычислений: Mac — остров исполнения, секреты на машине, оркестрация по SSH (см. первую настройку SSH/VNC).

  1. Подготовка — вход по SSH; Docker Desktop или Colima, либо Node + глобальный CLI из раздела 3.
  2. OpenClaw — либо openclaw onboard --install-daemon, либо клон репозитория и ./docker-setup.sh с постоянными томами под ~/.openclaw и workspace на отдельном диске при необходимости.
  3. Пакетlaunchd или cron запускает ваш скрипт сборки/тестов; артефакты — в каталог CI или ~/.openclaw/workspace; код выхода пишется в лог.
  4. Уведомление — по завершении вызов webhook (Slack/Telegram) из того же скрипта; при желании агент читает структурированные логи.
  5. Проверка — с ноутбука: ssh mac 'curl -fsS http://127.0.0.1:18789/healthz'; UI через туннель: ssh -L 18789:127.0.0.1:18789 mac и открыть http://127.0.0.1:18789/.

Ожидаемый результат: сборки и пакетные агенты идут без участия человека; шлюз отвечает на healthz; отладка по логам и редкому UI через SSH без публикации 18789 в интернет.

FAQ и быстрый triage

Нужен ли Docker, если нужна только песочница агентов? Песочница может использовать Docker при нативном шлюзе — см. разделы «Docker (optional)» и Sandboxing в официальных доках.

Где состояние? Compose монтирует каталоги конфигурации и workspace на хост; делайте бэкапы как для секретов и рабочей области.

Ничего не слушает? Сначала docker compose ps или openclaw doctor, затем curl на /healthz.

Итог

В продакшене OpenClaw держится на правильном пути установки (onboard vs ./docker-setup.sh), стабильном порте 18789, согласовании gateway.bind с способом публикации и многослойной защите (токен, pairing в каналах, опциональная песочница non-main, фаервол). Удалённый Mac уместен, когда нужны macOS-инструменты или суточные агенты на выделенном железе.

Для предсказуемой ёмкости под долгие задачи откройте тарифы и оформление заказа; общие вопросы — в справочном центре (без входа в личный кабинет).

Запускайте OpenClaw на железе, которое не засыпает. Удалённые Mac mini подходят для длинных SSH-сессий, CI и агентов — без привязки к ноутбуку.

Тарифы