เว็บ(Gateway)¶
Gateway ให้บริการ Control UIบนเบราว์เซอร์ ขนาดเล็ก(Vite + Lit)จากพอร์ตเดียวกับ Gateway WebSocket:
- ค่าเริ่มต้น:
http://<host>:18789/ - พรีฟิกซ์เสริม: ตั้งค่า
gateway.controlUi.basePath(เช่น/openclaw)
ความสามารถต่าง ๆ อยู่ใน Control UI ความสามารถต่างๆอยู่ที่ Control UI หน้านี้เน้นที่โหมดการผูก(bind), ความปลอดภัย และพื้นผิวที่เปิดสู่เว็บ
Webhooks¶
เมื่อ hooks.enabled=true, Gateway จะเปิดเผยเอ็นด์พอยต์ webhook ขนาดเล็กบน HTTP server เดียวกันด้วย
ดู Gateway configuration → hooks สำหรับการยืนยันตัวตนและเพย์โหลด
ดู Gateway configuration → hooks สำหรับการยืนยันตัวตน + เพย์โหลด
คอนฟิก(เปิดเป็นค่าเริ่มต้น)¶
Control UI เปิดใช้งานเป็นค่าเริ่มต้น เมื่อมีแอสเซ็ตอยู่ (dist/control-ui)
คุณสามารถควบคุมได้ผ่านคอนฟิก:
คุณสามารถควบคุมได้ผ่านคอนฟิก:
{
gateway: {
controlUi: { enabled: true, basePath: "/openclaw" }, // basePath optional
},
}
การเข้าถึงผ่านTailscale¶
Integrated Serve (แนะนำ)¶
ให้Gatewayอยู่บน loopback และให้ Tailscale Serve ทำหน้าที่พร็อกซี:
{
gateway: {
bind: "loopback",
tailscale: { mode: "serve" },
},
}
จากนั้นเริ่มgateway:
openclaw gateway
เปิด:
https://<magicdns>/(หรือgateway.controlUi.basePathที่คุณตั้งค่าไว้)
Tailnet bind + token¶
{
gateway: {
bind: "tailnet",
controlUi: { enabled: true },
auth: { mode: "token", token: "your-token" },
},
}
จากนั้นเริ่มgateway (ต้องใช้โทเคนสำหรับการผูกที่ไม่ใช่ loopback):
openclaw gateway
เปิด:
http://<tailscale-ip>:18789/(หรือgateway.controlUi.basePathที่คุณตั้งค่าไว้)
อินเทอร์เน็ตสาธารณะ(Funnel)¶
{
gateway: {
bind: "loopback",
tailscale: { mode: "funnel" },
auth: { mode: "password" }, // or OPENCLAW_GATEWAY_PASSWORD
},
}
หมายเหตุด้านความปลอดภัย¶
- โดยค่าเริ่มต้นต้องมีการยืนยันตัวตนของGateway (โทเคน/รหัสผ่านหรือเฮดเดอร์ตัวตนของTailscale)
- การผูกที่ไม่ใช่ loopback ยังคงต้อง ใช้โทเคน/รหัสผ่านที่ใช้ร่วมกัน (
gateway.authหรือผ่าน env) - ตัวช่วยตั้งค่าจะสร้างโทเคนของgatewayให้โดยค่าเริ่มต้น (แม้บน loopback)
- UI จะส่ง
connect.params.auth.tokenหรือconnect.params.auth.password - Control UI ส่งเฮดเดอร์ป้องกันการคลิกแจ็กกิง และยอมรับเฉพาะการเชื่อมต่อ websocket จากเบราว์เซอร์แบบ same-origin
เว้นแต่จะตั้งค่า
gateway.controlUi.allowedOrigins - เมื่อใช้ Serve เฮดเดอร์ตัวตนของTailscaleสามารถใช้ผ่านการยืนยันตัวตนได้เมื่อ
gateway.auth.allowTailscaleเป็นtrue(ไม่ต้องใช้โทเคน/รหัสผ่าน) ตั้งค่าgateway.auth.allowTailscale: falseเพื่อบังคับใช้ข้อมูลรับรองอย่างชัดเจน ดู Tailscale และ Security ตั้งค่าgateway.auth.allowTailscale: falseเพื่อบังคับใช้ข้อมูลรับรองอย่างชัดเจน ดู Tailscale และ Security gateway.tailscale.mode: "funnel"ต้องใช้gateway.auth.mode: "password"(รหัสผ่านที่ใช้ร่วมกัน)
การสร้างUI¶
Gateway ให้บริการไฟล์สแตติกจาก dist/control-ui สร้างด้วย: สร้างด้วย:
pnpm ui:build # auto-installs UI deps on first run