دليل النشر

نشر Dify على VPS: دليل شامل من التثبيت إلى الإضافات

انشر على VPS Cloud ←

دليل عملي

الذكاء الاصطناعي

نشر Dify على VPS: دليل شامل من التثبيت إلى الإضافات

يتيح Dify تصميم وكلاء الذكاء الاصطناعي وتدفّقات المحادثة وسير العمل متعددة النماذج دون إعادة بناء البنية الخلفية من الصفر. تُبقي استضافته ذاتيًا على VPS من ServOrbit مفاتيح API وموجّهاتك (prompts) وقواعد معرفتك ضمن نطاق تديره أنت. يغطّي هذا الدليل المسار بأكمله: تحديد المواصفات، تثبيت Docker Compose، الدخول الأول، الإضافات دون اتصال، الحدود المعروفة لتثبيت Docker (عقدة Agent وأدوات MCP)، النسخ الاحتياطي قبل الترقية وتشخيص الأخطاء الشائعة.

15 دقيقةً للقراءةعدد الخطوات: 10
المحتويات· لماذا تستضيف Dify على VPS؟1/14
  1. 01لماذا تستضيف Dify على VPS؟
  2. 02ما الذي يمكنك فعله باستخدام Dify
  3. 03المتطلبات الأساسية: كيف تختار VPS بالمواصفات الصحيحة
  4. 04ثبّت Dify على VPS من ServOrbit
  5. 05الإعداد بعد التثبيت: النماذج وواجهة API ومساحة العمل
  6. 06الإضافات دون اتصال: تجاوز خطأ 500/404 في نسخ self-hosted
  7. 07الحدود المعروفة لتثبيت Docker: عقدة Agent
  8. 08حدود معروفة: تعديل Chatflow يستخدم أداة MCP في الإصدار 1.18.0
  9. 09الربط مع Ollama وn8n
  10. 10انسخ الحجم وقاعدة البيانات احتياطيًا قبل رفع الإصدار
  11. 11رفع الإصدار بأمان: جرّب أولًا على نسخة
  12. 12تشخيص الأخطاء: أكثر المشكلات شيوعًا
  13. 13تشخيص الأخطاء: الوكلاء وأدوات MCP والترقيات
  14. 14التوثيق الرسمي

لماذا تستضيف Dify على VPS؟

يعني استخدام النسخة السحابية من Dify تسليم موجّهاتك وبيانات عملك ومفاتيح API إلى خادم تابع لطرف ثالث، مع قيود على عدد التطبيقات والنماذج المتاحة. باستضافة Dify ذاتيًا على VPS، تزيل هذه القيود: لا اشتراك شهري مرتبط بالاستخدام، ولا بيانات حسّاسة تُرسَل إلى الخارج، وحرية ربط أي مزوّد نماذج (OpenAI وAnthropic وOllama محليًا وغيرها). إنه الحل الأمثل للفِرَق التي ترغب في بناء خطوط أنابيب ذكاء اصطناعي متينة في بيئة تحت سيطرتها الكاملة.

ما الذي يمكنك فعله باستخدام Dify

  • إنشاء روبوتات دردشة ووكلاء ذكاء اصطناعي مخصّصين متّصلين بمصادر بياناتك الخاصة (RAG)
  • تنظيم سير عمل متعدّد الخطوات يجمع بين عدة نماذج لغوية وأدوات خارجية
  • ربط Dify بـ OpenAI أو Anthropic Claude أو Mistral أو نموذج محلي عبر Ollama
  • إتاحة تطبيقات الذكاء الاصطناعي الخاصة بك عبر REST API أو أداة قابلة للتضمين في موقعك
  • إدارة وصول فريقك عبر نظام أدوار ومساحات عمل
  • متابعة سجلّات الاستخدام والتكاليف لكل نموذج وأداء خطوط الأنابيب الخاصة بك

المتطلبات الأساسية: كيف تختار VPS بالمواصفات الصحيحة

