Skip to main content

الويب (Gateway)

يقدّم Gateway واجهة تحكم في المتصفح صغيرة (Vite + Lit) من نفس المنفذ الذي يستخدمه WebSocket الخاص بـ Gateway:
  • الافتراضي: http://<host>:18789/
  • بادئة اختيارية: عيّن gateway.controlUi.basePath (مثلًا /openclaw)
توجد القدرات في واجهة التحكم. تركّز هذه الصفحة على أوضاع الربط، والأمان، والأسطح الموجّهة للويب.

خطافات الويب

عند hooks.enabled=true، يوفّر Gateway أيضًا نقطة نهاية webhook صغيرة على نفس خادم HTTP. راجع تهيئة Gatewayhooks للمصادقة والحمولات.

التهيئة (مفعّلة افتراضيًا)

تكون واجهة التحكم مفعّلة افتراضيًا عند توفّر الأصول (dist/control-ui). يمكنك التحكم بها عبر التهيئة:

الوصول عبر Tailscale

Serve المتكامل (موصى به)

أبقِ Gateway على local loopback ودع Tailscale Serve يعمل كوكيل:
ثم شغّل Gateway:
افتح:
  • https://<magicdns>/ (أو gateway.controlUi.basePath الذي قمت بتهيئته)

الربط على Tailnet + رمز مميّز

ثم شغّل Gateway (الرمز المميّز مطلوب لعمليات الربط غير المحلية):
افتح:
  • http://<tailscale-ip>:18789/ (أو gateway.controlUi.basePath الذي قمت بتهيئته)

الإنترنت العام (Funnel)

ملاحظات الأمان

  • المصادقة على Gateway مطلوبة افتراضيًا (رمز مميّز/كلمة مرور أو رؤوس هوية Tailscale).
  • عمليات الربط غير المحلية تتطلّب رمزًا/كلمة مرور مشتركة (gateway.auth أو متغيرات البيئة).
  • يقوم معالج الإعداد بإنشاء رمز Gateway افتراضيًا (حتى على local loopback).
  • ترسل الواجهة connect.params.auth.token أو connect.params.auth.password.
  • ترسل واجهة التحكم رؤوسًا مضادّة للنقر الاحتيالي (anti-clickjacking) ولا تقبل اتصالات WebSocket من المتصفح إلا من نفس الأصل، ما لم يتم تعيين gateway.controlUi.allowedOrigins.
  • مع Serve، يمكن لرؤوس هوية Tailscale تلبية متطلبات المصادقة عندما يكون gateway.auth.allowTailscale هو true (لا يلزم رمز/كلمة مرور). عيّن gateway.auth.allowTailscale: false لطلب بيانات اعتماد صريحة. راجع Tailscale والأمان.
  • يتطلّب gateway.tailscale.mode: "funnel" وجود gateway.auth.mode: "password" (كلمة مرور مشتركة).

بناء الواجهة

يقدّم Gateway الملفات الثابتة من dist/control-ui. ابنِها باستخدام: