Web interfaces
Dasbor
Dasbor Gateway adalah UI Kontrol browser yang secara default disajikan di /
(ganti dengan gateway.controlUi.basePath).
Buka cepat (Gateway lokal):
- http://127.0.0.1:18789/ (atau http://localhost:18789/)
- Dengan
gateway.tls.enabled: true, gunakanhttps://127.0.0.1:18789/danwss://127.0.0.1:18789untuk endpoint WebSocket.
Referensi utama:
- UI Kontrol untuk penggunaan dan kemampuan UI.
- Tailscale untuk otomatisasi Serve/Funnel.
- Permukaan web untuk mode bind dan catatan keamanan.
Autentikasi diterapkan pada handshake WebSocket melalui jalur auth gateway yang dikonfigurasi:
connect.params.auth.tokenconnect.params.auth.password- header identitas Tailscale Serve ketika
gateway.auth.allowTailscale: true - header identitas trusted-proxy ketika
gateway.auth.mode: "trusted-proxy"
Lihat gateway.auth di Konfigurasi Gateway.
Catatan keamanan: UI Kontrol adalah permukaan admin (chat, config, persetujuan exec). Jangan ekspos secara publik. UI menyimpan token URL dasbor di sessionStorage untuk sesi tab browser saat ini dan URL gateway yang dipilih, lalu menghapusnya dari URL setelah dimuat. Utamakan localhost, Tailscale Serve, atau tunnel SSH.
Jalur cepat (direkomendasikan)
- Setelah onboarding, CLI otomatis membuka dasbor dan mencetak tautan bersih (tanpa token).
- Buka ulang kapan saja:
openclaw dashboard(menyalin tautan, membuka browser jika memungkinkan, menampilkan petunjuk SSH jika headless). - Jika pengiriman melalui clipboard dan browser gagal,
openclaw dashboardtetap mencetak URL bersih dan memberi tahu Anda untuk menggunakan token dariOPENCLAW_GATEWAY_TOKENataugateway.auth.tokensebagai kunci fragmen URLtoken; perintah ini tidak mencetak nilai token di log. - Jika UI meminta auth rahasia bersama, tempel token atau kata sandi yang dikonfigurasi ke pengaturan UI Kontrol.
Dasar auth (lokal vs jarak jauh)
- Localhost: buka
http://127.0.0.1:18789/. - TLS Gateway: ketika
gateway.tls.enabled: true, tautan dasbor/status menggunakanhttps://dan tautan WebSocket UI Kontrol menggunakanwss://. - Sumber token rahasia bersama:
gateway.auth.token(atauOPENCLAW_GATEWAY_TOKEN);openclaw dashboarddapat meneruskannya melalui fragmen URL untuk bootstrap satu kali, dan UI Kontrol menyimpannya di sessionStorage untuk sesi tab browser saat ini dan URL gateway yang dipilih, bukan di localStorage. - Jika
gateway.auth.tokendikelola SecretRef,openclaw dashboardsengaja mencetak/menyalin/membuka URL tanpa token. Ini menghindari tereksposnya token yang dikelola secara eksternal di log shell, riwayat clipboard, atau argumen peluncuran browser. - Jika
gateway.auth.tokendikonfigurasi sebagai SecretRef dan belum terselesaikan di shell Anda saat ini,openclaw dashboardtetap mencetak URL tanpa token beserta panduan penyiapan auth yang dapat ditindaklanjuti. - Kata sandi rahasia bersama: gunakan
gateway.auth.passwordyang dikonfigurasi (atauOPENCLAW_GATEWAY_PASSWORD). Dasbor tidak mempertahankan kata sandi lintas pemuatan ulang. - Mode yang membawa identitas: Tailscale Serve dapat memenuhi auth UI Kontrol/WebSocket
melalui header identitas ketika
gateway.auth.allowTailscale: true, dan reverse proxy non-loopback yang sadar identitas dapat memenuhigateway.auth.mode: "trusted-proxy". Dalam mode tersebut, dasbor tidak memerlukan rahasia bersama yang ditempel untuk WebSocket. - Bukan localhost: gunakan Tailscale Serve, bind rahasia bersama non-loopback,
reverse proxy non-loopback yang sadar identitas dengan
gateway.auth.mode: "trusted-proxy", atau tunnel SSH. API HTTP tetap menggunakan auth rahasia bersama kecuali Anda sengaja menjalankangateway.auth.mode: "none"untuk ingress privat atau auth HTTP trusted-proxy. Lihat Permukaan web.
Jika Anda melihat "unauthorized" / 1008
- Pastikan gateway dapat dijangkau (lokal:
openclaw status; jarak jauh: tunnel SSHssh -N -L 18789:127.0.0.1:18789 user@hostlalu bukahttp://127.0.0.1:18789/). - Untuk
AUTH_TOKEN_MISMATCH, klien dapat melakukan satu percobaan ulang tepercaya dengan token perangkat yang di-cache ketika gateway mengembalikan petunjuk retry. Retry token yang di-cache tersebut menggunakan ulang cakupan yang disetujui dari cache token; pemanggildeviceTokeneksplisit /scopeseksplisit mempertahankan kumpulan cakupan yang diminta. Jika auth masih gagal setelah retry tersebut, selesaikan drift token secara manual. - Di luar jalur retry tersebut, prioritas auth koneksi adalah token/kata sandi bersama eksplisit terlebih dahulu, lalu
deviceTokeneksplisit, lalu token perangkat tersimpan, lalu token bootstrap. - Pada jalur UI Kontrol Tailscale Serve asinkron, percobaan gagal untuk
{scope, ip}yang sama diserialkan sebelum limiter auth gagal mencatatnya, sehingga retry buruk kedua yang bersamaan sudah dapat menampilkanretry later. - Untuk langkah perbaikan drift token, ikuti Daftar periksa pemulihan drift token.
- Ambil atau berikan rahasia bersama dari host gateway:
- Token:
openclaw config get gateway.auth.token - Kata sandi: selesaikan
gateway.auth.passwordyang dikonfigurasi atauOPENCLAW_GATEWAY_PASSWORD - Token yang dikelola SecretRef: selesaikan penyedia rahasia eksternal atau ekspor
OPENCLAW_GATEWAY_TOKENdi shell ini, lalu jalankan ulangopenclaw dashboard - Tidak ada rahasia bersama yang dikonfigurasi:
openclaw doctor --generate-gateway-token
- Token:
- Di pengaturan dasbor, tempel token atau kata sandi ke kolom auth, lalu hubungkan.
- Pemilih bahasa UI ada di Ikhtisar -> Akses Gateway -> Bahasa. Ini adalah bagian dari kartu akses, bukan bagian Tampilan.