يشغّل Dify مجموعة من خدمات Docker بالتوازي: خادم API، ومعالج Celery للتضمينات والمهام غير المتزامنة، والواجهة الأمامية، وPostgreSQL (الخدمة db_postgres)، وRedis، وWeaviate كقاعدة متجهية افتراضية (VECTOR_STORE=weaviate)، وبيئة sandbox لتنفيذ الأكواد، وplugin_daemon، وبروكسيات SSRF (Squid)، وnginx. ومنذ الإصدار 1.16.0 تنضمّ إليها agent_backend وlocal_sandbox اللتان تشغّلان تطبيقات Agent.

الحدّ الأدنى الرسمي: نواتان من المعالج و4 GiB من الذاكرة، مع Docker Compose بالإصدار 2.24.0 أو أحدث (توثيق Dify). خطّط لـ 2 vCPU · 4 GB · 40 GB SSD لاختبار الوظائف الأساسية.

الموصى به للاستخدام الفعلي: 4 vCPU · 8 GB RAM · 80 GB. بمجرد فهرسة وثائق ضخمة أو استعلام عدة مستخدمين في آنٍ واحد أو تفعيل تطبيقات Agent، تستنزف التضمينات وقاعدة البيانات المتجهية وخدمات الوكيل الـ 4 GB بالكامل. يناسب عرض VPS Power من ServOrbit (4 vCPU، 8 GB) استخدام فريق دون نموذج محلي.

مع نموذج محلي (Ollama): أضف متطلبات النموذج. يحتاج Llama 3 8B المضغوط (Q4) إلى ~6 GB من ذاكرة VRAM أو RAM مخصّصة؛ خطّط لـ 16 GB RAM على الأقل لتشغيل Dify وOllama معًا دون swap.

نظام التشغيل الموصى به: Ubuntu 22.04 LTS.

