الذكاء الاصطناعي9 دقيقة قراءة

واجهة ويب Open-WebUI مع Ollama على VPS للفرق

‏Ollama يخدم نماذج اللغة الخاصة بك عبر واجهة برمجة تطبيقات محلية. ‏Open-WebUI يضيف طبقة الواجهة: تطبيق ويب متكامل مع إدارة المستخدمين، وRAG على المستندات، وسجل المحادثات، والمصادقة عبر SSO. من خلال نشر الاثنين على خادم VPS الخاص بك، تمنح فريقك بأكمله وصولاً إلى نماذج LLM خاصة دون الكشف عن واجهة API الخام أو الحاجة إلى سطر الأوامر. يتناول هذا الدليل التثبيت والخادم الوكيل العكسي وSSO وإدارة الصلاحيات.

لماذا تضيف Open-WebUI إلى خادم Ollama الخاص بك

‏Ollama يعرض واجهة برمجة REST متوافقة مع OpenAI — فعّالة للمطورين، غير قابلة للوصول لأعضاء الفريق الآخرين. ‏Open-WebUI يسد هذه الفجوة: واجهة ويب متكاملة تتصل بـ Ollama (أو أي مزود متوافق مع OpenAI) وتحول خادم الاستدلال إلى أداة تعاونية.

بأكثر من 150,000 نجمة على GitHub (ترخيص MIT)، أصبح Open-WebUI الواجهة الأمامية المرجعية لـ Ollama. نما انتشاره بشكل كبير بعد جولة التمويل من السلسلة B لـ Ollama — 65 مليون دولار جُمعت في يوليو 2026 — مما سرّع اعتماد محرك الاستدلال في فرق التطوير.

المشروع نشط، يُصان بشكل مستمر، ويصدر وسوماً مستقرة (‏v0.6.x وقت كتابة هذا الدليل). تسمح له نضجه بتلبية احتياجات تتجاوز المحادثة: RAG على الملفات المحلية، وإدارة نماذج متعددة، ومجموعات مستخدمين، وتكامل SSO عبر OpenID Connect.

ما يضيفه Open-WebUI فعلياً إلى مجموعة Ollama الخاصة بك

  • واجهة متعددة المستخدمين: لكل عضو في الفريق حسابه وسجله ومحادثاته — دون الوصول إلى API الخام أو سطر الأوامر.
  • RAG أصيل: استورد ملفات PDF وMarkdown وWord مباشرة من الواجهة؛ يقوم Open-WebUI بتقسيمها وتحويلها إلى متجهات وتخزينها في قاعدة بياناته المحلية.
  • إدارة النماذج: تنزيل وحذف وتفعيل نماذج Ollama من واجهة الويب، دون الحاجة إلى docker exec.
  • تسجيل دخول موحد SSO عبر OpenID Connect: اربط Open-WebUI بمزود الهوية الخاص بك (Keycloak أو Authentik أو Google Workspace...) للوصول الموحد والإلغاء المركزي.
  • مجموعات وأدوار: حدّد من يصل إلى النماذج، ومن يرفع الملفات، ومن يملك حقوق الإدارة.
  • لا اعتماد على السحابة: جميع الرموز المميزة والمحادثات والملفات تبقى على بنيتك التحتية.

المتطلبات المادية والبرمجية

‏Open-WebUI يعمل في حاوية Docker ويتصل بـ Ollama عبر شبكة Docker الداخلية. يمكن لكليهما العمل على نفس خادم VPS.

لفريق من 5 إلى 10 أشخاص مع نماذج 7B المكمية (Q4)، تحتاج على الأقل إلى:

