OpenClaw 2026: продакшен-домен:
Caddy или Nginx + TLS и чеклист Gateway на localhost (Docker VPS)

Терминация TLS · WebSocket · allowedOrigins · Проверка запуска Docker

2026 OpenClaw: обратный прокси TLS и контроль поверхности Gateway

Инженеры, которые уже подняли OpenClaw в Docker на VPS и хотят настоящий HTTPS-хост, часто упираются в куда слушает Gateway, кто завершает TLS и почему Control UI в браузере ругается на cross-origin. Текст даёт таблицу решений для loopback плюс краевой прокси против публичных портов контейнера, минимальные фрагменты Caddy и Nginx, заголовки WebSocket и X-Forwarded и порядок приёмки allowedOrigins. OOM и первый WASM — в длинной статье по Docker VPS. Установка: гайд v2026.4; укрепление: мультиканал; откат: pin.

01

Шесть типичных проблем: curl localhost не равен публичному имени

В Docker продакшн добавляет файрвол хоста, publish только на 127.0.0.1, полную цепочку сертификатов и HTTPS-колбэки каналов. Список для первичного triage; детали — в доках вашей версии.

  1. 01

    Привычка 0.0.0.0: Gateway на публичном интерфейсе без WAF и аудита резко расширяет поверхность.

  2. 02

    WebSocket наполовину: прокси не прокидывает Upgrade / Connection — 502 или обрыв handshake.

  3. 03

    Дрейф host/origin: браузер на имени A, конфиг на IP или внутреннем алиасе — срабатывают защиты Control UI.

  4. 04

    Сертификат раньше DNS: выдача до пропагации или смесь self-signed и публичной цепочки.

  5. 05

    Диск и логи: без ротации логов прокси и контейнера inodes на маленьком VPS кончаются.

  6. 06

    Окно апгрейда: rolling без pin образов ломает поведение Gateway без порядка staging и rollback.

Заметка: при блокере OOM, Exit 137, WASM или allowedOrigins сначала статья triage.

02

Таблица экспозиции: loopback и TLS на прокси по умолчанию

Для переноса OpenClaw из лаборатории на реальное имя: HTTPS, каналы и наблюдаемость в одной истории приёмки.

Измерение127.0.0.1 + прокси TLSПубличный порт контейнера
Минимум экспозицииснаружи только 443, upstream на loopbackнужны ACL и регулярный аудит портов
Сертификатыодна цепочка Caddy/Nginx/ACMEкаждый сервис тянет свои сертификаты
WebSocketготовые модули прокситеряются заголовки
Наблюдаемостьлоги edge и upstream по request_idагрегацию собирать самим

Золотое правило: и панель открывается, и каналы достигают того https-имени, которое вы публикуете.

Напоминания по портам

  • Если порт Gateway в доке (часто 18789) не совпадает с override, ищите конфиг и compose целиком.
  • allowedOrigins должен включать реальный https-origin браузера; после правок холодный старт по статье triage.
  • Несколько инстансов: callback URL и TTL DNS в тикете изменения.
03

Шестишаговый runbook от DNS до сниппетов

Compose уже поднимает Gateway только на loopback; иначе закройте мастер и baseline compose.

  1. 01

    Заморозить hostname: A/AAAA на этот VPS, TTL и окно обслуживания.

  2. 02

    Проверить bind: ss -lntp, только 127.0.0.1 и нужный порт.

  3. 03

    Выбор прокси: минимум — Caddy auto HTTPS; Nginx — шаблоны stream/location.

  4. 04

    Минимальный сниппет: ниже, upstream = порт из доки и реальное имя.

  5. 05

    Колбэки каналов: тот же публичный хост и префикс пути.

  6. 06

    Golden path: от https в браузере до безобидного heartbeat или doctor в playbook.

Caddyfile
openclaw.example.com {
    encode gzip
    reverse_proxy 127.0.0.1:18789
}
nginx
server {
    listen 443 ssl http2;
    server_name openclaw.example.com;
    ssl_certificate     /etc/letsencrypt/live/openclaw.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/openclaw.example.com/privkey.pem;
    location / {
        proxy_pass http://127.0.0.1:18789;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 600s;
    }
}
04

Маршрут triage: симптом → слой → первый шаг

Каждая строка должна ссылаться на поле лога или вывод команды.

СимптомСлойШаг
HTTPS падает, сырой HTTP к upstream окцепочка или SNIпроверить цепочку и server_name
статика грузится, live-канал рвётсятаймаут WebSocketувеличить read timeout, проверить Upgrade
консоль cross-originallowedOriginsпереписать origins, перезапустить процессы
внешний curl 502, локальный 200upstream проксипройти compose и publish по шагам

Внимание: без мультиканального укрепления не открывайте dashboard на 0.0.0.0 ради демо.

05

Базовые ориентиры для тикетов

Типичные пороги для одного VPS, не SLA вендора.

  • Read timeout прокси: не ниже 600 с для proxy_read_timeout или аналога Caddy.
  • Обновление сертификатов: оповещение ACME ≥14 дней до истечения.
  • Логи: сотни МБ в неделю — норма; измерьте df и inode в первую неделю.
РольПрофильСовет
Личноенизкий трафикодин Caddy, один compose
Малая командамного каналов днёмpin образа, поэтапный rollback
Mac / CIдлинные задачи и подписьGateway на VPS, сборки в пуле Mac

Только домашний ISP или нестабильное облако как вход дают динамические IP и сюрпризы со сном ВМ.

Для стойкого публичного https и разделения долгоживущих агентов и iOS CI часто спокойнее аренда Mac mini в облаке VpsMesh плюс постоянный VPS: нагрузка на контрактных узлах, Gateway по этому runbook.

FAQ

Частые вопросы

TLS и лимиты на привычном обратном прокси, сессии на Gateway. Публичная привязка требует пунктов чеклиста укрепления. Доп. мощности: цены и заказ.

Полный origin с портом в allowedOrigins. Сложный compose: статья Docker VPS; self-service: центр помощи.

Обычно достаточно проверить порт и health. При смене путей или WebSocket — release notes и двойная проверка по статье pin и rollback.