ثبّت Dify على VPS من ServOrbit

  1. اطلب VPS Cloud من ServOrbit

    توجّه إلى صفحة /vps-cloud واختر عرضًا يناسب استخدامك (الحدّ الأدنى 2 vCPU / 4 GB، الموصى به 4 vCPU / 8 GB). اختر Ubuntu 22.04 LTS كنظام تشغيل وأكمل الطلب. يُجهَّز VPS الخاص بك في أقل من دقيقة.

  2. استنسخ إصدارًا منشورًا وانسخ ملف الإعداد

    اتصل عبر SSH ثم نفّذ ‎git clone --branch 1.18.0 https://github.com/langgenius/dify.git ثم cd dify/docker ثم ‎cp .env.example .env. ثبّت وسم إصدار بدل الفرع main الذي يتغيّر مع كل دمج: يطلب التوثيق الرسمي استنساخ آخر إصدار.

    يجمع ملف ‎.env الإعداد كله. قبل أول تشغيل، استبدل القيم التطويرية المرفقة: DB_PASSWORD (الافتراضية difyai123456) وREDIS_PASSWORD وSANDBOX_API_KEY وPLUGIN_DAEMON_KEY وDIFY_AGENT_API_TOKEN وDIFY_AGENT_SERVER_SECRET_KEY. اترك SECRET_KEY فارغًا ليُولَّد مفتاح دائم: تغييره لاحقًا يُخرج كل المستخدمين ويجعل بيانات OAuth للإضافات غير قابلة للقراءة. وأخيرًا، ولّد رمز صندوق الرمل الخاص بالوكيل بالأمر openssl rand -base64 32 وضعه في DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN: بدونه لا يبدأ Agent backend ولا صندوق الرمل التابع له.

  3. شغّل مجموعة Docker Compose

    من مجلد dify/docker، نفّذ docker compose up -d. تنزّل Docker الصور وتشغّل الحاويات: api وworker وworker_beat وweb وdb_postgres وredis وweaviate وsandbox وplugin_daemon وssrf_proxy وagent_backend وlocal_sandbox وnginx. تحقّق عبر docker compose ps من أن الخدمات في حالة Up أو healthy؛ تظهر init_permissions بحالة Exited وهذا طبيعي. تستغرق العملية عادةً 3 إلى 5 دقائق بحسب سرعة الاتصال.

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

    افتح http://[YOUR-VPS-IP]/install في متصفّحك.

    تنبيه: افعل ذلك فورًا. ما دام حساب المسؤول غير موجود، تبقى صفحة /install مفتوحة لأي شخص، ويصبح أول من يصل إليها مالك نسختك. إذا عيّنت INIT_PASSWORD في ملف ‎.env (30 حرفًا كحدّ أقصى)، تطلبه الصفحة قبل إنشاء الحساب.

    أدخل عنوان بريدك الإلكتروني وكلمة مرور قوية. هذا الحساب هو مالك مساحة العمل الافتراضية.

  5. اربط اسم نطاق وفعّل HTTPS

    للإنتاج، أسند اسم نطاق لعنوان IP الخاص بـ VPS وانشر شهادة TLS. يستمع nginx الداخلي في Dify افتراضيًا على المنفذ 80 للخادم (EXPOSE_NGINX_PORT=80): إن ثبّتّ nginx على الخادم نفسه فسيتعارضان. عيّن EXPOSE_NGINX_PORT=8080 في ‎.env، ثم ثبّت nginx وCertbot على الخادم (sudo apt install nginx certbot python3-certbot-nginx -y)، وأنشئ vhost يوجّه الطلبات إلى ‎127.0.0.1:8080 ونفّذ ‎sudo certbot --nginx -d your-domain.com.

    ثم عيّن CONSOLE_API_URL وAPP_WEB_URL وSERVICE_API_URL وFILES_URL إلى ‎https://your-domain.com (فارغة افتراضيًا): يخدم CONSOLE_API_URL تسجيلات الدخول عبر OAuth والإضافات، ويخدم APP_WEB_URL روابط عقدة Human Input، وإن بقي FILES_URL وCONSOLE_API_URL فارغين فلن تعمل معاينة الملفات. أعد التشغيل بالأمر docker compose up -d.

الإعداد بعد التثبيت: النماذج وواجهة API ومساحة العمل

