Терминация TLS · WebSocket · allowedOrigins · Проверка запуска Docker
Инженеры, которые уже подняли OpenClaw в Docker на VPS и хотят настоящий HTTPS-хост, часто упираются в куда слушает Gateway, кто завершает TLS и почему Control UI в браузере ругается на cross-origin. Текст даёт таблицу решений для loopback плюс краевой прокси против публичных портов контейнера, минимальные фрагменты Caddy и Nginx, заголовки WebSocket и X-Forwarded и порядок приёмки allowedOrigins. OOM и первый WASM — в длинной статье по Docker VPS. Установка: гайд v2026.4; укрепление: мультиканал; откат: pin.
В Docker продакшн добавляет файрвол хоста, publish только на 127.0.0.1, полную цепочку сертификатов и HTTPS-колбэки каналов. Список для первичного triage; детали — в доках вашей версии.
Привычка 0.0.0.0: Gateway на публичном интерфейсе без WAF и аудита резко расширяет поверхность.
WebSocket наполовину: прокси не прокидывает Upgrade / Connection — 502 или обрыв handshake.
Дрейф host/origin: браузер на имени A, конфиг на IP или внутреннем алиасе — срабатывают защиты Control UI.
Сертификат раньше DNS: выдача до пропагации или смесь self-signed и публичной цепочки.
Диск и логи: без ротации логов прокси и контейнера inodes на маленьком VPS кончаются.
Окно апгрейда: rolling без pin образов ломает поведение Gateway без порядка staging и rollback.
Заметка: при блокере OOM, Exit 137, WASM или allowedOrigins сначала статья triage.
Для переноса OpenClaw из лаборатории на реальное имя: HTTPS, каналы и наблюдаемость в одной истории приёмки.
| Измерение | 127.0.0.1 + прокси TLS | Публичный порт контейнера |
|---|---|---|
| Минимум экспозиции | снаружи только 443, upstream на loopback | нужны ACL и регулярный аудит портов |
| Сертификаты | одна цепочка Caddy/Nginx/ACME | каждый сервис тянет свои сертификаты |
| WebSocket | готовые модули прокси | теряются заголовки |
| Наблюдаемость | логи edge и upstream по request_id | агрегацию собирать самим |
Золотое правило: и панель открывается, и каналы достигают того https-имени, которое вы публикуете.
18789) не совпадает с override, ищите конфиг и compose целиком.allowedOrigins должен включать реальный https-origin браузера; после правок холодный старт по статье triage.Compose уже поднимает Gateway только на loopback; иначе закройте мастер и baseline compose.
Заморозить hostname: A/AAAA на этот VPS, TTL и окно обслуживания.
Проверить bind: ss -lntp, только 127.0.0.1 и нужный порт.
Выбор прокси: минимум — Caddy auto HTTPS; Nginx — шаблоны stream/location.
Минимальный сниппет: ниже, upstream = порт из доки и реальное имя.
Колбэки каналов: тот же публичный хост и префикс пути.
Golden path: от https в браузере до безобидного heartbeat или doctor в playbook.
openclaw.example.com {
encode gzip
reverse_proxy 127.0.0.1:18789
}
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;
}
}
Каждая строка должна ссылаться на поле лога или вывод команды.
| Симптом | Слой | Шаг |
|---|---|---|
| HTTPS падает, сырой HTTP к upstream ок | цепочка или SNI | проверить цепочку и server_name |
| статика грузится, live-канал рвётся | таймаут WebSocket | увеличить read timeout, проверить Upgrade |
| консоль cross-origin | allowedOrigins | переписать origins, перезапустить процессы |
| внешний curl 502, локальный 200 | upstream прокси | пройти compose и publish по шагам |
Внимание: без мультиканального укрепления не открывайте dashboard на 0.0.0.0 ради демо.
Типичные пороги для одного VPS, не SLA вендора.
proxy_read_timeout или аналога Caddy.df и inode в первую неделю.| Роль | Профиль | Совет |
|---|---|---|
| Личное | низкий трафик | один Caddy, один compose |
| Малая команда | много каналов днём | pin образа, поэтапный rollback |
| Mac / CI | длинные задачи и подпись | Gateway на VPS, сборки в пуле Mac |
Только домашний ISP или нестабильное облако как вход дают динамические IP и сюрпризы со сном ВМ.
Для стойкого публичного https и разделения долгоживущих агентов и iOS CI часто спокойнее аренда Mac mini в облаке VpsMesh плюс постоянный VPS: нагрузка на контрактных узлах, Gateway по этому runbook.
TLS и лимиты на привычном обратном прокси, сессии на Gateway. Публичная привязка требует пунктов чеклиста укрепления. Доп. мощности: цены и заказ.
Полный origin с портом в allowedOrigins. Сложный compose: статья Docker VPS; self-service: центр помощи.
Обычно достаточно проверить порт и health. При смене путей или WebSocket — release notes и двойная проверка по статье pin и rollback.