[{"data":1,"prerenderedAt":226},["ShallowReactive",2],{"seo-verification":3,"blog-واجهة-ويب-open-webui-مع-ollama-على-vps-للفرق-ma-ar":6,"promo-bar-likely":225},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-واجهة-ويب-open-webui-مع-ollama-على-vps-للفرق-ma-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":164,"ctaBody":165,"ctaButton":166,"ctaUrl":167,"relatedPosts":168},316,"واجهة-ويب-open-webui-مع-ollama-على-vps-للفرق",{"fr":12,"en":13,"ar":10,"es":14},"open-webui-ollama-vps","open-webui-ollama-on-vps-multi-user-interface-for-local-llms","open-webui-ollama-en-vps-interfaz-web-multiusuario-para-llm","واجهة ويب Open-WebUI مع Ollama على VPS للفرق","امنح فريقك بأكمله واجهة ويب متعددة المستخدمين لنماذج Ollama: RAG وإدارة النماذج وتسجيل دخول موحد SSO — دون الاعتماد على السحابة.",18,7,false,"2026-08-30T00:00:00+00:00","2026-11-08T01:13:13+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},1,"الذكاء الاصطناعي","intelligence-artificielle","bg-purple-500\u002F10 text-purple-400","ia",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fopen-webui-ollama-vps-poster.svg","‏Ollama يخدم نماذج اللغة الخاصة بك عبر واجهة برمجة تطبيقات محلية. ‏Open-WebUI يضيف طبقة الواجهة: تطبيق ويب متكامل مع إدارة المستخدمين، وRAG على المستندات، وسجل المحادثات، والمصادقة عبر SSO. من خلال نشر الاثنين على خادم VPS الخاص بك، تمنح فريقك بأكمله وصولاً إلى نماذج LLM خاصة دون الكشف عن واجهة API الخام أو الحاجة إلى سطر الأوامر. يتناول هذا الدليل التثبيت والخادم الوكيل العكسي وSSO وإدارة الصلاحيات. ويغطي أيضاً البحث على الويب عبر SearXNG، وما يجب فعله حين يتوقف عن إرجاع أي نتيجة، وما يمكن قياسه فعلاً من استخدام نسخة مخصصة للفريق.",[35,39,49,52,71,74,77,80,83,111,114,117,132,134,137,144,147,149,152,154,161],{"type":36,"title":37,"body":38},"h2","لماذا تضيف Open-WebUI إلى خادم Ollama الخاص بك","‏Ollama يعرض واجهة برمجة REST متوافقة مع OpenAI — فعّالة للمطورين، غير قابلة للوصول لأعضاء الفريق الآخرين. ‏Open-WebUI يسد هذه الفجوة: واجهة ويب متكاملة تتصل بـ Ollama (أو أي مزود متوافق مع OpenAI) وتحول خادم الاستدلال إلى أداة تعاونية.\n\nتجاوز المستودع 155,000 نجمة على GitHub. انتبه إلى الترخيص: ليس MIT. ينشر المشروع ترخيصاً خاصاً به من نوع BSD بثلاثة بنود مع شرط إضافي: عند تجاوز 50 مستخدماً خلال 30 يوماً متحركة، يُمنع تعديل علامة «Open WebUI» أو إزالتها إلا بإذن كتابي أو بترخيص مؤسسي. لا يتغير شيء بالنسبة لفريق صغير؛ وعند تجاوز هذا الحد، اقرأ ملف LICENSE قبل تخصيص الواجهة. من جهتها، أعلنت Ollama في يوليو 2026 عن جولة تمويل من السلسلة B بقيمة 65 مليون دولار، وهو مؤشر على استقرار محرك الاستدلال في فرق التطوير على المدى الطويل.\n\nيُصان المشروع باستمرار ويصدر وسوماً مستقرة بوتيرة منتظمة: يعود الإصدار ‎0.13.0 إلى 3 نوفمبر 2026. لهذه الوتيرة ثمن، فالسلوكيات الافتراضية تتغير من إصدار فرعي إلى آخر (أصبح استدعاء الأدوات الأصلي هو الافتراضي في ‎0.10.0). لذلك يفيد تثبيت وسم محدد وقراءة ملاحظات الإصدار قبل كل تحديث. يغطي Open-WebUI احتياجات تتجاوز المحادثة بكثير: RAG على الملفات المحلية، وإدارة نماذج متعددة، ومجموعات مستخدمين، والبحث على الويب، وتكامل SSO عبر OpenID Connect.",{"type":40,"title":41,"items":42},"ul","ما يضيفه Open-WebUI فعلياً إلى مجموعة Ollama الخاصة بك",[43,44,45,46,47,48],"**واجهة متعددة المستخدمين**: لكل عضو في الفريق حسابه وسجله ومحادثاته — دون الوصول إلى API الخام أو سطر الأوامر.","**RAG أصيل**: استورد ملفات PDF وMarkdown وWord مباشرة من الواجهة؛ يقوم Open-WebUI بتقسيمها وتحويلها إلى متجهات وتخزينها في قاعدة بياناته المحلية.","**إدارة النماذج**: تنزيل وحذف وتفعيل نماذج Ollama من واجهة الويب، دون الحاجة إلى `docker exec`.","**تسجيل دخول موحد SSO عبر OpenID Connect**: اربط Open-WebUI بمزود الهوية الخاص بك (Keycloak أو Authentik أو Google Workspace...) للوصول الموحد والإلغاء المركزي.","**مجموعات وأدوار**: حدّد من يصل إلى النماذج، ومن يرفع الملفات، ومن يملك حقوق الإدارة.","**لا اعتماد على السحابة**: جميع الرموز المميزة والمحادثات والملفات تبقى على بنيتك التحتية.",{"type":36,"title":50,"body":51},"المتطلبات المادية والبرمجية","‏Open-WebUI يعمل في حاوية Docker ويتصل بـ Ollama عبر شبكة Docker الداخلية. يمكن لكليهما العمل على نفس خادم VPS.\n\nلفريق من 5 إلى 10 أشخاص مع نماذج 7B المكمية (Q4)، تحتاج على الأقل إلى:\n\n- **8 جيجابايت RAM** (6 جيجابايت للنموذج + هامش لـ Open-WebUI والنظام)\n- **4 vCPU**: الاستدلال على المعالج بطيء مع عدد أقل من النوى؛ انتقل إلى 8 vCPU للاستخدام اليومي المريح\n- **30 جيجابايت تخزين SSD** على الأقل، بالإضافة إلى مساحة للنماذج (نموذج 7B Q4 ≈ 4.5 جيجابايت، نموذج 13B ≈ 8 جيجابايت)\n- **Docker وDocker Compose** مثبَّتان\n- **اسم نطاق** يشير إلى خادم VPS الخاص بك (مطلوب لـ TLS وSSO)\n- **خادم وكيل عكسي** مع HTTPS — Nginx أو Traefik أو Caddy (عند تقديمه عبر HTTP على نطاق أو عنوان IP غير محلي، يفقد Open-WebUI بعض الوظائف في المتصفح: راجع قسم استكشاف الأخطاء)",{"type":53,"title":54,"steps":55},"steps","نشر Open-WebUI وOllama باستخدام Docker Compose",[56,59,62,65,68],{"title":57,"body":58},"إنشاء ملف Docker Compose","أنشئ دليل عمل ثم اكتب ملف التكوين:\n\n```bash\nmkdir -p \u002Fopt\u002Fopenwebui && cd \u002Fopt\u002Fopenwebui\n```\n\nمحتوى ملف ‎`compose.yml`‎:\n\n```bash\nservices:\n  ollama:\n    image: ollama\u002Follama:latest\n    container_name: ollama\n    volumes:\n      - ollama_data:\u002Froot\u002F.ollama\n    restart: unless-stopped\n\n  open-webui:\n    image: ghcr.io\u002Fopen-webui\u002Fopen-webui:main\n    container_name: open-webui\n    depends_on:\n      - ollama\n    ports:\n      - \"127.0.0.1:3000:8080\"\n    environment:\n      - OLLAMA_BASE_URL=http:\u002F\u002Follama:11434\n      - WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY}\n    volumes:\n      - open_webui_data:\u002Fapp\u002Fbackend\u002Fdata\n    restart: unless-stopped\n\nvolumes:\n  ollama_data:\n  open_webui_data:\n```\n\nيجب أن يكون ‎`WEBUI_SECRET_KEY`‎ سلسلة عشوائية طويلة لا تُكتب أبدًا في ملف التركيب: أنشئها باستخدام ‎`echo \"WEBUI_SECRET_KEY=$(openssl rand -hex 32)\" > .env && chmod 600 .env`‎. يقرأ Docker Compose ملف ‎`.env`‎ هذا من المجلد ويستبدل ‎`${WEBUI_SECRET_KEY}`‎.",{"title":60,"body":61},"تشغيل المجموعة","شغّل الخدمتين:\n\n```bash\ndocker compose up -d\n```\n\nتحقق من أن الحاويتين نشطتان:\n\n```bash\ndocker compose ps\n```\n\nقد يستغرق Ollama بضع ثوانٍ للبدء. ينتظر Open-WebUI جاهزية Ollama بفضل `depends_on`، لكن إذا رأيت أخطاء اتصال عند أول تشغيل، انتظر 15 ثانية ثم أعد التحميل.",{"title":63,"body":64},"تنزيل أول نموذج","من المضيف، نزّل نموذجاً عبر Ollama:\n\n```bash\ndocker exec -it ollama ollama pull llama3.1:8b\n```\n\nيمكنك أيضاً القيام بذلك من واجهة Open-WebUI بعد تسجيل الدخول، في **لوحة الإدارة ← النماذج ← تنزيل من ‎Ollama.com‎**.",{"title":66,"body":67},"تكوين الخادم الوكيل العكسي Nginx مع HTTPS","‏Open-WebUI يستمع على ‎`127.0.0.1:3000`‎. أنشئ مضيفاً افتراضياً في Nginx لعرضه عبر HTTPS:\n\n```bash\nserver {\n    listen 443 ssl;\n    server_name openwebui.yourdomain.com;\n\n    ssl_certificate \u002Fetc\u002Fletsencrypt\u002Flive\u002Fopenwebui.yourdomain.com\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Fopenwebui.yourdomain.com\u002Fprivkey.pem;\n\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:3000;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n        proxy_read_timeout 300s;\n    }\n}\n```\n\nاحصل على الشهادة باستخدام Certbot:\n\n```bash\ncertbot --nginx -d openwebui.yourdomain.com\n```",{"title":69,"body":70},"إنشاء حساب المسؤول","افتح ‎`https:\u002F\u002Fopenwebui.yourdomain.com`‎ في متصفحك. **أول حساب يُنشأ يصبح مسؤولاً تلقائياً**: أنشئه فور إتاحة الموقع على الإنترنت، قبل أن يسبقك إليه غيرك. أدخل بريداً إلكترونياً وكلمة مرور.\n\nمن لوحة الإدارة (**أيقونة الصورة الرمزية ← لوحة الإدارة**) يمكنك:\n- تحديد ما إذا كان المسجلون الجدد نشطين فوراً أو بانتظار الموافقة;\n- إنشاء مجموعات مستخدمين وربط النماذج بها;\n- تكوين SSO.",{"type":36,"title":72,"body":73},"تكوين تسجيل الدخول الموحد SSO عبر OpenID Connect","‏Open-WebUI يدعم المصادقة عبر OpenID Connect (OIDC) بشكل أصيل. يمكنك دمجه مع Keycloak أو Authentik أو Authelia أو أي مزود متوافق (بما في ذلك Google Workspace أو Microsoft Entra).\n\nفي ملف ‎`compose.yml`‎، أضف متغيرات البيئة التالية إلى خدمة ‎`open-webui`‎:\n\n```bash\nenvironment:\n  - OAUTH_CLIENT_ID=your-client-id\n  - OAUTH_CLIENT_SECRET=${OAUTH_CLIENT_SECRET}\n  - OPENID_PROVIDER_URL=https:\u002F\u002Fyour-idp.example.com\u002F.well-known\u002Fopenid-configuration\n  - OAUTH_PROVIDER_NAME=نظام SSO\n  - ENABLE_OAUTH_SIGNUP=true\n```\n\nعلى غرار مفتاح الجلسة، يوضع سرّ العميل في ملف ‎`.env`‎ (‎`OAUTH_CLIENT_SECRET=…`‎)، لا في ‎`compose.yml`‎.\n\nعنوان URL للاستدعاء الراجع الذي يجب الإعلان عنه في مزود الهوية هو ‎`https:\u002F\u002Fopenwebui.yourdomain.com\u002Foauth\u002Foidc\u002Fcallback`‎.\n\nأعد تشغيل المجموعة بعد التعديل:\n\n```bash\ndocker compose up -d\n```",{"type":75,"body":76},"tip","لتقييد وصول SSO على نطاق بريد إلكتروني محدد (مثل ‎`@your-company.com`‎)، كوّن القيد مباشرة في مزود الهوية، لا في Open-WebUI. يتيح كل من Keycloak وAuthentik تصفية النطاقات على مستوى عميل OIDC — وهذه هي نقطة التحكم الأكثر أماناً، لأنها تغطي واجهة API أيضاً.",{"type":36,"title":78,"body":79},"تفعيل RAG على مستنداتك","‏Open-WebUI يتضمن خط أنابيب RAG (التوليد المعزز بالاسترداد) الذي يتيح الاستفسار عن مستنداتك المحلية في المحادثة. تتم المعالجة بالكامل على خادم VPS الخاص بك — لا يُرسَل أي مستند إلى خدمة خارجية.\n\nلتفعيل RAG:\n\n1. من الواجهة، انقر على **مشبك الورق** في منطقة إدخال المحادثة، أو استخدم علامة التبويب **المستندات** في القائمة الجانبية.\n2. استورد ملف PDF أو Markdown أو DOCX أو TXT. يقوم Open-WebUI بتقسيمه وتحويله إلى متجهات وتخزينه في قاعدة بياناته المحلية.\n3. في المحادثة، ابدأ رسالتك بـ ‎`#`‎ متبوعاً باسم المستند لإدراجه كسياق.\n\nللاستخدام المتقدم (مستندات متعددة، مجموعات موضوعية)، تتيح لك قسم **مساحة العمل ← المستندات** تنظيم الملفات في مجموعات وربطها بنماذج محددة.",{"type":36,"title":81,"body":82},"إضافة البحث على الويب عبر SearXNG","البحث على الويب غير مدمج في Open-WebUI: تستعلم الواجهة محركاً خارجياً ثم تحقن الصفحات التي وجدتها في سياق النموذج. يجنّبك SearXNG، وهو محرك بحث وصفي مستضاف ذاتياً، الاعتماد على مفتاح API مدفوع: فهو يستعلم عنك عدة محركات عامة ويعيد قائمة واحدة. وهذا أيضاً موضع هشاشته، كما يفصّل قسم استكشاف الأخطاء أدناه.\n\nتكفي ثلاثة إعدادات. في جانب SearXNG، افتح ‎`settings.yml`‎ وأضف ‎`json`‎ إلى قائمة ‎`formats`‎ تحت ‎`search`‎ بجانب ‎`html`‎: بدونها يتلقى Open-WebUI خطأ 403. في جانب Open-WebUI، افتح **لوحة الإدارة ← الإعدادات ← البحث على الويب**، واختر ‎`searxng`‎ وأدخل عنوان الاستعلام، مثل ‎`http:\u002F\u002Fsearxng:8080\u002Fsearch?q=\u003Cquery>`‎ (المتغير ‎`SEARXNG_QUERY_URL`‎). يمكنك أيضاً ضبط ‎`ENABLE_WEB_SEARCH=true`‎ و‎`WEB_SEARCH_ENGINE=searxng`‎ في ‎`compose.yml`‎. إذا كانت الخدمتان على شبكة Docker نفسها، يصلح اسم الخدمة مضيفاً ولا حاجة لنشر منفذ SearXNG على الإنترنت.\n\nيبقى فخ واحد: يجب تشغيل ثلاثة مفاتيح في الوقت نفسه، البحث العام على الويب، وقدرة «البحث على الويب» في النموذج، وزر المحادثة الجارية. نسيان أحدها يعطي إجابة بلا أي بحث، وغالباً بلا خطأ ظاهر.",{"type":84,"title":85,"headers":86,"rows":90},"comparison","Open-WebUI وAnythingLLM وLibreChat: أي واجهة تختار",[87,88,89],"المعيار","Open-WebUI","AnythingLLM \u002F LibreChat",[91,95,99,103,107],[92,93,94],"واجهة LLM الخلفية","‏Ollama أصيل + أي نقطة OpenAI","‏OpenAI وOllama وAzure وLM Studio",[96,97,98],"إدارة المستخدمين","مدمجة، مجموعات، OIDC أصيل","مدمجة (AnythingLLM: مساحات عمل معزولة)",[100,101,102],"RAG","أصيل، بدون إعداد","أصيل، قابل للتكوين (LanceDB، pgvector)",[104,105,106],"نجوم GitHub","أكثر من 155,000 (ترخيص خاص، علامة محمية)","أكثر من 65,000 (MIT) \u002F أكثر من 45,000 (MIT)",[108,109,110],"حالة الاستخدام الأساسية","فريق مع Ollama منشور مسبقاً","RAG متعدد المصادر المتقدم \u002F محادثة متعددة الواجهات",{"type":36,"title":112,"body":113},"استكشاف الأخطاء وإصلاحها: الأخطاء الشائعة","**‏`Connection refused` عند بدء تشغيل Open-WebUI.**\n‏Ollama ليس جاهزاً بعد عندما يحاول Open-WebUI الاتصال. انتظر 20 ثانية ونفذ ‎`docker compose restart open-webui`‎. لتجنب هذا عند كل إعادة تشغيل، أضف فحص صحة على خدمة Ollama في ‎`compose.yml`‎.\n\n**البث يتوقف بعد 60 ثانية.**\nيطبق الخادم الوكيل العكسي مهلة HTTP افتراضية. أضف ‎`proxy_read_timeout 300s;`‎ في كتلة Nginx ‎`location \u002F`‎ (أو ما يعادلها من ‎`timeout`‎ في Traefik). قد تستغرق نماذج اللغة أحياناً عدة دقائق لإنشاء استجابة طويلة.\n\n**‏`WebSocket connection failed`.**\nتحقق من أن رؤوس ‎`Upgrade`‎ و‎`Connection`‎ تُمرَّر بشكل صحيح من الخادم الوكيل العكسي. بدونها، يُحجب البث عبر SSE\u002FWebSocket ولا تصل الردود في الوقت الفعلي.\n\n**مصادقة SSO تُرجع ‎`redirect_uri_mismatch`‎.**\nعنوان URL للاستدعاء الراجع المُعلَن في مزود الهوية لا يطابق ما يرسله Open-WebUI. يجب أن يكون بالضبط ‎`https:\u002F\u002Fopenwebui.yourdomain.com\u002Foauth\u002Foidc\u002Fcallback`‎.\n\n**مستخدم SSO يمكنه تسجيل الدخول لكن ليس لديه وصول لأي نموذج.**\nقيمة ‎`DEFAULT_USER_ROLE`‎ الافتراضية هي ‎`pending`‎: كل حساب جديد، بما فيه حسابات SSO، ينتظر تفعيل المسؤول، ولا يحكم ‎`ENABLE_OAUTH_SIGNUP`‎ إلا إنشاء الحساب. غيّر دورهم إلى ‎`user`‎ في **لوحة الإدارة ← المستخدمون**، أو اضبط ‎`DEFAULT_USER_ROLE=user`‎ في متغيرات البيئة.\n\n**شاشة لا تستجيب، و‎`crypto.randomUUID is not a function`‎ في وحدة تحكم المتصفح.**\nيُقدَّم Open-WebUI عبر HTTP على نطاق أو عنوان غير محلي: لا يوفر المتصفح هذه الدالة إلا في سياق آمن (HTTPS أو ‎`localhost`‎). أنهِ إعداد TLS للوكيل العكسي قبل اختبار وظائف الذكاء الاصطناعي.\n\n**البحث على الويب لا يرجع شيئاً.**\nراجع القسم المخصص أدناه: اختبر SearXNG بمفرده قبل اتهام Open-WebUI.",{"type":36,"title":115,"body":116},"استكشاف الأخطاء: البحث على الويب لا يرجع شيئاً","**العَرَض.** البحث على الويب مفعّل، لكن المحادثة تعرض ‎`No results found from web search`‎ (خطأ 404 في سجل Open-WebUI)، أو يجيب النموذج دون أن يبحث.\n\n**ما تعنيه هذه الرسالة.** وصل Open-WebUI فعلاً إلى SearXNG وأرسل الاستعلام وتلقى قائمة فارغة. تُوضّح ذلك حالة علنية (المسألة open-webui رقم 32401، فُتحت في 14 أكتوبر 2026 بعد الانتقال إلى ‎0.12.0): شكّ صاحبها في الإصدار الجديد، فاتهم القائمون على الصيانة النموذج أولاً، ثم، وبين أيديهم سجل SearXNG، تبيّن أن DuckDuckGo يرد بـ CAPTCHA، وBrave بعبارة «Too many requests» (يُعلَّق المحرك 3 دقائق في كل مرة)، وStartpage بإعادة توجيه إلى صفحة CAPTCHA الخاصة به. كل المحركات محجوبة، إذن لا نتائج. وبحسب القائمين على الصيانة، كانت هذه المواقع تحجب عنوان IP بغض النظر عن التحديث. أُغلقت المسألة في اليوم نفسه دون إصلاح من جانب Open-WebUI، وانتهى صاحبها باختيار مزود DDGS.\n\nالطريقة التي تستحق الحفظ: قبل اتهام الإصدار أو النموذج، استعلم SearXNG بمفرده.",{"type":53,"title":118,"steps":119},"تشخيص بحث ويب فارغ",[120,123,126,129],{"title":121,"body":122},"استعلام SearXNG دون Open-WebUI","من الـ VPS، نفّذ ‎`curl -s 'http:\u002F\u002F127.0.0.1:8080\u002Fsearch?q=test&format=json'`‎ مع تكييف المضيف والمنفذ مع تثبيتك (إذا كان SearXNG متاحاً عبر شبكة Docker فقط، فنفّذ الأمر من حاوية على هذه الشبكة). ثلاث نتائج ممكنة: خطأ 403 يعني غياب ‎`json`‎ من ‎`formats`‎؛ وقائمة ‎`results`‎ فارغة تعني أن المحركات تفشل؛ وقائمة ممتلئة تعني أن SearXNG يعمل وأن المشكلة في Open-WebUI أو في النموذج (انظر الإطار أدناه).",{"title":124,"body":125},"قراءة سجل SearXNG","يعرض ‎`docker compose logs --tail 200 searxng`‎ ما أجاب به كل محرك. ابحث عن الأسطر التي تسمّي محركاً (duckduckgo وbrave وstartpage…) مع CAPTCHA أو رفض بسبب كثرة الطلبات أو انتهاء المهلة. المحرك الذي يعود في كل بحث بالخطأ نفسه محجوب عن عنوان IP الخاص بالـ VPS، وهذا يصيب عناوين مراكز البيانات بسهولة أكبر.",{"title":127,"body":128},"تفعيل محركات أو استبدالها","في ‎`settings.yml`‎، قسم ‎`engines`‎، فعّل محركات عامة غير محجوبة: يذكر القائمون على صيانة Open-WebUI كلاً من Google وBing وMojeek وQwant. يكفي إدخال ‎`name: mojeek`‎ مع ‎`disabled: false`‎ لتفعيل محرك موجود في الإعدادات الافتراضية؛ ومع ‎`use_default_settings: true`‎ في أول الملف، تدرج الفروقات وحدها. أعد التشغيل بـ ‎`docker compose restart searxng`‎ ثم أعد الخطوة 1 حتى تظهر نتائج. فعّل عدة محركات: المحرك الوحيد يعود سريعاً إلى الحجب.",{"title":130,"body":131},"اللجوء إلى مزود بمفتاح إذا بقي العنوان محجوباً","إذا فشلت كل المحركات، فإن مزوداً عبر API يتجاوز المشكلة: يمكن اختيار Brave Search API أو Tavily أو Serper من شاشة الإدارة نفسها. وللخطة المجانية من Brave، اضبط ‎`WEB_SEARCH_CONCURRENT_REQUESTS=1`‎. أما مزود DDGS الذي استقر عليه صاحب المسألة فلا يحتاج إلى مفتاح.",{"type":75,"body":133},"SearXNG يرجع نتائج لكن المساعد لا يبحث أبداً؟ منذ الإصدار ‎0.10.0 (أواخر يونيو 2026) صار استدعاء الأدوات الأصلي هو الوضع الافتراضي: يتحول البحث على الويب إلى أداة يجب على النموذج استدعاؤها بنفسه، والنموذج القديم أو الصغير يتجاوزها أو يكتب استدعاءً مشوهاً. اختر نموذجاً حديثاً يدعم الأدوات وتأكد من أن Function Calling على Native في الإعدادات المتقدمة للنموذج؛ ويصف القائمون على الصيانة وضع Legacy بأنه غير مدعوم. وإذا نجح البحث لكن الصفحات لا تُحمَّل، فراجع ‎`WEB_SEARCH_TRUST_ENV`‎ خلف وكيل HTTP ثم ‎`USER_AGENT`‎.",{"type":36,"title":135,"body":136},"متابعة استخدام نسخة مخصصة للفريق","تصبح معرفة من يستهلك ماذا مسألة ميزانية سريعاً حين يستدعي المطورون النسخة عبر API. اليوم، تتكامل أربعة مصادر، ولكل منها نقطة عمياء:",{"type":40,"title":138,"items":139},"مصادر القياس الأربعة",[140,141,142,143],"**لوحة Analytics** (إعدادات الإدارة، قسم Analytics): الرسائل، ورموز الدخل والخرج، لكل نموذج ولكل مستخدم، مع مرشح للمجموعة والفترة؛ ومنذ ‎0.12.4 يكون الترتيب بحسب الرموز. تُحسب من سجل الرسائل المحفوظ في قاعدة البيانات: ما لا يُحفظ هناك لا يظهر فيها. يخفيها ‎`ENABLE_ADMIN_ANALYTICS=False`‎.","**العرض الشخصي** (الإعدادات، تبويب Usage، منذ ‎0.11.0 في يوليو 2026): يرى كل مستخدم نشاطه هو، ولا يرى شيئاً من نشاط غيره.","**سجل التدقيق**: معطّل افتراضياً (‎`AUDIT_LOG_LEVEL=NONE`‎). مع ‎`AUDIT_LOG_LEVEL=METADATA`‎ يكتب Open-WebUI الملف ‎`audit.log`‎ في مجلد بياناته (تدوير عند 10 ميغابايت) للطلبات الموثَّقة برأس ‎`Authorization`‎ أو بملف تعريف ارتباط: فتظهر فيه استدعاءات API مع النموذج المطلوب. وللحصول أيضاً على رموز كل رد (منذ ‎0.12.4)، احذف ‎`\u002Fchat`‎ من ‎`AUDIT_EXCLUDED_PATHS`‎ الذي قيمته الافتراضية ‎`\u002Fchats,\u002Fchat,\u002Ffolders`‎. تجنّب المستويين ‎`REQUEST`‎ و‎`REQUEST_RESPONSE`‎ لأنهما يسجّلان محتوى المحادثات، وأعد استدعاءً تجريبياً لقراءة السجل الناتج قبل بناء أي حساب عليه.","**سجلات الوكيل العكسي**: أبسط زاوية لقياس الحجم. مع صيغة combined في Nginx، يرتّب الأمر ‎`awk '{print $7}' \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log | sort | uniq -c | sort -rn | head`‎ المسارات الأكثر استدعاءً؛ وأضف ‎`$request_time`‎ إلى ‎`log_format`‎ لرصد الطلبات البطيئة. لا يرى هذا السجل المستخدم ولا الرموز، ولا يجوز أبداً تسجيل رأس ‎`Authorization`‎ فيه.",{"type":36,"title":145,"body":146},"ما لا يفعله تتبع الاستخدام بعد","الطلب الخاص بتتبع يفصل الواجهة عن API وينسب الاستدعاءات إلى كل مفتاح مفتوح في مستودع المشروع: المسألة open-webui رقم 21675 بعنوان «enh: analytics»، أُنشئت في 20 فبراير 2026 وما زالت مفتوحة في 7 نوفمبر 2026، وفيها نحو مئة تعليق. يذكر النقاش أن مستخدم API وُضع في مجموعة لا يظهر في Analytics، وفي 14 أكتوبر كان فريق يمرّ مطوروه غالباً عبر API ما زال يطلب هذه الرؤية. لا يُعلَن هناك أي موعد: لا تخطط لشيء اعتماداً على هذه الميزة.\n\nيجيب القائمون على الصيانة بأن مرشِّحاً، أي دالة Python مثبتة في الواجهة، يمكنه عدّ الطلبات بما فيها طلبات API؛ ويوضح أحد المساهمين أن المسارات من نوع passthrough تفلت منه. ويصنّفون الحدود لكل مستخدم أو مجموعة ضمن تحديد المعدل، خارج موضوع Analytics. تبقى قراءة قاعدة SQLite المسماة ‎`webui.db`‎ مباشرة ممكنة على نسخة منها، لكن مخططها ليس عقداً ويتغير من إصدار إلى آخر. ونشر أحد المساهمين كذلك إضافة حصص من طرف ثالث: الدالة تعمل بصلاحيات الخادم، فاقرأ شيفرتها قبل تفعيلها.",{"type":75,"body":148},"امنح كل مطور حسابه ومفتاح API الخاص به بدل مفتاح مشترك: بلا هوية متمايزة لا يستطيع أي من المصادر الأربعة نسب الاستخدام. وإن صار API هو القناة الرئيسية، فبوابة أمام Ollama تعدّ الاستدعاءات من المصدر (يقدّم LiteLLM، الموجود أصلاً في كتالوج ServOrbit، مفاتيح افتراضية وتتبعاً للإنفاق) مسار يستحق التجربة قبل اعتماده.",{"type":36,"title":150,"body":151},"تأمين الوصول إلى واجهة Ollama API","‏Ollama يستمع على ‎`0.0.0.0:11434`‎ داخل حاويته. لا تنشر تكوين ‎`compose.yml`‎ المقترح أعلاه هذا المنفذ على المضيف — فقط Open-WebUI يصل إليه عبر شبكة Docker الداخلية. هذا هو الوضع الصحيح.\n\nإذا كنت بحاجة إلى الوصول إلى Ollama API مباشرة (من IDE أو دفتر Jupyter أو تطبيق خارجي)، فثمة خياران:\n\n1. **نفق SSH**: ‎`ssh -L 11434:localhost:11434 user@your-vps`‎ — الواجهة API متاحة محلياً دون تعرض عام.\n2. **خادم وكيل عكسي مع مصادقة**: اعرض Ollama خلف Nginx مع ‎`auth_basic`‎ أو رمز Bearer، إذا كان لديك عملاء لا يدعمون نفق SSH.\n\nلا تنشر المنفذ 11434 مباشرة على الواجهة العامة بدون مصادقة: Ollama API لا تملك حماية أصيلة ضد الوصول غير المصرح به.",{"type":75,"body":153},"للحفاظ على تحديث Open-WebUI، غيّر الصورة من ‎`ghcr.io\u002Fopen-webui\u002Fopen-webui:main`‎ إلى ‎`ghcr.io\u002Fopen-webui\u002Fopen-webui:v0.13.0`‎ (أو آخر وسم مستقر) في ملف ‎`compose.yml`‎ الخاص بك. وسم ‎`:main`‎ يتبع التطوير المستمر — مفيد لاختبار الميزات الجديدة، لكنه أقل قابلية للتوقع في الإنتاج. راجع ملاحظات الإصدار على GitHub قبل كل تحديث: بعض الإصدارات أدخلت ترحيلات لقاعدة البيانات، وبعضها يغيّر سلوكيات افتراضية (استدعاء الأدوات الأصلي في ‎0.10.0)، وتوصي ملاحظات ‎0.12.0 بتحديث بيئات الإنتاج سريعاً بسبب إصلاحاتها الأمنية.",{"type":40,"title":155,"items":156},"ميزات متقدمة لاستكشافها بعد النشر",[157,158,159,160],"**خطوط أنابيب ووظائف**: يتيح Open-WebUI كتابة وظائف Python تتدخل في تدفق المحادثة — مرشحات، ومعززات السياق، وموصلات إلى واجهات API خارجية.","**نماذج مخصصة**: أنشئ 'نماذج' مُعدَّة مسبقاً (تعليمات النظام، ودرجة الحرارة، والسياق) وشاركها مع مجموعات مستخدمين محددة.","**توليد الصور**: اربط Open-WebUI بنسخة Stable Diffusion أو ComfyUI محلية لتوليد الصور مباشرة في المحادثة.","**التكامل مع الأدوات الخارجية**: عبر بروتوكول MCP (Model Context Protocol)، يمكن لـ Open-WebUI استدعاء أدوات خارجية — قواعد البيانات وواجهات REST API والبحث على الويب.",{"type":75,"title":162,"body":163},"الوثائق الرسمية","للإعداد المتقدم والخيارات الخاصة بالأداة، راجع \u003Ca href=\"https:\u002F\u002Fdocs.openwebui.com\">الوثائق الرسمية لـ Open-WebUI\u003C\u002Fa>. يتناول هذا الدليل النشر الأساسي والتكوينات الأكثر شيوعاً — المعاملات الخاصة ببيئتك (تكامل LDAP، تكوين خطوط الأنابيب، ضبط التضمينات) موجودة في وثائق المشروع.","خادم VPS جاهز لـ Open-WebUI وOllama","‏Open-WebUI مع Ollama يتطلب خادم VPS بوصول root وDocker وذاكرة RAM كافية لتحميل نماذجك. يوفر VPS Cloud من ServOrbit قابلية التوسع الرأسي اللازمة للانتقال من نموذج 7B إلى نموذج 13B دون ترحيل.","عرض خطط VPS Cloud","\u002Fvps-cloud",[169,189,207],{"id":170,"slug":171,"slugs":172,"title":176,"excerpt":177,"readTime":178,"views":179,"isPinned":19,"noindex":19,"publishedAt":180,"updatedAt":181,"category":182,"categories":183,"featuredImage":30,"bgImage":31,"posterImage":185,"relatedSolution":186},9,"كيفية-استضافة-anythingllm-على-خادم-vps",{"fr":173,"en":174,"ar":171,"es":175},"heberger-anythingllm-vps","how-to-host-anythingllm-on-a-vps","como-alojar-anythingllm-en-un-vps","AnythingLLM على VPS: دليل شامل مع أبرز الأخطاء","استضف AnythingLLM على VPS: Docker وHTTPS وتثبيت الإصدار إلزامي. أخطاء :latest وGemini v1.16 وشبكة Docker مع Ollama موثّقة.",8,0,"2026-06-11T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[184],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-anythingllm-vps-poster.svg",{"categorySlug":187,"appSlug":188},"الذكاء-الاصطناعي","anything-llm",{"id":190,"slug":191,"slugs":192,"title":196,"excerpt":197,"readTime":198,"views":23,"isPinned":19,"noindex":19,"publishedAt":199,"updatedAt":200,"category":201,"categories":202,"featuredImage":30,"bgImage":31,"posterImage":204,"relatedSolution":205},2,"نشر-dify-على-vps-سير-عمل-الذكاء-الاصطناعي-تحت-السيطرة",{"fr":193,"en":194,"ar":191,"es":195},"deployer-dify-vps","deploying-dify-on-a-vps-ai-workflows-under-control","desplegar-dify-en-un-vps","نشر Dify على VPS: دليل شامل من التثبيت إلى الإضافات","ثبّت Dify على VPS من ServOrbit: المتطلبات وDocker Compose والإضافات دون اتصال وحدود تثبيت Docker ونسخ احتياطي قبل التحديث وحل الأخطاء الشائعة.",15,"2026-02-11T00:00:00+00:00","2026-10-29T03:10:23+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[203],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fdeployer-dify-vps-poster.svg",{"categorySlug":25,"appSlug":206},"dify",{"id":208,"slug":209,"slugs":210,"title":214,"excerpt":215,"readTime":216,"views":190,"isPinned":19,"noindex":19,"publishedAt":217,"updatedAt":218,"category":219,"categories":220,"featuredImage":30,"bgImage":31,"posterImage":222,"relatedSolution":223},177,"استضافة-langfuse-على-vps-مراقبة-llm-بلا-فاتورة-saas",{"fr":211,"en":212,"ar":209,"es":213},"self-host-langfuse-vps","self-host-langfuse-on-a-vps-llm-observability-no-saas-bill","alojar-langfuse-en-un-vps","استضافة ‫Langfuse‬ على ‫VPS‬: مراقبة ‫LLM‬ بلا فاتورة ‫SaaS‬","استضف ‫Langfuse‬ ذاتيًا على خادم ‫VPS‬ — تتبّع كل استدعاء ذكاء اصطناعي، قيّم جودة الـ ‫prompts‬، وراقب التكاليف. دليل كامل: تثبيت، ‫nginx‬، ‫TLS‬، ‫SDK‬ وحل المشكلات.",11,"2026-07-12T00:00:00+00:00","2026-11-04T16:30:26+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[221],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fself-host-langfuse-vps-poster.svg",{"categorySlug":187,"appSlug":224},"langfuse",true,1794270323374]