แดชบอร์ด Gateway คือส่วนติดต่อผู้ใช้สำหรับควบคุมบนเบราว์เซอร์ซึ่งให้บริการที่Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
/ โดยค่าเริ่มต้น
(เขียนทับได้ด้วย gateway.controlUi.basePath).
เปิดอย่างรวดเร็ว (Gateway ภายในเครื่อง):
- http://127.0.0.1:18789/ (หรือ http://localhost:18789/)
- เมื่อใช้
gateway.tls.enabled: trueให้ใช้https://127.0.0.1:18789/และwss://127.0.0.1:18789สำหรับปลายทาง WebSocket
- ส่วนติดต่อผู้ใช้สำหรับควบคุม สำหรับการใช้งานและความสามารถของ UI
- Tailscale สำหรับการทำงานอัตโนมัติของ Serve/Funnel
- พื้นผิวเว็บ สำหรับโหมดการ bind และหมายเหตุด้านความปลอดภัย
connect.params.auth.tokenconnect.params.auth.password- เฮดเดอร์ตัวตนของ Tailscale Serve เมื่อ
gateway.auth.allowTailscale: true - เฮดเดอร์ตัวตนของ trusted-proxy เมื่อ
gateway.auth.mode: "trusted-proxy"
gateway.auth ใน การกำหนดค่า Gateway
หมายเหตุด้านความปลอดภัย: ส่วนติดต่อผู้ใช้สำหรับควบคุมเป็น พื้นผิวผู้ดูแล (แชท, การกำหนดค่า, การอนุมัติ exec)
อย่าเปิดเผยต่อสาธารณะ UI จะเก็บโทเค็น URL ของแดชบอร์ดไว้ใน sessionStorage
สำหรับเซสชันแท็บเบราว์เซอร์ปัจจุบันและ URL ของ gateway ที่เลือก และลบโทเค็นออกจาก URL หลังโหลด
ควรใช้ localhost, Tailscale Serve หรือ SSH tunnel
เส้นทางเร็ว (แนะนำ)
- หลัง onboarding แล้ว CLI จะเปิดแดชบอร์ดอัตโนมัติและพิมพ์ลิงก์สะอาด (ไม่มีโทเค็น)
- เปิดใหม่ได้ทุกเมื่อ:
openclaw dashboard(คัดลอกลิงก์, เปิดเบราว์เซอร์ถ้าทำได้, แสดงคำแนะนำ SSH ถ้าเป็น headless) - ถ้าส่งผ่านคลิปบอร์ดและเบราว์เซอร์ไม่สำเร็จ
openclaw dashboardจะยังพิมพ์ URL สะอาดและบอกให้คุณใช้โทเค็นจากOPENCLAW_GATEWAY_TOKENหรือgateway.auth.tokenเป็นคีย์ fragment ของ URL ชื่อtoken; คำสั่งจะไม่พิมพ์ค่าโทเค็น ในล็อก - ถ้า UI ขอ auth แบบ shared-secret ให้วางโทเค็นหรือ รหัสผ่านที่กำหนดค่าไว้ในการตั้งค่าส่วนติดต่อผู้ใช้สำหรับควบคุม
พื้นฐาน Auth (ภายในเครื่องเทียบกับระยะไกล)
- Localhost: เปิด
http://127.0.0.1:18789/ - Gateway TLS: เมื่อ
gateway.tls.enabled: trueลิงก์แดชบอร์ด/สถานะจะใช้https://และลิงก์ WebSocket ของส่วนติดต่อผู้ใช้สำหรับควบคุมจะใช้wss:// - แหล่งที่มาของโทเค็น shared-secret:
gateway.auth.token(หรือOPENCLAW_GATEWAY_TOKEN);openclaw dashboardสามารถส่งผ่าน fragment ของ URL เพื่อ bootstrap ครั้งเดียว และส่วนติดต่อผู้ใช้สำหรับควบคุมจะเก็บไว้ใน sessionStorage สำหรับ เซสชันแท็บเบราว์เซอร์ปัจจุบันและ URL ของ gateway ที่เลือก แทน localStorage - ถ้า
gateway.auth.tokenจัดการด้วย SecretRefopenclaw dashboardจะพิมพ์/คัดลอก/เปิด URL ที่ไม่มีโทเค็นตามการออกแบบ เพื่อหลีกเลี่ยงการเปิดเผย โทเค็นที่จัดการจากภายนอกในล็อก shell, ประวัติคลิปบอร์ด หรืออาร์กิวเมนต์ การเปิดเบราว์เซอร์ - ถ้า
gateway.auth.tokenถูกกำหนดค่าเป็น SecretRef และ resolve ไม่ได้ใน shell ปัจจุบันของคุณopenclaw dashboardจะยังพิมพ์ URL ที่ไม่มีโทเค็นพร้อม คำแนะนำการตั้งค่า auth ที่นำไปปฏิบัติได้ - รหัสผ่าน shared-secret: ใช้
gateway.auth.passwordที่กำหนดค่าไว้ (หรือOPENCLAW_GATEWAY_PASSWORD) แดชบอร์ดจะไม่คงรหัสผ่านไว้ข้ามการ reload - โหมดที่มีตัวตนแนบมาด้วย: Tailscale Serve สามารถทำให้ auth ของส่วนติดต่อผู้ใช้สำหรับควบคุม/WebSocket
ผ่านได้ด้วยเฮดเดอร์ตัวตนเมื่อ
gateway.auth.allowTailscale: trueและ reverse proxy แบบ non-loopback ที่รู้ตัวตนสามารถทำให้gateway.auth.mode: "trusted-proxy"ผ่านได้ ในโหมดเหล่านั้นแดชบอร์ดไม่ ต้องใช้ shared secret ที่วางด้วยมือสำหรับ WebSocket - ไม่ใช่ localhost: ใช้ Tailscale Serve, การ bind shared-secret แบบ non-loopback, reverse proxy
แบบ non-loopback ที่รู้ตัวตนพร้อม
gateway.auth.mode: "trusted-proxy"หรือ SSH tunnel ส่วน HTTP API ยังคงใช้ auth แบบ shared-secret เว้นแต่คุณตั้งใจรันgateway.auth.mode: "none"สำหรับ private-ingress หรือ auth HTTP แบบ trusted-proxy ดู พื้นผิวเว็บ
ถ้าคุณเห็น “unauthorized” / 1008
- ตรวจสอบว่า gateway เข้าถึงได้ (ภายในเครื่อง:
openclaw status; ระยะไกล: SSH tunnelssh -N -L 18789:127.0.0.1:18789 user@hostแล้วเปิดhttp://127.0.0.1:18789/) - สำหรับ
AUTH_TOKEN_MISMATCHไคลเอนต์อาจ retry แบบเชื่อถือได้หนึ่งครั้งด้วยโทเค็นอุปกรณ์ที่แคชไว้เมื่อ gateway ส่ง hint สำหรับ retry กลับมา การ retry ด้วย cached-token นั้นจะใช้ขอบเขตที่อนุมัติแล้วซึ่งแคชไว้ของโทเค็นนั้นซ้ำ; ผู้เรียกที่ระบุdeviceTokenชัดเจน /scopesชัดเจนจะคงชุดขอบเขตที่ร้องขอไว้ ถ้า auth ยังล้มเหลวหลัง retry นั้น ให้แก้ token drift ด้วยตนเอง - สำหรับ
AUTH_SCOPE_MISMATCHโทเค็นอุปกรณ์ถูกจดจำแล้ว แต่ไม่มีขอบเขตที่แดชบอร์ดร้องขอ; ให้ pair ใหม่หรืออนุมัติสัญญาขอบเขตที่ร้องขอแทนการหมุนเวียนโทเค็น gateway แบบ shared - นอกเส้นทาง retry นั้น ลำดับความสำคัญของ connect auth คือ shared token/password ที่ระบุชัดเจนก่อน จากนั้น
deviceTokenที่ระบุชัดเจน จากนั้นโทเค็นอุปกรณ์ที่จัดเก็บไว้ แล้วจึง bootstrap token - ในเส้นทางส่วนติดต่อผู้ใช้สำหรับควบคุมผ่าน Tailscale Serve แบบ async ความพยายามที่ล้มเหลวสำหรับ
{scope, ip}เดียวกันจะถูกจัดลำดับก่อนที่ failed-auth limiter จะบันทึก ดังนั้น การ retry ผิดพร้อมกันครั้งที่สองอาจแสดงretry laterได้แล้ว - สำหรับขั้นตอนซ่อม token drift ให้ทำตาม รายการตรวจสอบการกู้คืน token drift
- ดึงหรือระบุ shared secret จากโฮสต์ gateway:
- โทเค็น:
openclaw config get gateway.auth.token - รหัสผ่าน: resolve
gateway.auth.passwordที่กำหนดค่าไว้หรือOPENCLAW_GATEWAY_PASSWORD - โทเค็นที่จัดการด้วย SecretRef: resolve ผู้ให้บริการ secret ภายนอกหรือ export
OPENCLAW_GATEWAY_TOKENใน shell นี้ แล้วรันopenclaw dashboardใหม่ - ไม่ได้กำหนดค่า shared secret:
openclaw doctor --generate-gateway-token
- โทเค็น:
- ในการตั้งค่าแดชบอร์ด ให้วางโทเค็นหรือรหัสผ่านลงในฟิลด์ auth แล้วเชื่อมต่อ
- ตัวเลือกภาษา UI อยู่ที่ ภาพรวม -> การเข้าถึง Gateway -> ภาษา เป็นส่วนหนึ่งของการ์ดการเข้าถึง ไม่ใช่ส่วน Appearance