بمجرد تسجيل الدخول، تتمثّل الخطوة الأولى في تسجيل مزوّد نماذج. في الإعدادات (الأيقونة في أعلى اليمين) ← مزوّدو النماذج، أضف مفتاح API الخاص بـ OpenAI أو Anthropic أو Mistral أو أي مزوّد آخر مدعوم. للنموذج المحلي، أدخل عنوان URL لنسخة Ollama الخاصة بك (http://[host-IP]:11434).

يكشف Dify أيضًا REST API خاصة به لدمج تطبيقاتك في خطوط أنابيب خارجية. ستجد مفاتيح API في الإعدادات ← مفاتيح API. تتيح هذه المفاتيح استعلام تطبيقاتك في Dify من n8n أو Zapier أو أي سكربت Python دون الحاجة إلى واجهة المستخدم الرسومية.

مساحة العمل الافتراضية هي تلك التي أُنشئت عند تسجيل الدخول الأول. ادعُ أعضاء عبر الإعدادات ← الأعضاء وامنحهم أدوار Admin أو Normal أو Dataset operator.

الإضافات دون اتصال: تجاوز خطأ 500/404 في نسخ self-hosted

منذ نوفمبر 2025 (issue #27720 على GitHub، فُتحت على Dify 1.9.2)، يلاحظ مستخدمو النسخ الذاتية فشل تثبيت الإضافات من marketplace: خطأ HTTP 500 مع langgenius/perplexity، وHTTP 404 مع langgenius/anthropic، ثم Reached maximum retries (3) مع langgenius/azure_openai. تُثبَّت الإضافات نفسها على Dify Cloud. أُغلقت المسألة بوصف «not planned» في 18 ديسمبر 2025 بالوسم cant-reproduce ودون إصلاح: الحلول أدناه مصدرها بوت في النقاش ولم يؤكدها المشرفون.

الحلّ البديل 1: ملف ‎.difypkg محلي. نزّل ملف ‎.difypkg للإضافة على جهاز متصل، ثم ثبّته عبر «التثبيت من ملف محلي». للخادم دون وصول صادر، تضمّ أداة dify-plugin-repackaging الاعتماديات داخل الحزمة. وإن رُفض الملف بسبب حجمه، ارفع PLUGIN_MAX_PACKAGE_SIZE (القيمة الافتراضية 52428800 بايت) وNGINX_CLIENT_MAX_BODY_SIZE (الافتراضية 100M).

الحلّ البديل 2: تعطيل التحقّق من التوقيع. لتثبيت إضافات غير موقّعة أو تطوير إضافاتك، عيّن FORCE_VERIFYING_SIGNATURE=false (الافتراضية: true) في ‎.env، ثم نفّذ docker compose restart plugin_daemon.

تحذير: يُلغي تعطيل التوقيع أحد ضمانات الأمان. احتفظ بهذا الإعداد لبيئات التطوير أو لإضافات تتحكّم في مصدرها؛ وفي الإنتاج مع مستخدمين خارجيين يُفضَّل ملف ‎.difypkg موثوق.

الحدود المعروفة لتثبيت Docker: عقدة Agent

عقدة Agent في Chatflow وWorkflow على الإصدار 1.15.0. في تثبيت Docker القياسي للإصدار 1.15.0، تفشل عقدة «Agent» قبل أي استدعاء للنموذج بالخطأ ValueError: base_url is required when creating a real Agent backend client. فهي تتطلّب خدمة «Agent backend» يحدّدها AGENT_BACKEND_BASE_URL، ولم يكن ‎docker-compose.yaml الرسمي لذلك الإصدار يتضمّنها. لم تُنتج المسألتان #38283 (أُغلقت بوصف «not planned» في 17 أغسطس 2026) و#39161 (أُغلقت بوصفها مكرّرة في 23 أكتوبر 2026) في langgenius/dify أي إصلاح؛ وما زال تحسين رسالة الخطأ قيد المراجعة (PR #39878). يتداول الناس حلّين ولا يصلح أيٌّ منهما: يوصل AGENT_BACKEND_USE_FAKE=true عميلًا وهميًا يعيد إجابة ثابتة دون أن يستدعي النموذج اللغوي ولا أدوات MCP، ونشر خدمة dify-agent يدويًا غير موثّق وغير مدعوم.

منذ الإصدار 1.16. يضمّ ملف compose الرسمي الآن agent_backend وlocal_sandbox، مع AGENT_BACKEND_BASE_URL=http://agent_backend:5050 في ‎.env.example، وعليك تعيين DIFY_AGENT_API_TOKEN (الذي يجب أن يساوي AGENT_BACKEND_API_TOKEN منذ 1.16.1) وDIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN. غير أن Agent V2 أُخفي من Chatflow منذ 1.16.1 لغياب سياق المحادثات متعددة الأدوار؛ وطلب استعادته (#41269، فُتح في 26 أغسطس 2026) بلا إصدار مستهدف. في Chatflow لا تتوفّر إلا عقدة Agent القديمة. ونوع تطبيق Agent المستقل هو البديل الذي يقول صاحب #39161 إنه اشتغل على 1.15.0.

حدود معروفة: تعديل Chatflow يستخدم أداة MCP في الإصدار 1.18.0

تفيد المسألة #44742 (فُتحت في 25 أكتوبر 2026) بأنه بعد حذف أداة MCP ثم إضافتها من جديد في عقدة Agent على 1.18.0، يتوقف Chatflow عن العمل: TypeError: object of type 'NoneType' has no len() في الدالة build_parameters. يُظهر ملف YAML المُصدَّر أن allowed_tools وcontext وfiles حُفظت بالشكل type: variable مع value: null. أما أداة MCP أخرى سليمة في التدفّق نفسه فتواصل العمل. العودة إلى 1.17.x لا تُصلح تدفّقًا تضرّر أصلًا، واستيراد النسخة المصدَّرة التالفة في نسخة أخرى يفشل أيضًا.

حلول أُبلغ عنها. تعديل YAML لجعل هذه الحقول الثلاثة type: constant مع value: [] ثم استيراده كما هو (إعادة تغليفه كملف ‎.difypkg تفشل في فحص السلامة)، أو إعادة بناء التدفّق.

حالة النقاش. أُغلقت المسألة في 26 أكتوبر 2026 عبر PR #44748 المدموج في main: لم تعد تكتب الحقول الاختيارية المفرَّغة في الرسم المحفوظ. تعالج #44579 (AgentVariableNotFoundError) لكنها تنصّ على أن المعاملات اليدوية المتداخلة والتسلسل الكامل لحذف أداة MCP وإضافتها خارج نطاقها. لم يظهر أي إصدار بعد 1.18.0 في صفحة الإصدارات في 28 أكتوبر 2026. إلى ذلك الحين، صدِّر ملف YAML قبل كل تعديل على Chatflow يستخدم أداة MCP.

الربط مع Ollama وn8n

يصبح Dify أكثر قوةً حين يقترن بأدوات self-hosted أخرى.

Ollama يتيح تشغيل نموذج لغوي مباشرةً على VPS أو خادم ضمن الشبكة نفسها، دون الاعتماد على API خارجية. بعد نشر Ollama، سجّله في Dify كمزوّد نماذج بعنوان URL: http://[Ollama-IP]:11434. تبقى كل عمليات التوليد حينئذٍ ضمن بنيتك التحتية — دون أي تسرّب للموجّهات إلى الخارج.

n8n هو منسّق سير عمل يمكنه التحكّم في Dify عبر REST API. أنشئ عقدة HTTP Request في n8n تشير إلى https://your-domain.com/v1/chat-messages مع مفتاح API لـ Dify في ترويسة Authorization. يمكنك بذلك تشغيل محادثة Dify انطلاقًا من نموذج ويب أو بريد إلكتروني وارد أو Slack webhook، وإرسال استجابة الذكاء الاصطناعي إلى أي وجهة.

انسخ الحجم وقاعدة البيانات احتياطيًا قبل رفع الإصدار

تمسّ ترقية Dify مخطط PostgreSQL (تُنفَّذ الترحيلات عند إقلاع API ما دام MIGRATION_ENABLED=true) والبيانات المتجهية وصور مجموعة الوكيل. تبدأ ملاحظات الإصدار 1.18.0 بعبارة «Back up first»: قاعدة البيانات وبيانات المخزن المتجهي والملفات المرفوعة وتخزين Agent والأسرار وملفات البيئة.

في Docker Compose يقع كل شيء تقريبًا في docker/volumes/ (db/data لـ PostgreSQL وweaviate وredis/data)، على هيئة مجلدات مرتبطة لا أحجام مسمّاة. للحصول على نسخة متّسقة: docker compose stop ثم ‎tar czf ../dify-backup.tar.gz volumes .env docker-compose.yaml ثم انسخ الأرشيف خارج VPS. وبدون إيقاف كامل يبقى التصدير المنطقي ممكنًا: ‎docker compose exec -T db_postgres pg_dump -U postgres dify > dify-dump.sql.

احتفظ أيضًا، خارج المستودع، بـ SECRET_KEY وبـ PASSWORD_PEPPER إن عيّنته: فقدان الأول يجعل بيانات الاعتماد المشفّرة غير قابلة للقراءة، وتغيير الثاني يُبطل تجزئات كلمات المرور الحالية (ملاحظات 1.18.0). وأخيرًا خطّط للمراحل: إن كانت مجموعتك ما زالت تضمّ Weaviate 1.27، فإن ملاحظات 1.17.1 تفرض ترقية على مراحل نحو 1.39 دون تخطي إصدارات فرعية.

رفع الإصدار بأمان: جرّب أولًا على نسخة

  1. ثبّت الحالة الراهنة

    دوّن الإصدار الجاري (docker compose images)، وأوقف المجموعة بالأمر docker compose stop، ونفّذ النسخ الاحتياطي الموصوف أعلاه. تحقّق من أن الأرشيف يُفتح (tar tzf) قبل المتابعة: نسخة احتياطية لم تُقرأ قط ليست نسخة احتياطية.

  2. انسخ المثيل

    من المجلد الأعلى، نفّذ cp -a dify dify-test. في dify-test/docker/.env غيّر EXPOSE_NGINX_PORT وEXPOSE_NGINX_SSL_PORT (مثلًا 8081 و8444) كي لا يتعارضا مع الإنتاج، واترك قرصًا وذاكرة لمجموعة ثانية. يتبع اسم مشروع Compose اسم المجلد، وهذا يفصل المجموعتين.

  3. انقل النسخة إلى الإصدار المستهدف

    في dify-test نفّذ git fetch --tags ثم git checkout <الوسم>. قارن كل ملف ‎.env.example بملف ‎.env لديك لرصد المتغيرات الجديدة أو المعاد تسميتها، وإن عدّلت ‎docker-compose.yaml فأعد تطبيق تعديلاتك على ملف الإصدار الجديد بدل الإبقاء على القديم. نفّذ docker compose pull ثم docker compose up -d وتابع docker compose logs -f api حتى تنتهي الترحيلات. من 1.17.1 إلى 1.18.0 تعدّها الملاحظات 22 ترحيلًا: ترتفع API والعمّال وAgent Backend وصور التشغيل معًا.

  4. أعد تشغيل تدفّقاتك الحسّاسة

    على النسخة، افتح كل Chatflow يستخدم عقدة Agent أو أداة MCP، ونفّذه، ثم عدّله واحفظه مرة واحدة: فالتعديل هو ما كسر التدفّقات في 1.18.0. اختبر أيضًا استعلامًا على قاعدة معرفة واستدعاء إضافة وتصدير YAML. ثم أتلف النسخة: docker compose down ثم احذف المجلد dify-test.

  5. حوّل الإنتاج أو ارجع

    أعد الخطوات نفسها في الإنتاج خلال نافذة صيانة. وللرجوع إلى الوراء لا يكفي تبديل الوسم: فالترحيلات غيّرت قاعدة البيانات. نفّذ docker compose down واستعد أرشيف الأحجام ثم ارجع إلى الوسم السابق.

تشخيص الأخطاء: أكثر المشكلات شيوعًا

حاوية worker تعيد التشغيل باستمرار. يعتمد معالج Celery على Redis وPostgreSQL. تحقّق من حالتهما بـ docker compose ps db_postgres redis واقرأ docker compose logs worker --tail=50. إذا لم يكن Redis جاهزًا عند الإقلاع، يكفي docker compose restart worker.

plugin_daemon يدور في حلقة بسبب الاتصال بـ PostgreSQL. يُظهر البلاغ dify-plugin-daemon #729 (Dify 1.14.0) الرسالة ‎failed to connect to host=db_postgres … lookup db_postgres on 127.0.0.11:53: no such host ثم panic: failed to init dify plugin db. يجب أن يطابق اسم المضيف خدمة قيد التشغيل: تحقّق من أن db_postgres في حالة healthy وأن DB_HOST في ‎.env يحمل هذا الاسم وأن COMPOSE_PROFILES يتضمّن postgresql، ثم نفّذ docker compose down وdocker compose up -d. أُغلقت تلك المسألة دون سبب مؤكَّد.

خدمة لا تبدأ بسبب ‎vm.max_map_count. يخص هذا الإعداد في النواة Elasticsearch (ملف التعريف elasticsearch) لا Weaviate. إن اخترته، يطلب توثيق Elastic القيمة 1048576 حين تكون القيمة الافتراضية أدنى: ‎sudo sysctl -w vm.max_map_count=1048576، ثم السطر نفسه في ‎/etc/sysctl.conf مع sudo sysctl --system لجعله دائمًا.

إضافات marketplace: خطأ 500/404. راجع قسم «الإضافات دون اتصال». إن كان السبب حجبًا شبكيًا، اختبر المنفذ 443 الصادر من داخل حاوية: ‎docker compose exec api curl -I https://marketplace.dify.ai.

انقطاع WebSocket خلف البروكسي العكسي. إن انقطع بثّ الردود، فإن nginx الخارجي لا يُمرّر ترويسات الترقية. أضف إلى location /: proxy_set_header Upgrade $http_upgrade; وproxy_set_header Connection "upgrade";.

تشخيص الأخطاء: الوكلاء وأدوات MCP والترقيات

base_url is required when creating a real Agent backend client. راجع «الحدود المعروفة لتثبيت Docker: عقدة Agent». على إصدار حديث، تحقّق من أن agent_backend يعمل وأن AGENT_BACKEND_BASE_URL يشير إلى http://agent_backend:5050.

agent_backend أو local_sandbox لا يبدآن. قيمة DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN فارغة: يذكر التوثيق أن Agent backend وصندوق الرمل التابع له لا يبدآن بدونها. ولّدها بالأمر openssl rand -base64 32 وضعها في docker/.env ثم أعد التشغيل.

TypeError: object of type 'NoneType' has no len(). تضرّر Chatflow بعد تعديل أداة MCP على 1.18.0 (#44742): راجع القسم المخصّص وأصلح YAML قبل الاستيراد.

AgentVariableNotFoundError: Variable '' does not exist. حقل اختياري فُرِّغ في عقدة Agent يترك محدِّدًا فارغًا في الرسم المحفوظ (#44579، لوحظ على 1.17.1). أعد قيمة إلى الحقل أو انتظر إصدارًا يتضمّن PR #44748.

ضياع IP الحقيقي خلف Cloudflare أو موازن حمل. منذ 1.18.0 يستبدل nginx المضمَّن الترويسة X-Forwarded-For: اضبط التعامل الموثوق مع IP الحقيقي.

تعذّر الدخول بعد تحديث. إضافة PASSWORD_PEPPER أو تغييره أو حذفه يُبطل كلمات المرور الحالية: أعد القيمة الأصلية.

أنشئ لقطة ServOrbit عند الطلب من مساحة العميل قبل كل ترقية: تغطّي مجلد docker/volumes/ (PostgreSQL وWeaviate وRedis) وملفات ‎.env الخاصة بك. أوقف المجموعة أولًا بالأمر docker compose stop لتُنسخ القاعدة في حالة متّسقة. في حال فشل تحديث ما، يستغرق الرجوع إلى نسخة سابقة دقائق قليلة من مساحة العميل. تكمّل اللقطة النسخة التجريبية ولا تحلّ محلها.

التوثيق الرسمي

للإعداد المتقدّم وقائمة متغيرات البيئة الكاملة وملاحظات الإصدار، راجع التوثيق الرسمي لـ Dify. يبقى docker-compose.yaml في المستودع الرسمي المرجع الأساسي لإصدارات الصور والتبعيات بين الخدمات.

انشر Dify في دقائق على VPS Cloud من ServOrbit

أطلق نسختك الخاصة من Dify على VPS عالي الأداء وتحكّم بالكامل في تطبيقات الذكاء الاصطناعي الخاصة بك، دون حدود استخدام ودون أي تنازل عن خصوصية بياناتك.