Ana içeriğe atla
Gateway, Gateway WebSocket ile aynı porttan küçük bir tarayıcı Denetim Arayüzü (Vite + Lit) sunar:
  • varsayılan: http://<host>:18789/
  • gateway.tls.enabled: true ile: https://<host>:18789/
  • isteğe bağlı önek: gateway.controlUi.basePath ayarını belirleyin (örn. /openclaw)
Yetenekler Denetim Arayüzü içinde yer alır. Bu sayfanın geri kalanı bağlama kiplerine, güvenliğe ve web’e açık yüzeylere odaklanır.

Webhook’lar

hooks.enabled=true olduğunda Gateway, aynı HTTP sunucusunda küçük bir Webhook uç noktası da sunar. Kimlik doğrulama + yükler için Gateway yapılandırmasıhooks bölümüne bakın.

Yönetici HTTP RPC

Yönetici HTTP RPC, seçili Gateway denetim düzlemi yöntemlerini POST /api/v1/admin/rpc üzerinde sunar. Varsayılan olarak kapalıdır ve yalnızca admin-http-rpc plugin’i etkinleştirildiğinde kaydedilir. Kimlik doğrulama modeli, izin verilen yöntemler ve WebSocket karşılaştırması için Yönetici HTTP RPC bölümüne bakın.

Yapılandırma (varsayılan olarak açık)

Denetim Arayüzü, varlıklar mevcut olduğunda (dist/control-ui) varsayılan olarak etkindir. Bunu yapılandırma üzerinden denetleyebilirsiniz:
{
  gateway: {
    controlUi: { enabled: true, basePath: "/openclaw" }, // basePath optional
  },
}

Tailscale erişimi

Tümleşik Serve (önerilir)

Gateway’i loopback üzerinde tutun ve Tailscale Serve’ün bunu proxy üzerinden aktarmasına izin verin:
{
  gateway: {
    bind: "loopback",
    tailscale: { mode: "serve" },
  },
}
Ardından gateway’i başlatın:
openclaw gateway
Açın:
  • https://<magicdns>/ (veya yapılandırdığınız gateway.controlUi.basePath)

Tailnet bağlama + belirteç

{
  gateway: {
    bind: "tailnet",
    controlUi: { enabled: true },
    auth: { mode: "token", token: "your-token" },
  },
}
Ardından gateway’i başlatın (bu loopback olmayan örnek, paylaşılan gizli anahtar belirteci kimlik doğrulamasını kullanır):
openclaw gateway
Açın:
  • http://<tailscale-ip>:18789/ (veya yapılandırdığınız gateway.controlUi.basePath)

Herkese açık internet (Funnel)

{
  gateway: {
    bind: "loopback",
    tailscale: { mode: "funnel" },
    auth: { mode: "password" }, // or OPENCLAW_GATEWAY_PASSWORD
  },
}

Güvenlik notları

  • Gateway kimlik doğrulaması varsayılan olarak gereklidir (belirteç, parola, trusted-proxy veya etkinleştirildiğinde Tailscale Serve kimlik başlıkları).
  • Loopback olmayan bağlamalar yine de gateway kimlik doğrulaması gerektirir. Pratikte bu, belirteç/parola kimlik doğrulaması veya gateway.auth.mode: "trusted-proxy" kullanan kimlik farkındalığına sahip bir ters proxy anlamına gelir.
  • Sihirbaz varsayılan olarak paylaşılan gizli anahtar kimlik doğrulaması oluşturur ve genellikle bir gateway belirteci üretir (loopback üzerinde bile).
  • Paylaşılan gizli anahtar kipinde, kullanıcı arayüzü connect.params.auth.token veya connect.params.auth.password gönderir.
  • gateway.tls.enabled: true olduğunda, yerel pano ve durum yardımcıları https:// pano URL’lerini ve wss:// WebSocket URL’lerini işler.
  • Tailscale Serve veya trusted-proxy gibi kimlik taşıyan kiplerde, WebSocket kimlik doğrulama denetimi bunun yerine istek başlıklarından karşılanır.
  • Herkese açık loopback olmayan Denetim Arayüzü dağıtımları için gateway.controlUi.allowedOrigins değerini açıkça (tam kaynaklar olarak) ayarlayın. Özel aynı kaynaklı LAN/Tailnet yüklemeleri; loopback, RFC1918/link-local, .local, .ts.net ve Tailscale CGNAT ana makineleri için kabul edilir.
  • gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=true, Host başlığı kaynak geri dönüş kipini etkinleştirir, ancak bu tehlikeli bir güvenlik zayıflatmasıdır.
  • Serve ile, gateway.auth.allowTailscale true olduğunda Tailscale kimlik başlıkları Denetim Arayüzü/WebSocket kimlik doğrulamasını karşılayabilir (belirteç/parola gerekmez). HTTP API uç noktaları bu Tailscale kimlik başlıklarını kullanmaz; bunun yerine gateway’in normal HTTP kimlik doğrulama kipini izler. Açık kimlik bilgileri gerektirmek için gateway.auth.allowTailscale: false ayarını belirleyin. Tailscale ve Güvenlik bölümlerine bakın. Bu belirteçsiz akış, gateway ana makinesinin güvenilir olduğunu varsayar.
  • gateway.tailscale.mode: "funnel", gateway.auth.mode: "password" (paylaşılan parola) gerektirir.

Kullanıcı arayüzünü derleme

Gateway, statik dosyaları dist/control-ui konumundan sunar. Bunları şu komutla derleyin:
pnpm ui:build