Web (Gateway)¶
Ang Gateway ay naghahain ng maliit na browser Control UI (Vite + Lit) mula sa parehong port gaya ng Gateway WebSocket:
- default:
http://<host>:18789/ - opsyonal na prefix: itakda ang
gateway.controlUi.basePath(hal./openclaw)
Matatagpuan ang mga kakayahan sa Control UI. Ang pahinang ito ay nakatuon sa mga bind mode, seguridad, at mga web-facing surface.
Webhooks¶
Kapag hooks.enabled=true, inilalantad din ng Gateway ang isang maliit na webhook endpoint sa parehong HTTP server.
Tingnan ang Gateway configuration → hooks para sa auth + mga payload.
Config (default-on)¶
Ang Control UI ay enabled bilang default kapag may mga asset (dist/control-ui).
Maaari mo itong kontrolin sa pamamagitan ng config:
{
gateway: {
controlUi: { enabled: true, basePath: "/openclaw" }, // basePath optional
},
}
Tailscale access¶
Integrated Serve (inirerekomenda)¶
Panatilihin ang Gateway sa loopback at ipa-proxy ito gamit ang Tailscale Serve:
{
gateway: {
bind: "loopback",
tailscale: { mode: "serve" },
},
}
Pagkatapos ay simulan ang gateway:
openclaw gateway
Buksan:
https://<magicdns>/(o ang naka-configure monggateway.controlUi.basePath)
Tailnet bind + token¶
{
gateway: {
bind: "tailnet",
controlUi: { enabled: true },
auth: { mode: "token", token: "your-token" },
},
}
Pagkatapos ay simulan ang gateway (kailangan ang token para sa mga non-loopback bind):
openclaw gateway
Buksan:
http://<tailscale-ip>:18789/(o ang naka-configure monggateway.controlUi.basePath)
Pampublikong internet (Funnel)¶
{
gateway: {
bind: "loopback",
tailscale: { mode: "funnel" },
auth: { mode: "password" }, // or OPENCLAW_GATEWAY_PASSWORD
},
}
Mga tala sa seguridad¶
- Kinakailangan ang Gateway auth bilang default (token/password o mga Tailscale identity header).
- Ang mga non-loopback bind ay nangangailangan pa rin ng shared token/password (
gateway.autho env). - Ang wizard ay gumagawa ng gateway token bilang default (kahit sa loopback).
- Ang UI ay nagpapadala ng
connect.params.auth.tokenoconnect.params.auth.password. - Ang Control UI ay nagpapadala ng mga anti-clickjacking header at tumatanggap lamang ng mga same-origin na koneksyon ng browser websocket maliban kung nakatakda ang
gateway.controlUi.allowedOrigins. - Sa Serve, ang mga Tailscale identity header ay maaaring makasapat para sa auth kapag
gateway.auth.allowTailscaleaytrue(walang token/password na kailangan). Itakda anggateway.auth.allowTailscale: falseupang mangailangan ng tahasang credentials. Tingnan ang Tailscale at Security. - Ang
gateway.tailscale.mode: "funnel"ay nangangailangan nggateway.auth.mode: "password"(shared password).
Pagbuo ng UI¶
Nagsi-serve ang Gateway ng mga static file mula sa dist/control-ui. I-build ang mga ito gamit ang:
pnpm ui:build # auto-installs UI deps on first run