Web interfaces
แดชบอร์ด
Gateway dashboard คือ Control UI บนเบราว์เซอร์ ซึ่งให้บริการที่ / โดยค่าเริ่มต้น (เปลี่ยนได้ด้วย 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
ข้อมูลอ้างอิงหลัก:
- Control UI สำหรับวิธีใช้งานและความสามารถของ UI
- Tailscale สำหรับการทำงานอัตโนมัติของ Serve/Funnel
- พื้นผิวเว็บ สำหรับโหมดการผูกและหมายเหตุด้านความปลอดภัย
ระบบบังคับใช้การยืนยันตัวตนระหว่างการจับมือ WebSocket ผ่านเส้นทางการยืนยันตัวตนของ Gateway ที่กำหนดค่าไว้:
connect.params.auth.tokenconnect.params.auth.password- ส่วนหัวข้อมูลประจำตัวของ Tailscale Serve เมื่อ
gateway.auth.allowTailscale: true - ส่วนหัวข้อมูลประจำตัวของพร็อกซีที่เชื่อถือได้เมื่อ
gateway.auth.mode: "trusted-proxy"
ดู gateway.auth ใน การกำหนดค่า Gateway
เส้นทางด่วน (แนะนำ)
- หลังการเริ่มต้นใช้งาน CLI จะเปิด dashboard โดยอัตโนมัติและแสดงลิงก์แบบสะอาด (ไม่มีโทเค็น)
- เปิดอีกครั้งได้ทุกเมื่อ:
openclaw dashboard(คัดลอกลิงก์ เปิดเบราว์เซอร์หากทำได้ และแสดงคำแนะนำ SSH หากไม่มีอินเทอร์เฟซกราฟิก) - หากส่งผ่านทั้งคลิปบอร์ดและเบราว์เซอร์ไม่สำเร็จ
openclaw dashboardจะยังคงแสดง URL แบบสะอาดและแจ้งให้ต่อท้ายโทเค็น (จากOPENCLAW_GATEWAY_TOKENหรือgateway.auth.token) เป็นคีย์แฟรกเมนต์ URLtoken; โดยจะไม่แสดงค่าของโทเค็นในบันทึก - หาก UI ขอการยืนยันตัวตนด้วยข้อมูลลับร่วม ให้วางโทเค็นหรือรหัสผ่านที่กำหนดค่าไว้ในการตั้งค่า Control UI
พื้นฐานการยืนยันตัวตน (ภายในเครื่องเทียบกับระยะไกล)
- Localhost: เปิด
http://127.0.0.1:18789/ - TLS ของ Gateway: เมื่อ
gateway.tls.enabled: trueลิงก์ dashboard/สถานะจะใช้https://และลิงก์ WebSocket ของ Control UI จะใช้wss:// - แหล่งที่มาของโทเค็นข้อมูลลับร่วม:
gateway.auth.token(หรือOPENCLAW_GATEWAY_TOKEN)openclaw dashboardสามารถส่งโทเค็นผ่านแฟรกเมนต์ URL เพื่อเริ่มต้นระบบครั้งเดียว โดย Control UI จะเก็บโทเค็นไว้ใน sessionStorage สำหรับแท็บปัจจุบันและ URL ของ Gateway ที่เลือก ไม่ใช่ localStorage - หาก
gateway.auth.tokenจัดการโดย SecretRef ตามการออกแบบแล้วopenclaw dashboardจะแสดง/คัดลอก/เปิด URL ที่ไม่มีโทเค็น เพื่อหลีกเลี่ยงการเปิดเผยโทเค็นที่จัดการจากภายนอกในบันทึกเชลล์ ประวัติคลิปบอร์ด หรืออาร์กิวเมนต์สำหรับเปิดเบราว์เซอร์ หากไม่สามารถแก้ไขการอ้างอิงได้ในเชลล์ปัจจุบัน ระบบจะยังคงแสดง URL ที่ไม่มีโทเค็นพร้อมคำแนะนำที่นำไปปฏิบัติได้สำหรับการตั้งค่าการยืนยันตัวตน - รหัสผ่านข้อมูลลับร่วม: ใช้
gateway.auth.passwordที่กำหนดค่าไว้ (หรือOPENCLAW_GATEWAY_PASSWORD) dashboard จะไม่เก็บรหัสผ่านไว้หลังโหลดใหม่ - โหมดที่มีข้อมูลประจำตัว: Tailscale Serve จะผ่านการยืนยันตัวตนของ Control UI/WebSocket ด้วยส่วนหัวข้อมูลประจำตัวเมื่อ
gateway.auth.allowTailscale: true; ส่วนพร็อกซีย้อนกลับที่รับรู้ข้อมูลประจำตัวและไม่ใช่ loopback จะผ่านgateway.auth.mode: "trusted-proxy"ทั้งสองแบบไม่ต้องวางข้อมูลลับร่วมสำหรับ WebSocket - ไม่ใช่ localhost: ใช้ Tailscale Serve, การผูกแบบไม่ใช่ loopback ที่ใช้ข้อมูลลับร่วม, พร็อกซีย้อนกลับแบบไม่ใช่ loopback ที่รับรู้ข้อมูลประจำตัวร่วมกับ
gateway.auth.mode: "trusted-proxy"หรืออุโมงค์ SSH ส่วน API ของ HTTP ยังคงใช้การยืนยันตัวตนด้วยข้อมูลลับร่วม เว้นแต่ตั้งใจใช้gateway.auth.mode: "none"แบบทางเข้าระบบส่วนตัว หรือการยืนยันตัวตน HTTP ของพร็อกซีที่เชื่อถือได้ ดู พื้นผิวเว็บ
เปิดใน Telegram
บอต Telegram สามารถเปิด dashboard เป็น Telegram Mini App ด้วย /dashboard
ข้อกำหนด:
gateway.tailscale.mode: "serve"หรือ"funnel"เพื่อให้ Telegram ได้รับ URL ของ Mini App แบบ HTTPS- ผู้ส่ง Telegram ต้องเป็นเจ้าของบอต: ID ผู้ใช้ Telegram แบบตัวเลขใน
commands.ownerAllowFromหรือchannels.telegram.allowFromที่มีผลของบัญชีที่เลือก - เรียกใช้
/dashboardใน DM กับบอต การเรียกใช้ในกลุ่มจะแจ้งเพียงให้เปิดคำสั่งใน DM และจะไม่มีปุ่ม - การติดตั้ง Docker: โหมด Serve/Funnel กำหนดให้ Gateway ผูกกับ loopback ข้าง
tailscaledซึ่งเครือข่ายแบบบริดจ์ที่เผยแพร่พอร์ตไม่สามารถรองรับได้ ให้เรียกใช้คอนเทนเนอร์ Gateway ด้วยnetwork_mode: hostและเมานต์ซ็อกเก็ตtailscaledของโฮสต์ (/var/run/tailscale) พร้อมทั้ง CLItailscaleเข้าไปในคอนเทนเนอร์
Mini App จะดำเนินการส่งต่อสิทธิ์ของเจ้าของครั้งเดียว และเปลี่ยนเส้นทางไปยัง Control UI พร้อมโทเค็นเริ่มต้นระบบอายุสั้น โดยไม่เปิดเผยโทเค็นร่วมของ Gateway ใน URL
สิ่งที่ไม่ใช่เป้าหมายสำหรับ v1:
- ไม่รองรับ iframe ของ Telegram Web
- Tailscale Serve/Funnel เป็นเส้นทาง URL ที่เผยแพร่ซึ่งรองรับเพียงแบบเดียว
หากพบ "unauthorized" / 1008
- ยืนยันว่าเข้าถึง Gateway ได้: ภายในเครื่องใช้
openclaw status; สำหรับระยะไกล ให้สร้างอุโมงค์ SSH ด้วยssh -N -L 18789:127.0.0.1:18789 user@gateway-hostแล้วเปิดhttp://127.0.0.1:18789/ - สำหรับ
AUTH_TOKEN_MISMATCHไคลเอนต์อาจลองใหม่แบบเชื่อถือได้หนึ่งครั้งด้วยโทเค็นอุปกรณ์ที่แคชไว้ เมื่อ Gateway ส่งคืนคำแนะนำให้ลองใหม่ โดยการลองครั้งนั้นจะนำขอบเขตที่ได้รับอนุมัติและแคชไว้ของโทเค็นกลับมาใช้ใหม่ (ผู้เรียกที่ระบุdeviceToken/scopesอย่างชัดเจนจะยังคงชุดขอบเขตที่ร้องขอไว้) หากการยืนยันตัวตนยังล้มเหลวหลังลองใหม่ ให้แก้ไขความไม่ตรงกันของโทเค็นด้วยตนเอง - สำหรับ
AUTH_SCOPE_MISMATCHระบบรู้จักโทเค็นอุปกรณ์ แต่โทเค็นไม่มีขอบเขตที่ร้องขอ ให้จับคู่ใหม่หรืออนุมัติชุดขอบเขตใหม่แทนการหมุนเวียนโทเค็นร่วมของ Gateway - นอกเส้นทางการลองใหม่นั้น ลำดับความสำคัญของการยืนยันตัวตนเพื่อเชื่อมต่อคือ: โทเค็น/รหัสผ่านร่วมที่ระบุอย่างชัดเจน จากนั้น
deviceTokenที่ระบุอย่างชัดเจน ต่อด้วยโทเค็นอุปกรณ์ที่จัดเก็บไว้ และสุดท้ายคือโทเค็นเริ่มต้นระบบ - บนเส้นทาง Tailscale Serve แบบอะซิงโครนัส ความพยายามที่ล้มเหลวสำหรับ
{scope, ip}เดียวกันจะถูกจัดลำดับก่อนที่ตัวจำกัดการยืนยันตัวตนล้มเหลวจะบันทึก ดังนั้นการลองใหม่ที่ไม่ถูกต้องครั้งที่สองซึ่งเกิดพร้อมกันอาจแสดงretry laterได้ทันที - สำหรับขั้นตอนการซ่อมแซมความไม่ตรงกันของโทเค็น โปรดดู รายการตรวจสอบการกู้คืนความไม่ตรงกันของโทเค็น
- ดึงหรือระบุข้อมูลลับร่วมจากโฮสต์ Gateway:
- โทเค็น:
openclaw config get gateway.auth.token - รหัสผ่าน: แก้ไขค่า
gateway.auth.passwordหรือOPENCLAW_GATEWAY_PASSWORDที่กำหนดค่าไว้ - โทเค็นที่จัดการโดย SecretRef: แก้ไขผู้ให้บริการข้อมูลลับภายนอก หรือส่งออก
OPENCLAW_GATEWAY_TOKENในเชลล์นี้ แล้วเรียกใช้openclaw dashboardอีกครั้ง - ไม่ได้กำหนดค่าข้อมูลลับร่วม:
openclaw doctor --generate-gateway-token
- โทเค็น:
- ในการตั้งค่า dashboard ให้วางโทเค็นหรือรหัสผ่านในช่องการยืนยันตัวตน แล้วเชื่อมต่อ
- ตัวเลือกภาษาของ UI อยู่ที่ Settings -> General -> Language ไม่ได้อยู่ใต้ Appearance
ที่เกี่ยวข้อง
Was this useful?