- 8 جيجابايت RAM (6 جيجابايت للنموذج + هامش لـ Open-WebUI والنظام)
- 4 vCPU: الاستدلال على المعالج بطيء مع عدد أقل من النوى؛ انتقل إلى 8 vCPU للاستخدام اليومي المريح
- 30 جيجابايت تخزين SSD على الأقل، بالإضافة إلى مساحة للنماذج (نموذج 7B Q4 ≈ 4.5 جيجابايت، نموذج 13B ≈ 8 جيجابايت)
- Docker وDocker Compose مثبَّتان
- اسم نطاق يشير إلى خادم VPS الخاص بك (مطلوب لـ TLS وSSO)
- خادم وكيل عكسي مع HTTPS — Nginx أو Traefik أو Caddy (يتطلب Open-WebUI بروتوكول HTTPS لملفات تعريف الارتباط الآمنة للجلسة)

نشر Open-WebUI وOllama باستخدام Docker Compose

01

إنشاء ملف Docker Compose

أنشئ دليل عمل ثم اكتب ملف التكوين:

mkdir -p /opt/openwebui && cd /opt/openwebui

محتوى ملف ‎compose.yml‎:

services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    volumes:
      - ollama_data:/root/.ollama
    restart: unless-stopped

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    depends_on:
      - ollama
    ports:
      - "127.0.0.1:3000:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
      - WEBUI_SECRET_KEY=غيّر-هذا-بسلسلة-عشوائية
    volumes:
      - open_webui_data:/app/backend/data
    restart: unless-stopped

volumes:
  ollama_data:
  open_webui_data:

يجب أن يكون ‎WEBUI_SECRET_KEY‎ سلسلة عشوائية طويلة: أنشئها باستخدام ‎openssl rand -hex 32‎.

02

تشغيل المجموعة

شغّل الخدمتين:

docker compose up -d

تحقق من أن الحاويتين نشطتان:

docker compose ps

قد يستغرق Ollama بضع ثوانٍ للبدء. ينتظر Open-WebUI جاهزية Ollama بفضل depends_on، لكن إذا رأيت أخطاء اتصال عند أول تشغيل، انتظر 15 ثانية ثم أعد التحميل.

03

تنزيل أول نموذج

من المضيف، نزّل نموذجاً عبر Ollama:

docker exec -it ollama ollama pull llama3.1:8b

يمكنك أيضاً القيام بذلك من واجهة Open-WebUI بعد تسجيل الدخول، في لوحة الإدارة ← النماذج ← تنزيل من ‎Ollama.com‎.

04

تكوين الخادم الوكيل العكسي Nginx مع HTTPS

‏Open-WebUI يستمع على ‎127.0.0.1:3000‎. أنشئ مضيفاً افتراضياً في Nginx لعرضه عبر HTTPS:

server {
    listen 443 ssl;
    server_name openwebui.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/openwebui.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/openwebui.yourdomain.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 300s;
    }
}

احصل على الشهادة باستخدام Certbot:

certbot --nginx -d openwebui.yourdomain.com
05

إنشاء حساب المسؤول

افتح ‎https://openwebui.yourdomain.com‎ في متصفحك. أول حساب يُنشأ يصبح مسؤولاً تلقائياً. أدخل بريداً إلكترونياً وكلمة مرور.

من لوحة الإدارة (أيقونة الصورة الرمزية ← لوحة الإدارة) يمكنك:
- تحديد ما إذا كان المسجلون الجدد نشطين فوراً أو بانتظار الموافقة;
- إنشاء مجموعات مستخدمين وربط النماذج بها;
- تكوين SSO.

تكوين تسجيل الدخول الموحد SSO عبر OpenID Connect

‏Open-WebUI يدعم المصادقة عبر OpenID Connect (OIDC) بشكل أصيل. يمكنك دمجه مع Keycloak أو Authentik أو Authelia أو أي مزود متوافق (بما في ذلك Google Workspace أو Microsoft Entra).

في ملف ‎compose.yml‎، أضف متغيرات البيئة التالية إلى خدمة ‎open-webui‎:

environment:
  - OAUTH_CLIENT_ID=your-client-id
  - OAUTH_CLIENT_SECRET=your-client-secret
  - OPENID_PROVIDER_URL=https://your-idp.example.com/.well-known/openid-configuration
  - OAUTH_PROVIDER_NAME=نظام SSO
  - ENABLE_OAUTH_SIGNUP=true

