Web interfaces
لوحة المعلومات
لوحة معلومات Gateway هي واجهة 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 للاستخدام وإمكانات واجهة المستخدم.
- 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 لوحة المعلومات تلقائيًا وتطبع رابطًا نظيفًا (من دون رمز).
- أعِد فتحها في أي وقت:
openclaw dashboard(ينسخ الرابط، ويفتح متصفحًا إن أمكن، ويطبع تلميحًا لاستخدام SSH إذا كانت البيئة بلا واجهة رسومية). - إذا فشل كل من التسليم عبر الحافظة والمتصفح، فسيظل
openclaw dashboardيطبع عنوان URL النظيف ويطلب منك إلحاق رمزك (منOPENCLAW_GATEWAY_TOKENأوgateway.auth.token) كمفتاح جزء URLtoken؛ ولا يطبع قيمة الرمز في السجلات مطلقًا. - إذا طلبت الواجهة استيثاقًا بسر مشترك، فألصق الرمز أو كلمة المرور المُهيأة في إعدادات Control UI.
أساسيات الاستيثاق (محلي مقابل بعيد)
- المضيف المحلي: افتح
http://127.0.0.1:18789/. - TLS لـ Gateway: عندما
gateway.tls.enabled: true، تستخدم روابط لوحة المعلومات/الحالةhttps://، وتستخدم روابط WebSocket الخاصة بـ Control UIwss://. - مصدر رمز السر المشترك:
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). لا تحتفظ لوحة المعلومات بكلمات المرور بعد إعادة التحميل. - الأوضاع الحاملة للهوية: يستوفي Tailscale Serve استيثاق Control UI/WebSocket عبر ترويسات الهوية عندما
gateway.auth.allowTailscale: true؛ ويستوفي وكيل عكسي مدرك للهوية وغير مرتبط بواجهة الاسترجاعgateway.auth.mode: "trusted-proxy". ولا يتطلب أي منهما لصق سر مشترك من أجل WebSocket. - ليس المضيف المحلي: استخدم Tailscale Serve، أو ربطًا بسر مشترك خارج واجهة الاسترجاع، أو وكيلًا عكسيًا مدركًا للهوية خارج واجهة الاسترجاع مع
gateway.auth.mode: "trusted-proxy"، أو نفق SSH. تظل واجهات HTTP API تستخدم استيثاق السر المشترك ما لم تُشغّل عمدًاgateway.auth.mode: "none"عبر إدخال خاص أو استيثاق HTTP بالوكيل الموثوق. راجع واجهات الويب.
الفتح في Telegram
يمكن لروبوتات Telegram فتح لوحة المعلومات كتطبيق Telegram مصغر باستخدام /dashboard.
المتطلبات:
gateway.tailscale.mode: "serve"أو"funnel"لكي يحصل Telegram على عنوان URL بتنسيق HTTPS للتطبيق المصغر.- يجب أن يكون مُرسِل Telegram هو مالك الروبوت: معرّف مستخدم Telegram رقمي في
commands.ownerAllowFromأو القيمة الفعلية لـchannels.telegram.allowFromللحساب المحدد. - شغّل
/dashboardفي رسالة خاصة مع الروبوت. أما الاستدعاءات في المجموعات فتطلب منك فقط فتح الأمر في رسالة خاصة ولا تتضمن زرًا. - عمليات تثبيت Docker: تتطلب أوضاع Serve/Funnel ربط Gateway بواجهة الاسترجاع بجوار
tailscaled، وهو ما لا يمكن لشبكات الجسر ذات المنافذ المنشورة استيفاؤه. شغّل حاوية Gateway باستخدامnetwork_mode: host، وثبّت مقبس المضيفtailscaled(/var/run/tailscale) بالإضافة إلى CLItailscaleداخل الحاوية.
ينفّذ التطبيق المصغر عملية تسليم لمرة واحدة إلى المالك ويعيد التوجيه إلى 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
- الرمز:
- في إعدادات لوحة المعلومات، ألصق الرمز أو كلمة المرور في حقل الاستيثاق، ثم اتصل.
- يوجد منتقي لغة الواجهة في Settings -> General -> Language، وليس ضمن Appearance.
ذو صلة
Was this useful?