تثبيت Open WebUI وإعداد OmniProxy
هل تريد استخدام النماذج المحلية والسحابية في نافذة محادثة واحدة، لكنك تخشى تعقيد النشر والاتصال؟ يوفّر Open WebUI واجهة محادثة مألوفة، وبعد تثبيته يمكنك البدء باستخدامه عبر إدخال معلمات الاتصال خطوة بخطوة.
Open WebUI هو واجهة محادثة يمكنك استضافتها بنفسك وتثبيتها على حاسوبك أو خادمك، كما يمكن تشغيلها بالكامل دون اتصال بالإنترنت. وهو غير مرتبط بمزوّد نماذج واحد: يمكنك توصيله بأدوات تشغّل النماذج محليًا مثل Ollama، أو بواجهات متوافقة مع تنسيق OpenAI، أي عناوين تقدّم خدمات النماذج باستخدام تنسيق الطلبات نفسه. وبهذا يمكنك التبديل بين النماذج المحلية والسحابية من النافذة نفسها.
وهو مناسب للاستخدام طويل الأمد لدى الفرق والمؤسسات. تظهر الإمكانات الأحدث أولًا في Computer، وهو المنتج الذي يستخدمه Open WebUI لتجربة الميزات الجديدة.
التحضير قبل التثبيت
يمكن استخدام Open WebUI على macOS وLinux وWindows. ويمكن تثبيته عبر Docker أو Python أو Kubernetes. يضع Docker التطبيق وبيئة التشغيل داخل حاوية مستقلة نسبيًا، ولذلك فهو الأسلوب الموصى به. وإذا لم يتوفر Docker، يمكنك استخدام أوامر Python المجرّبة أدناه. أما Kubernetes فهو نظام لنشر الحاويات وإدارتها، ويمكن العثور على خطواته في Quick Start المشار إليه في نهاية الدليل.
الموصى به رسميًا
Docker
- أمر docker run واحد
- افتح 3000 في المتصفح
- البيانات محفوظة في وحدة التخزين
إذا كنت تريد الدردشة فقط
صورة slim
- حجم التنزيل أصغر
- غيّر الوسم إلى :slim
- تظل ميزة الدردشة متاحة
لن نتناولها هنا
طريقتان أخريان
- التثبيت اليدوي باستخدام Python
- النشر باستخدام Kubernetes
- راجع Quick Start الرسمي
جهّز ما يلي قبل البدء:
- تثبيت Docker والتأكد من أنه يعمل.
- سلسلة مفاتيح مخصّصة لاستخدامك وحدك. نفّذ
openssl rand -hex 32لإنشائها، ثم أدخلها فيWEBUI_SECRET_KEY. احتفظ بهذه القيمة دون تغيير؛ فإذا تغيّرت عند إعادة إنشاء الحاوية، فسيتم تسجيل خروج المستخدمين الذين سبق لهم تسجيل الدخول. - نسخة OmniProxy قيد التشغيل، ومعرّف النموذج من قائمة نماذجها الحالية. معرّف النموذج هو الاسم الكامل المستخدم عند اختيار نموذج محدد.
التثبيت والتشغيل لأول مرة
افتح الطرفية ونفّذ الأمر الوارد في Quick Start. استبدل أولًا your-secret-key بسلسلة المفاتيح التي أنشأتها للتو:
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data -e WEBUI_SECRET_KEY=your-secret-key --name open-webui --restart always ghcr.io/open-webui/open-webui:main
تؤدي الخيارات الواردة في هذا الأمر الوظائف التالية:
-p 3000:8080: يتيح لك فتح الواجهة عبر المنفذ 3000 على هذا الحاسوب. إذا كان المنفذ 3000 مستخدمًا، فغيّر الرقم الموجود على اليسار.-v open-webui:/app/backend/data: يخزّن المحادثات والمستخدمين والإعدادات في وحدة تخزين بيانات. وحدة التخزين هي موقع خارج الحاوية يحتفظ بالبيانات على المدى الطويل، ولذلك تبقى البيانات بعد تحديث الحاوية. لا تحذف هذا الخيار.--add-host=host.docker.internal:host-gateway: يسمح للحاوية بالوصول إلى الخدمات الأخرى التي تعمل على هذا الحاسوب.--restart always: يعيد تشغيل الحاوية بعد إعادة تشغيل الحاسوب.
بعد تنفيذ الأمر، افتح http://localhost:3000 في المتصفح وأنشئ الحساب الأول وفقًا للتعليمات الظاهرة في الصفحة.
إذا كنت ستستخدم واجهة API للمحادثة فقط، فيمكنك تغيير وسم الصورة من :main إلى :slim. صورة slim أصغر حجمًا، ولا تتضمن نماذج الصوت والتضمين المحلية داخل الحاوية، لكن واجهة المحادثة تظل متاحة. إذا كنت تحتاج إلى هذه الإمكانات المحلية، فاستمر في استخدام :main.
عند التحديث يدويًا، نفّذ أولًا docker rm -f open-webui، ثم نفّذ docker pull ghcr.io/open-webui/open-webui:main، وبعد ذلك أعد التشغيل باستخدام أمر docker run نفسه. يجب الإبقاء على وحدة تخزين البيانات وقيمة WEBUI_SECRET_KEY دون تغيير.
عند عدم توفر Docker
يوفّر Quick Start أيضًا طريقة تثبيت باستخدام Python. في 2026-10-09، استُخدم الأمر التالي على macOS لتثبيت Open WebUI v0.11.4 وإكمال محادثة واحدة. لم يكن Docker Desktop مثبتًا على ذلك الحاسوب حينها.
DATA_DIR=~/.open-webui uvx --python 3.11 open-webui@latest serve
بعد التشغيل، افتح http://localhost:8080 في المتصفح. هذا هو المنفذ المستخدم عند التثبيت عبر Python، وليس منفذ Docker رقم 3000.
عند التشغيل لأول مرة، سيُنزل البرنامج نموذج تضمين، وقد يستغرق ذلك بضع دقائق. يحوّل نموذج التضمين النص إلى بيانات مناسبة للبحث والمطابقة. انتظر حتى تظهر صفحة تسجيل الدخول قبل المتابعة؛ وسيصبح أول حساب مسجّل هو حساب المسؤول. تتبع لغة الواجهة لغة النظام، وقد ظهرت بالصينية المبسطة في هذا الاختبار.
يجب أن يشير DATA_DIR إلى مجلد سيبقى متاحًا على المدى الطويل لتخزين بيانات Open WebUI. إذا لم تضبطه، فقد تُحفظ البيانات في مجلد مؤقت وتُفقد بعد إغلاق البرنامج. وعند عدم ضبط WEBUI_SECRET_KEY، ينشئ البرنامج ملف .webui_secret_key في المجلد الحالي. شغّل البرنامج من مجلد تنوي الاحتفاظ به، أو اضبط هذا المتغير بنفسك.
الحصول على معلمات الاتصال من OmniProxy
انسخ العناصر الثلاثة التالية من نسخة OmniProxy الخاصة بك:
URL: https://your-omniproxy-origin.example/v1
API Key: <YOUR_OMNIPROXY_API_KEY>
Model ID: انسخ المعرّف الكامل من قائمة نماذج OmniProxy الحالية
URL هو العنوان الذي يستخدمه Open WebUI للاتصال بواجهة API، ويجب أن ينتهي بـ /v1. لا تضف /chat/completions في نهايته، لأن Open WebUI سيضيف هذا الجزء بنفسه.
انسخ معرّف النموذج كاملًا من قائمة OmniProxy الحالية. إذا كان المعرّف يتضمن بادئة للمصدر وشرطة مائلة، فاحتفظ بهما أيضًا. الاسمان المختصران التاليان مذكوران للمقارنة فقط وفقًا لوثائق المزوّدين بتاريخ 2026-10-09؛ لا تستخدمهما إذا لم يكونا موجودين في القائمة الحالية:
- معرّف Claude API لنموذج Claude Sonnet 5.5:
claude-sonnet-5-5 - اسم واجهة API لنموذج Gemini 3.8 Flash:
gemini-3.8-flash
لا تُدخل مفتاح المزوّد في Open WebUI. إذا كانت البوابة لا تتحقق من المفتاح، فيمكن ترك حقل مفتاح API فارغًا، ولا تنشئ سلسلة مفاتيح أخرى من عندك.
المتصفح
المنفذ المحلي 3000
- افتح صفحة الدردشة
- أكمل التسجيل أولًا
- ثم انتقل إلى الإعدادات
داخل الحاوية
Open WebUI
- لا تكتب localhost
- استخدم اسم الجهاز المضيف بدلًا منه
- اجعل URL ينتهي بـ /v1
على الجهاز نفسه
OmniProxy
- اترك المفتاح في البوابة
- اعتمد قائمة النماذج في البوابة
- ثم راجع سجل الاستدعاءات
إذا كانت خدمة النماذج تعمل على الجهاز المضيف بينما يعمل Open WebUI داخل حاوية Docker، فاستبدل localhost في URL بـ host.docker.internal. الجهاز المضيف هو الحاسوب الذي يشغّل Docker مباشرة. إذا كان OmniProxy يستمع على هذا الحاسوب فقط، فيمكن أن يكون URL بالشكل http://host.docker.internal:المنفذ/v1، مع استبدال المنفذ بالمنفذ الفعلي الذي يستخدمه OmniProxy.
إذا كان Open WebUI يعمل محليًا باستخدام أمر Python الوارد في القسم السابق، وكان OmniProxy يعمل محليًا أيضًا، فاستخدم 127.0.0.1 أو localhost في العنوان. لا تستخدم host.docker.internal في هذه الحالة.
إدخال إعدادات الأداة
اختلفت أسماء الخيارات في واجهة v0.11.4 بالصينية المبسطة بتاريخ 2026-10-09 عن المسار Settings > Admin > Connections الوارد في التعليمات الإنجليزية. اتبع الخيارات التي ظهرت فعليًا في الواجهة:
- وسّع الشريط الجانبي الأيسر.
- انقر على قائمة المستخدم في الأسفل.
- انقر على الإعدادات.
- ضمن مجموعة المسؤول في الأسفل، انقر على الاتصالات الخارجية.
- افتح واجهة OpenAI.
- انقر على + إلى يمين إدارة اتصالات واجهة OpenAI.
- في نافذة تحرير الاتصال المنبثقة، أدخل URL منتهيًا بـ
/v1. اترك نوع الواجهة مضبوطًا على Chat Completions. - اترك طريقة المصادقة مضبوطة على المفتاح (Bearer). Bearer هي طريقة لوضع مفتاح API داخل الطلب للتحقق من الهوية. عندما يزوّدك OmniProxy بمفتاح، أدخله في مفتاح API. إذا كانت البوابة لا تتحقق من المفتاح، فاترك هذا الحقل فارغًا. في 2026-10-09، نجح التحقق وإجراء محادثة واحدة مع تركه فارغًا.
- انقر على التحقق من الاتصال بجوار URL. إذا كان OmniProxy يوفّر
/models، فسيتم جلب قائمة النماذج هنا. - افتح متقدم. عند ترك معرّف النموذج فارغًا، ستُستخدم جميع النماذج التي يعيدها
/modelsلهذا العنوان. إذا فشل التحقق، فأدخل عندها المعرّف الكامل من القائمة في إضافة معرّف نموذج، ثم انقر على إضافة. أضف كل معرّف مرة واحدة فقط؛ وستُحذف المسافات الموجودة قبله وبعده. - انقر على حفظ في هذه النافذة، ثم انقر على حفظ في الزاوية السفلية اليمنى من صفحة الاتصالات الخارجية.
حفظ الإعدادات وحده لا يغني عن التحقق. يرسل خيار التحقق من الاتصال طلبًا إلى /models لدى الطرف الآخر، وهي الواجهة المستخدمة لسرد النماذج المتاحة. بعض الخدمات لا توفّر هذه الواجهة، ولذلك قد يفشل التحقق رغم أن المحادثة قد تظل قابلة للاستخدام. في هذه الحالة، أضف معرّف النموذج يدويًا.
التحقق باستخدام مهمة فعلية
عُد إلى صفحة المحادثة، وافتح قائمة النماذج بجوار مربع الإدخال، ثم اختر المعرّف الكامل من قائمة OmniProxy. أرسل عبارة قصيرة جدًا، مثل طلب الرد بكلمة واحدة فقط. يجب أن يظهر رد فعلي داخل مربع المحادثة.
في 2026-10-09، اكتملت هذه المحادثة باستخدام تثبيت Python للإصدار v0.11.4. يظل Docker هو الأسلوب الموصى به، لكن الاختبار لم يُعَد داخل Docker هذه المرة.
بعد ذلك، افتح سجل الاستدعاءات في OmniProxy وتأكد من مصدر الطلب ومعرّف النموذج المستخدم. لا يكفي ظهور رسالة نجاح الحفظ، ولا يكفي ظهور النموذج في القائمة لإتمام التحقق.
الواجهة
يمكن اختيار النموذج
- تم حفظ Connections
- يظهر النموذج في القائمة
- أرسل سؤالًا قصيرًا
الرد
توجد إجابة في مربع الدردشة
- ليست رسالة فارغة
- ليس خطأ اتصال
- جرّب مرة أخرى باستخدام نموذج آخر
السجل
يظهر في البوابة
- المصدر هو هذا الاتصال
- معرّف النموذج متطابق
- لم يُدخل المفتاح في الصفحة
الأخطاء الشائعة
- استخدام
localhostأو127.0.0.1داخل الحاوية: يشير هذان العنوانان إلى الحاوية نفسها، وليس إلى الجهاز المضيف. استبدلهما بـhost.docker.internal، وتأكد من وجود--add-host=host.docker.internal:host-gatewayفي أمر التشغيل. إذا لم يكن Open WebUI داخل حاوية، فافعل العكس واستخدم العنوان المحلي. - تعذّر فتح الصفحة في المتصفح: تحقّق من المنفذ 3000 عند استخدام Docker، ومن المنفذ 8080 عند استخدام Python. عند التشغيل لأول مرة، انتظر حتى يكتمل تنزيل نموذج التضمين. يمكنك استخدام
docker psللتأكد من أن الحاوية تعمل. إذا كان المنفذ 3000 مستخدمًا، فغيّر المنفذ الموجود على يسار-p. - معرّف النموذج في القائمة أطول من الاسم المختصر لدى المزوّد: استخدم المعرّف الكامل الظاهر في القائمة، بما في ذلك الشرطات المائلة.
- تسجيل خروج الجميع بعد التحديث: تغيّرت قيمة
WEBUI_SECRET_KEY. أعد التشغيل باستخدام سلسلة المفاتيح التي أنشأتها في المرة الأولى. - فشل التحقق من الاتصال: أضف معرّف النموذج يدويًا ضمن متقدم، ثم تحقّق باستخدام محادثة فعلية قصيرة. بعض الخدمات لا توفّر
/models، وقد تظل المحادثة قابلة للاستخدام رغم فشل التحقق. - النموذج غير موجود: انسخ المعرّف مجددًا من قائمة OmniProxy الحالية، ولا تستمر في استخدام اسم قديم.
المراجع الرسمية
راجع أمر التثبيت في Open WebUI Quick Start. وراجع خطوات الاتصال في تعليمات الاتصال المتوافق مع OpenAI. أما معرّفات النماذج المستخدمة في الأمثلة، فراجع نظرة عامة على نماذج Claude وقائمة نماذج Gemini.
استبدل كل عنصر نائب بقيم إعداد OmniProxy الخاصة بك. لا تنشر مفتاحاً حقيقياً أبداً.
لا يثبت الحفظ الناجح أو HTTP 200 وحده توافق Agent الكامل. تحقق من المصدر والنموذج في سجل استدعاءات OmniProxy.