عنوان URL للاستدعاء الراجع الذي يجب الإعلان عنه في مزود الهوية هو ‎https://openwebui.yourdomain.com/oauth/oidc/callback‎.

أعد تشغيل المجموعة بعد التعديل:

docker compose up -d

لتقييد وصول SSO على نطاق بريد إلكتروني محدد (مثل ‎@your-company.com‎)، كوّن القيد مباشرة في مزود الهوية، لا في Open-WebUI. يتيح كل من Keycloak وAuthentik تصفية النطاقات على مستوى عميل OIDC — وهذه هي نقطة التحكم الأكثر أماناً، لأنها تغطي واجهة API أيضاً.

تفعيل RAG على مستنداتك

‏Open-WebUI يتضمن خط أنابيب RAG (التوليد المعزز بالاسترداد) الذي يتيح الاستفسار عن مستنداتك المحلية في المحادثة. تتم المعالجة بالكامل على خادم VPS الخاص بك — لا يُرسَل أي مستند إلى خدمة خارجية.

لتفعيل RAG:

1. من الواجهة، انقر على مشبك الورق في منطقة إدخال المحادثة، أو استخدم علامة التبويب المستندات في القائمة الجانبية.
2. استورد ملف PDF أو Markdown أو DOCX أو TXT. يقوم Open-WebUI بتقسيمه وتحويله إلى متجهات وتخزينه في قاعدة بياناته المحلية.
3. في المحادثة، ابدأ رسالتك بـ ‎#‎ متبوعاً باسم المستند لإدراجه كسياق.

للاستخدام المتقدم (مستندات متعددة، مجموعات موضوعية)، تتيح لك قسم مساحة العمل ← المستندات تنظيم الملفات في مجموعات وربطها بنماذج محددة.

Open-WebUI وAnythingLLM وLibreChat: أي واجهة تختار

المعيارOpen-WebUIAnythingLLM / LibreChat
واجهة LLM الخلفية‏Ollama أصيل + أي نقطة OpenAI‏OpenAI وOllama وAzure وLM Studio
إدارة المستخدمينمدمجة، مجموعات، OIDC أصيلمدمجة (AnythingLLM: مساحات عمل معزولة)
RAGأصيل، بدون إعدادأصيل، قابل للتكوين (LanceDB، pgvector)
نجوم GitHubأكثر من 150,000 (MIT)أكثر من 40,000 (MIT) / أكثر من 20,000 (MIT)
حالة الاستخدام الأساسيةفريق مع Ollama منشور مسبقاًRAG متعدد المصادر المتقدم / محادثة متعددة الواجهات

استكشاف الأخطاء وإصلاحها: الأخطاء الشائعة

Connection refused عند بدء تشغيل Open-WebUI.
‏Ollama ليس جاهزاً بعد عندما يحاول Open-WebUI الاتصال. انتظر 20 ثانية ونفذ ‎docker compose restart open-webui‎. لتجنب هذا عند كل إعادة تشغيل، أضف فحص صحة على خدمة Ollama في ‎compose.yml‎.

البث يتوقف بعد 60 ثانية.
يطبق الخادم الوكيل العكسي مهلة HTTP افتراضية. أضف ‎proxy_read_timeout 300s;‎ في كتلة Nginx ‎location /‎ (أو ما يعادلها من ‎timeout‎ في Traefik). قد تستغرق نماذج اللغة أحياناً عدة دقائق لإنشاء استجابة طويلة.

WebSocket connection failed.
تحقق من أن رؤوس ‎Upgrade‎ و‎Connection‎ تُمرَّر بشكل صحيح من الخادم الوكيل العكسي. بدونها، يُحجب البث عبر SSE/WebSocket ولا تصل الردود في الوقت الفعلي.

