لماذا تستضيف محرّك الأتمتة لديك ذاتياً
منصّات الأتمتة بلا كود/منخفضة الكود مثل Zapier أو Make تحاسب على كل تنفيذ وتفرض حصصاً تتضخّم بسرعة. باستضافة n8n أو Node-RED ذاتياً على خادم VPS، تزيل هذه الحدود: عدد لا محدود من عمليات التنفيذ، وبيانات لا تغادر خادمك أبداً، ووصول كامل إلى عُقَد المجتمع. يتوجّه n8n نحو تكاملات التطبيقات (CRM، وقواعد البيانات، والذكاء الاصطناعي، وخطافات الويب) بمنطق سير عمل مرئي قريب من Make. أما Node-RED، المنحدر من IBM، فيعالج رسائل JSON عبر نظام تدفّق حَدَثي، ما يجعله مثالياً لربط مستشعرات MQTT، أو تحويل الحمولات (payloads)، أو تنسيق العتاد. يعمل كلاهما داخل حاوية ويُدار من المتصفح.
ما الذي تكسبه بالاستضافة الذاتية
- عمليات تنفيذ لا محدودة دون محاسبة على كل مهمة، خلافاً لخدمات SaaS للأتمتة.
- البيانات والأسرار (رموز API، وبيانات الاعتماد) مخزَّنة حصراً على خادم VPS الخاص بك.
- الوصول إلى عُقَد/تكاملات المجتمع غير المتوفرة في العروض السحابية المقيَّدة.
- إمكان تشغيل شيفرة مخصّصة (JavaScript، Python) دون قيود صندوق الحماية (sandbox).
- تكامل مباشر مع خدماتك الداخلية عبر شبكة Docker الخاصة.
- تحكم كامل في الإصدارات والتحديثات، دون تغيير مفروض في السعر.
| المعيار | n8n | Node-RED |
|---|---|---|
| حالة الاستخدام الرئيسية | تكامل واجهات SaaS البرمجية، سير العمل التجاري | إنترنت الأشياء، MQTT، معالجة التدفّقات آنياً |
| نموذج التنفيذ | سير عمل مُشغَّل (cron، webhook، مُطلِق) | تدفّق حَدَثي موجَّه بالرسائل |
| كتالوج التكاملات | أكثر من 400 عقدة تطبيقية جاهزة للاستخدام | مكتبة عُقَد عبر لوحة المجتمع |
| الشيفرة المخصّصة | عُقَد Code مدمجة (JS/Python) | عُقَد Function بلغة JavaScript |
| قاعدة البيانات | SQLite افتراضياً، وPostgreSQL موصى بها | ملفات JSON على القرص |
| الذاكرة الموصى بها | 1 إلى 2 غيغابايت | 512 ميغابايت إلى 1 غيغابايت |
| الرخصة | Sustainable Use License (fair-code) | Apache 2.0 |
| منحنى التعلّم | سهل المنال، موجَّه لغير المطوّرين | منطق تدفّقي، أكثر تقنيةً |
المتطلبات بحسب الأداة المختارة
بالنسبة لـ n8n، جهّز خادم VPS بـ 2 vCPU و2 غيغابايت من الذاكرة، والأهم PostgreSQL بدلاً من SQLite بمجرد أن تتجاوز بضعة سير عمل نشطة: إذ يقفل SQLite قاعدة البيانات تحت الحمل المتزامن. احسب 5 غيغابايت من القرص لقاعدة البيانات وملفات تنفيذ العمليات. أما Node-RED فأكثر اقتصاداً: 1 vCPU و1 غيغابايت من الذاكرة تكفي، إذ تُخزَّن تدفّقاته في ملفات JSON بسيطة. في الحالتين: Docker Compose v2، ونطاق فرعي مخصّص (n8n.mydomain.com أو flows.mydomain.com)، ووسيط عكسي HTTPS لا غنى عنها، لأن هذه الواجهات تعرض أسراراً ويجب ألا تعمل عبر HTTP خام أبداً.
انشر n8n (أو Node-RED) على خادم VPS الخاص بك
تجهيز Docker والشبكة
على خادم VPS، أنشئ شبكة Docker مخصّصة: docker network create automation. ستعزل n8n/Node-RED عن قاعدة البيانات والوسيط العكسي.
تشغيل PostgreSQL لـ n8n
في docker-compose، أضِف خدمة postgres:16 بوحدة تخزين دائمة وبيانات اعتماد كمتغيّرات بيئة. بالنسبة لـ Node-RED، هذه الخطوة غير ضرورية: تكفي وحدة تخزين data:/data.
إعداد حاوية التطبيق
بالنسبة لـ n8n، استخدم صورة docker.n8n.io/n8nio/n8n مع N8N_HOST وWEBHOOK_URL=https://n8n.mydomain.com/ وDB_TYPE=postgresdb. بالنسبة لـ Node-RED، تكفي صورة nodered/node-red:latest المعروضة على المنفذ 1880.
التشغيل والتحقّق
نفّذ docker compose up -d. يستمع n8n على 5678، وNode-RED على 1880. تحقّق من السجلات بـ docker compose logs -f وأكّد أن قاعدة البيانات متصلة جيداً بالنسبة لـ n8n.
التأمين خلف وسيط عكسي
وجّه حركة المرور عبر Caddy أو Traefik بشهادة Let's Encrypt تلقائية. فعّل المصادقة: N8N_BASIC_AUTH_ACTIVE=true لـ n8n، وتوجيه adminAuth في settings.js لـ Node-RED. من دون ذلك، يكون المحرّر متاحاً للعموم.
إعداد النسخ الاحتياطية
جدوِل pg_dump يومياً لقاعدة بيانات n8n، أو لقطة بسيطة لوحدة التخزين /data لـ Node-RED، تُودَع على تخزين خارجي عبر cron.
بالنسبة لـ n8n في الإنتاج، فعّل وضع queue مع Redis وحاويات عاملة (workers) منفصلة: عندئذٍ تكتفي العملية الرئيسية بالتنسيق، بينما ينفّذ العاملون العُقَد بالتوازي. بهذا تمتصّ ذُرى خطافات الويب دون تعطيل المحرّر. على صعيد Node-RED، اعزل عُقَد Function في سياق VM بـ functionGlobalContext مقيَّد لمنع تدفّق سيّئ الكتابة من إعطاب زمن التشغيل بأكمله.