После гайдов по установке на три платформы и Docker в продакшене у команд остаётся задача поднять OpenClaw Gateway на хостовом Node и systemd поверх Ubuntu 24.04 с Cloudflare Tunnel, чтобы шлюз не слушал публичный интерфейс. В статье — границы с Docker, разложение типовых проблем, две таблицы, фрагменты unit systemd и туннеля, шестишаговый runbook и три дежурные метрики, со ссылками на постинсталляционную диагностику, Docker в продакшене, руководство по установке и продвинутый материал по безопасности Gateway для воспроизводимого ввода в эксплуатацию.
На «голом» хосте ответственность за версии Node, права, адреса привязки и супервизию процессов полностью на стороне ОС. Если оставить привычку «Gateway в foreground на ноутбуке», перезагрузки рвут сервисы, журналы неструктурированы, а расхождение ufw и облачных security groups делает инциденты невоспроизводимыми. Разложите шесть классов проблем до копирования конфигов.
sudo npm i -g рассинхронизирует прод с документацией; зафиксируйте в ExecStart конкретный бинарник Node или обёртку менеджера версий.0.0.0.0 плюс одно пропущенное правило файрвола выставляет control plane наружу; с туннелями предпочтительнее 127.0.0.1, а вход принимает туннель.openclaw дают эффект «вручную работает, под сервисом — нет».cloudflared, указывающий не на тот локальный порт, даёт внешний 502, не связанный с таймаутами модели.ExecStart и хэша конфигурации блокирует быстрый откат.Две таблицы сжимают сравнение Docker и bare metal, а также туннеля и прямого обратного прокси на хосте для пакетов на архитектурный обзор.
Продвинутый материал по безопасности Gateway описывает токены, экспозицию и ротацию секретов; здесь — привязка к loopback на Linux и передача ingress туннелю. Вместе это даёт схему «вход на периметре, секреты в управляемой плоскости, процессы под systemd». Онбординг и ключи к моделям завершайте по установочному гайду до ужесточения продакшена здесь.
В материале про Docker в продакшене — фиксация образов, тома и откат через Compose; здесь — юниты на хосте и туннель. Таблица 1 для архитектурного ревью, а не для «религиозного» выбора.
| Измерение | Docker / Compose | Хостовый Node + systemd (эта статья) |
|---|---|---|
| Воспроизводимость | Образы и digest фиксируют рантайм | Стек хоста вариативен; компенсируйте управлением конфигурацией и пинами версий |
| Глубина разбора | Сначала логи контейнера и права на томах | Доступны инструменты уровня хоста, если политика позволяет |
| Существующий ops-стек | Нужны мониторинг контейнеров и поток через registry | Переиспользуйте journald, node_exporter, скрипты резервного копирования |
| Путь обновления | Смена тегов образа; тома явные | Node и глобальные пакеты двигаются вместе — автоматизируйте откат |
| Типичное применение | Команды, стандартизировавшиеся на контейнерах | Нужен запуск на metal или тесная связка с легаси-сервисами systemd |
Туннели выносят TLS и публичный ingress на периметр; Nginx/Caddy часто терминируют TLS локально и проксируют на loopback. Комбинировать можно, но множество слушающих сокетов должно оставаться минимальным. Сверяйте таблицу 2 с правилами security groups.
| Паттерн | Привязка Gateway | Публичная поверхность | Заметки по эксплуатации |
|---|---|---|---|
| Туннель на loopback | 127.0.0.1:PORT (по документации OpenClaw) | Нет прямого порта Gateway; только исходящий трафик процесса туннеля | Согласуйте ingress с фактическим локальным портом сервиса |
| Локальный Nginx/Caddy | Обычно по-прежнему upstream на loopback | 443 на прокси; сертификаты и rate limit | Перепроверьте ufw и облачные SG, чтобы избежать двойной экспозиции |
| Не рекомендуется: Gateway на 0.0.0.0 | Все интерфейсы | Control plane в интернете | Нужны строгие токены, allowlist и WAF — не вариант по умолчанию |
# /etc/systemd/system/openclaw-gateway.service (скелет; ExecStart — по официальному CLI) [Unit] Description=OpenClaw Gateway (bare metal) After=network-online.target Wants=network-online.target [Service] User=openclaw Group=openclaw WorkingDirectory=/var/lib/openclaw Environment=NODE_ENV=production ExecStart=/usr/bin/node /path/to/openclaw/cli.js gateway start --bind 127.0.0.1 Restart=on-failure RestartSec=5 LimitNOFILE=65535 [Install] WantedBy=multi-user.target
# Фрагмент cloudflared: hostname к локальному Gateway
tunnel: YOUR_TUNNEL_ID
credentials-file: /etc/cloudflared/YOUR_TUNNEL.json
ingress:
- hostname: claw.example.com
service: http://127.0.0.1:18789
- service: http_status:404
Примечание: порты и пути к бинарям — плейсхолдеры. Сверяйтесь с актуальной документацией OpenClaw и openclaw --help; хэши и команды отката фиксируйте в тикете на изменение.
127.0.0.1, curl или health по доке, затем подключайте туннель.daemon-reload && enable --now; смотрите journalctl -u openclaw-gateway -f на ошибки порядка запуска.ExecStart и конфиги; «вперёд только» допустимо в пределах вашего RTO.Разделяйте локальное здоровье (процесс и порт на loopback) и внешнее здоровье (DNS, цепочка сертификатов, маршрутизация на периметре). Обновление только одного из контуров при релизах даёт ложноположительные «зелёно внутри, красно снаружи». Шаблоны тикетов должны требовать версию OpenClaw, минор Node и версию cloudflared плюс выдержку из журнала для аудита.
curl -v 127.0.0.1:PORT, затем логи туннеля; локальный отказ — слой приложения, локально ок / удалённо нет — туннель или DNS.Дополнение: на небольших VPS, где крутятся только Gateway и туннель, при джиттере задержки при «простаивающем» CPU проверьте лимиты файловых дескрипторов на процесс, число долгоживущих WebSocket и RTT TLS к провайдерам до увеличения vCPU.
Обычный Linux VPS подходит для демонстраций, но разброс I/O и ограничения без GUI всё равно влияют на долгоживущую автоматизацию. Продакшен OpenClaw требует повторяемой супервизии, аудируемых listening surfaces и согласованности с CI и потоками секретов.
Для сборок iOS, Simulator или GUI-разбора Linux не заменяет Apple Silicon; многие команды ставят Gateway на Linux на периметре, а тяжёлый Xcode переносят на удалённые Mac. Запасные ноутбуки и фрагментированные десктопы плохо держат агентов 24/7: сон и диалоги превращают автоматизацию в случайные сбои. У MACCOME — мультирегиональные Mac Mini M4 / M4 Pro на bare metal как бэкенд сборок и длинных сессий, пока Linux концентрирует ingress. Откройте центр помощи, затем сопоставьте тарифы аренды со страницей вашего региона.
Пилотируйте короткими арендами, измеряя сквозную задержку сценария «туннель + нагрузка на удалённом Mac», прежде чем совмещать роли ingress и компиляции на одном хосте.
Вопросы
Разве Docker недостаточно?
Часто да — см. Docker в продакшене. Связка systemd на хосте уместна при тесной интеграции с существующим ops на сервере или необходимости трассировки на уровне ОС.
127.0.0.1 или 0.0.0.0 для Gateway?
Предпочтительно loopback за туннелем или локальным прокси; расширяйте привязку только с файрволом, токенами и мониторингом. Шаги проверки — в постинсталляционной диагностике. Уточнения по доступу к Mac — центр помощи.
Где команды установки и отличия платформ?
Установка и выбор платформы; тарифы — цены аренды Mac Mini.