مصادقة SSO تُرجع ‎redirect_uri_mismatch‎.
عنوان URL للاستدعاء الراجع المُعلَن في مزود الهوية لا يطابق ما يرسله Open-WebUI. يجب أن يكون بالضبط ‎https://openwebui.yourdomain.com/oauth/oidc/callback‎.

مستخدم SSO يمكنه تسجيل الدخول لكن ليس لديه وصول لأي نموذج.
تُوضع الحسابات الجديدة المنشأة عبر SSO افتراضياً في دور ‎pending‎. غيّر دورهم إلى ‎user‎ في لوحة الإدارة ← المستخدمون، أو اضبط ‎DEFAULT_USER_ROLE=user‎ في متغيرات البيئة.

تأمين الوصول إلى واجهة Ollama API

‏Ollama يستمع على ‎0.0.0.0:11434‎ داخل حاويته. لا تنشر تكوين ‎compose.yml‎ المقترح أعلاه هذا المنفذ على المضيف — فقط Open-WebUI يصل إليه عبر شبكة Docker الداخلية. هذا هو الوضع الصحيح.

إذا كنت بحاجة إلى الوصول إلى Ollama API مباشرة (من IDE أو دفتر Jupyter أو تطبيق خارجي)، فثمة خياران:

1. نفق SSH: ‎ssh -L 11434:localhost:11434 user@your-vps‎ — الواجهة API متاحة محلياً دون تعرض عام.
2. خادم وكيل عكسي مع مصادقة: اعرض Ollama خلف Nginx مع ‎auth_basic‎ أو رمز Bearer، إذا كان لديك عملاء لا يدعمون نفق SSH.

لا تنشر المنفذ 11434 مباشرة على الواجهة العامة بدون مصادقة: Ollama API لا تملك حماية أصيلة ضد الوصول غير المصرح به.

للحفاظ على تحديث Open-WebUI، غيّر الصورة من ‎ghcr.io/open-webui/open-webui:main‎ إلى ‎ghcr.io/open-webui/open-webui:v0.6.x‎ (أو آخر وسم مستقر) في ملف ‎compose.yml‎ الخاص بك. وسم ‎:main‎ يتبع التطوير المستمر — مفيد لاختبار الميزات الجديدة، لكنه أقل قابلية للتوقع في الإنتاج. راجع ملاحظات الإصدار على GitHub قبل كل تحديث.

ميزات متقدمة لاستكشافها بعد النشر

  • خطوط أنابيب ووظائف: يتيح Open-WebUI كتابة وظائف Python تتدخل في تدفق المحادثة — مرشحات، ومعززات السياق، وموصلات إلى واجهات API خارجية.
  • نماذج مخصصة: أنشئ 'نماذج' مُعدَّة مسبقاً (تعليمات النظام، ودرجة الحرارة، والسياق) وشاركها مع مجموعات مستخدمين محددة.
  • توليد الصور: اربط Open-WebUI بنسخة Stable Diffusion أو ComfyUI محلية لتوليد الصور مباشرة في المحادثة.
  • التكامل مع الأدوات الخارجية: عبر بروتوكول MCP (Model Context Protocol)، يمكن لـ Open-WebUI استدعاء أدوات خارجية — قواعد البيانات وواجهات REST API والبحث على الويب.

الوثائق الرسمية

للإعداد المتقدم والخيارات الخاصة بالأداة، راجع الوثائق الرسمية لـ Open-WebUI. يتناول هذا الدليل النشر الأساسي والتكوينات الأكثر شيوعاً — المعاملات الخاصة ببيئتك (تكامل LDAP، تكوين خطوط الأنابيب، ضبط التضمينات) موجودة في وثائق المشروع.

خادم VPS جاهز لـ Open-WebUI وOllama

‏Open-WebUI مع Ollama يتطلب خادم VPS بوصول root وDocker وذاكرة RAM كافية لتحميل نماذجك. يوفر VPS Cloud من ServOrbit قابلية التوسع الرأسي اللازمة للانتقال من نموذج 7B إلى نموذج 13B دون ترحيل.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.