لماذا تستضيف Flowise ذاتيًا على خادم VPS
يتعامل Flowise مع بيانات حساسة: مفاتيح واجهات OpenAI/Anthropic، ومستندات داخلية مُتَّجِهة، وسجلّات المحادثات، والمنطق التجاري لوكلائك. في النسخة السحابية المشتركة تمرّ هذه العناصر عبر بنية تحتية لا تتحكم بها. أمّا على خادم VPS مخصّص فتبقى لوحة Flowise وقاعدة البيانات والتضمينات لديك. تحتفظ بالتحكم في الإصدارات (تتطور التدفقات بسرعة بين الإصدارات)، وفي الموصّلات المفعّلة، وفي فوترة النماذج إذ تربط مفاتيحك الخاصة. يتيح لك الخادم أيضاً كشف التدفقات كـAPI REST لدمجها في تطبيقاتك دون حصص يفرضها مزوّد خارجي.
سبب عملي آخر: تحدّ خطط Flowise Cloud من عدد التدفقات النشطة وعمليات التنفيذ الشهرية والوصول إلى العقد المتقدمة. على خادمك لا ينطبق أيٌّ من هذه القيود — أنت من يحدد الموارد المخصصة.
الفوائد الملموسة لاستضافة Flowise ذاتيًا
- سرّية كاملة للمُوجَّهات ومفاتيح الواجهات والمستندات المُفهرَسة، فهي لا تغادر خادمك أبداً.
- نقاط استدلال مكشوفة كـAPI REST دون حدّ معدَّل يفرضه طرف ثالث.
- حرية اختيار النموذج (OpenAI أو Anthropic أو Mistral أو نموذج محلّي عبر Ollama على الشبكة نفسها).
- استمرارية مُتَحَكَّم بها للتدفقات وقواعد المتّجهات في أحجام Docker التي تنسخها احتياطياً.
- التحديث وقتما تقرّر، دون تعرضك لترحيل قسري للوحة.
- تكلفة يمكن التنبؤ بها: سعر شهري واحد للخادم، دون تسعير حسب عدد التدفقات أو التنفيذات.
- عقد متقدمة بلا قيود: وصول كامل إلى تكاملات LangChain وأدوات الوكيل وموصّلات قاعدة المتّجهات.
المتطلبات العتادية والبرمجية
Flowise نفسه خفيف، لكنّ الاستخدام الفعلي يعتمد على التضمينات وقواعد المتّجهات. احسب حداً أدنى قدره 2 vCPU و2 غيغابايت من الذاكرة للاختبار، و4 vCPU / 4 إلى 8 غيغابايت إذا فهرست مستندات ضخمة أو شغّلت عدة تدفقات متزامنة. خصّص 20 غيغابايت من القرص للحاويات وقواعد المتّجهات وأيّ نماذج محلية.
برمجياً: Docker وDocker Compose مثبَّتان، واسم نطاق أو نطاق فرعي (مثل flowise.your-domain.com) يشير إلى عنوان الخادم، والمنفذ 443 مفتوح. إن كنت تخطط لنموذج محلي عبر Ollama، زد الذاكرة إلى 8 غيغابايت على الأقل (16 غيغابايت للنماذج بحجم 7 مليار معامل وما فوق بتكميم 4 بت). جهّز مسبقاً مفاتيح واجهات مزوّدي النماذج التي تنوي استخدامها.
نشر Flowise باستخدام Docker وHTTPS
تحضير الخادم وDocker
اتّصل عبر SSH، وحدّث النظام ثم ثبّت Docker عبر
curl -fsSL https://get.docker.com | sh. تحقّق بواسطةdocker compose version. أنشئ مجلداً مخصصاً:mkdir -p /opt/flowise && cd /opt/flowiseكتابة docker-compose.yml
عرّف الخدمة بالصورة الرسمية
flowiseai/flowise، والمنفذ الداخلي3000، وحجماً مُسمّى للاستمرارية، ومتغيرات البيئة الأساسية:FLOWISE_USERNAME=admin FLOWISE_PASSWORD=كلمة_مرور_قوية FLOWISE_SECRETKEY_OVERWRITE=سلسلة_عشوائية_32_حرفاً DATABASE_PATH=/root/.flowise SECRET_ENCRYPTION_KEY=سلسلة_عشوائية_أخرى_32_حرفاًيجب أن يشير حجم
flowise_dataإلى/root/.flowiseداخل الحاوية لكي تصمد قاعدة بيانات SQLite وقواعد المتّجهات عند إعادة التشغيل.تشغيل الحاوية
نفّذ
docker compose up -dثمdocker compose logs -fللتأكد من أنّ Flowise يستمع. في هذه المرحلة يستجيب محلياً على127.0.0.1:3000، غير مكشوف علناً، وهذا مقصود.إعداد الوكيل العكسي
ثبّت Caddy أو Nginx Proxy Manager. مع Caddy يكفي سطر واحد في Caddyfile:
flowise.your-domain.com { reverse_proxy localhost:3000 }يحصل Caddy على شهادة Let's Encrypt ويجدّدها تلقائياً. إن فضّلت nginx، احرص على تفعيل WebSockets (
proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade;) — يحتاجها Flowise للتحديثات الفورية في اللوحة.تأمين الوصول والمفاتيح
عزّز المصادقة، وقيّد المنفذ 3000 على الحلقة المحلية في جدار الحماية (
ufw deny 3000)، وأضف مفاتيح واجهات النماذج مباشرةً في واجهة Flowise (قسم Credentials) بدلاً من وضعها صريحةً في ملف compose. يشفّر المتغيرFLOWISE_SECRETKEY_OVERWRITEهذه البيانات الاعتمادية في قاعدة البيانات؛ بدونه تُخزَّن بنص واضح.اختبار تدفق والواجهة
أنشئ تدفق محادثة بسيطاً وانشره، ثم استدعِ نقطته عبر:
curl -X POST https://flowise.your-domain.com/api/v1/prediction/<id> \ -H 'Content-Type: application/json' \ -d '{"question":"test"}'لحماية نقطة التدفق بمفتاح API، فعّل API Key Auth في إعدادات التدفق — يجب حينئذٍ أن يحمل كل استدعاء
Authorization: Bearer <مفتاحك>.أول تسجيل دخول
عند فتح الرابط لأول مرة، يعرض Flowise شاشة إعداد تطلب منك إنشاء حساب المدير (بريد إلكتروني + كلمة مرور) قبل إتاحة الوصول إلى لوحة التحكم. افتحه فور انتهاء التثبيت.
ربط Flowise بـ Ollama لستاك ذكاء اصطناعي محلي بالكامل
للحصول على تدفقات RAG عالية الأداء دون تكلفة API خارجية، اربط Flowise بحاوية Ollama تعمل على الخادم نفسه عبر شبكة Docker الداخلية (http://ollama:11434). تجمع بذلك التضمين والتوليد محلياً: لا تغادر أي بيانات الخادم، وتنخفض وقت الاستجابة لأن كل شيء يمر عبر الشبكة الخاصة للمضيف.
في docker-compose.yml، أضف خدمة Ollama على الشبكة نفسها:
services:
ollama:
image: ollama/ollama
volumes:
- ollama_data:/root/.ollama
networks:
- flowise_net
flowise:
image: flowiseai/flowise
networks:
- flowise_net
...في Flowise، عند إضافة عقدة Ollama (نموذج محادثة أو تضمينات)، أدخل http://ollama:11434 عنواناً أساسياً. نزّل نموذجاً من داخل الحاوية: docker exec -it <id_ollama> ollama pull llama3.2. للتضمينات، يعدّ nomic-embed-text نقطة انطلاق جيدة على 4 غيغابايت من الذاكرة.
متغيرات البيئة المفيدة
يكشف Flowise نحو عشرين متغير تهيئة. الأكثر فائدة في الإنتاج:
FLOWISE_USERNAME وFLOWISE_PASSWORD — مصادقة واجهة الإدارة. إلزامية فور فتح المنفذ العام.
FLOWISE_SECRETKEY_OVERWRITE — مفتاح تشفير بيانات الاعتماد المخزّنة في قاعدة البيانات. إن غيّرت هذه القيمة بعد أول تشغيل، تصبح بيانات الاعتماد الموجودة غير قابلة للقراءة.
DATABASE_TYPE — الافتراضي sqlite. لحمل أثقل أو نشر متكرر، انتقل إلى postgres ومل DATABASE_HOST وDATABASE_PORT وDATABASE_USER وDATABASE_PASSWORD وDATABASE_NAME.
CORS_ORIGINS — قائمة المصادر المسموح لها باستدعاء API التنبؤ من المتصفح. مثال: https://your-app.com. بدون هذا المتغير ستُحجب استدعاءات CORS من أصل آخر.
BLOB_STORAGE_PATH — مسار تخزين الملفات المرفوعة (مستندات RAG). الافتراضي ~/.flowise/storage؛ اركب حجماً مخصصاً إن فهرست مجموعات بيانات كبيرة.
LOG_LEVEL — القيم: error، warn، info، verbose، debug. في الإنتاج، warn يكفي للحفاظ على السجلات قابلة للإدارة.
تحديث Flowise دون فقدان التدفقات
يصدر Flowise تحديثات منتظمة تضيف عقداً وتصلح سلوك التدفقات. التحديث غير مُدمِّر إن كانت بياناتك في حجم مُسمَّى.
docker compose pull
docker compose up -dيُرحِّل Flowise قاعدة بيانات SQLite تلقائياً عند التشغيل. قبل كل تحديث، صدّر تدفقاتك المهمة عبر زر Export في اللوحة (ملف JSON) — إنه أبسط شبكة أمان.
إن كنت تستخدم PostgreSQL، راجع ملاحظات الإصدار قبل سحب الصورة: تُدخل بعض الإصدارات ترحيلات مخطط لا رجعة فيها. احتفظ بنسخة احتياطية من قاعدة البيانات (pg_dump) قبل التحديث.
استكشاف الأخطاء الشائعة وإصلاحها
لا تُحمَّل اللوحة أو تختفي العقد. تحقق من أن البروكسي العكسي يمرّر WebSockets بشكل صحيح. مع nginx يجب أن تكون رؤوس Upgrade وConnection موجودة. مع Caddy تُضبط تلقائياً.
Error: FLOWISE_SECRETKEY_OVERWRITE is required. لم يكن هذا المتغير مطلوباً في الإصدارات السابقة لكنه أصبح كذلك. أضفه إلى compose وأعد التشغيل — بيانات الاعتماد المُدخَلة تبقى صالحة طالما القيمة متطابقة مع تلك المستخدمة عند تخزينها.
تفقد قاعدة المتّجهات مستنداتها بعد إعادة التشغيل. تحقق من أن مسار حجم Docker يتطابق مع BLOB_STORAGE_PATH وDATABASE_PATH. ربط bind-mount خاطئ يخزّن البيانات في مجلد مؤقت للحاوية.
تفشل استدعاءات Ollama بخطأ ECONNREFUSED. يجب أن تكون خدمة Ollama على الشبكة نفسها Docker مع Flowise. إن كانت Ollama تعمل خارج Compose (خدمة systemd مثلاً)، استخدم IP بوابة Docker (172.17.0.1:11434) بدلاً من localhost.
بيانات اعتماد OpenAI/Anthropic مرفوضة بعد الترحيل. إن تغيّرت FLOWISE_SECRETKEY_OVERWRITE بين نشرين، لا يمكن فكّ تشفير الأسرار المشفّرة بالمفتاح القديم. احذف بيانات الاعتماد وأعد إدخالها في الواجهة.
لنشر آمن في فريق، فعّل المصادقة على كل تدفق محادثة (قسم API Key في التدفق) وأنشئ مفتاحاً لكل تكامل خارجي. بذلك لكل تطبيق يستهلك نقطة Flowise مفتاحه القابل للإلغاء دون التأثير على الآخرين.
التوثيق الرسمي
للإعداد المتقدم والخيارات الخاصة بالأداة، ارجع إلى التوثيق الرسمي لـ Flowise. يغطي هذا الدليل النشر على خادم VPS؛ ويبقى توثيق المطوّر المرجع للإعدادات الدقيقة والتحديثات الكبرى وحالات الاستخدام الخاصة.