لماذا يُشكّل ترخيص n8n مشكلةً للوكالات
انتقل n8n إلى ترخيص Sustainable Use License (SUL) عام 2022 وشدّده عام 2025. تحظر البند الجوهري استخدام n8n لتقديم خدمة تجارية لأطراف ثالثة دون اتفاق مسبق مع الجهة المطوّرة. بالنسبة للوكالة، يشمل ذلك كل حالات الاستخدام تقريباً: أتمتة سير عمل العميل، أو إعادة بيع الوصول إلى نسخة مشتركة، أو الفوترة على ساعات الإعداد لنسخة مستضافة لصالح عميل. ينصّ SUL صراحةً: «لا يجوز لك إتاحة وظائف البرنامج لأطراف ثالثة كخدمة». تغطي هذه الصياغة سيناريوهات SaaS الداخلي متعدد العملاء، ولوحات التحكم ذات العلامة البيضاء، والتكاملات المُسلّمة باسمك الخاص. النتيجة العملية: على الوكالة الجادة إما التفاوض على ترخيص تجاري مع n8n أو إيجاد بديل مفتوح المصدر حقاً. يستهدف Activepieces هذه الفجوة تحديداً: نفس نموذج أداة بناء التدفقات المرئية، وترخيص MIT بلا قيود على الاستخدام التجاري، ومنظومة موصّلات تغطي التكاملات الشائعة للوكالات.
ما الذي يُغيّره ترخيص MIT في Activepieces فعلياً
- استخدام العملاء دون قيود — انشر Activepieces لكل عميل، وفوّت ساعات الإعداد، وأعد بيع الوصول: لا بند يحظر ذلك.
- التفريع والتخصيص — عدّل الكود المصدري، وأعد تسمية الواجهة، وادمج Activepieces في عرضك الخاص دون استئذان.
- لا ترخيص تجارياً للتفاوض عليه — صفر تكاليف ترخيص، وصفر تأخيرات إدارية، وصفر مخاطر تغيير الشروط عند التجديد.
- قابلية التدقيق الكاملة — يمكن لعميلك فحص الكود الذي يعالج بياناته؛ حجة بيع للقطاعات الخاضعة للتنظيم كالقانون والصحة والمالية.
- مساهمات المجتمع — يجذب MIT مساهمين أكثر من SUL؛ ما يعكس إيجاباً على وتيرة إصدار موصّلات جديدة.
- قابلية نقل البيانات — تصدير التدفقات بصيغة JSON قياسية غير مقيّد؛ الانتقال بين النسخ أو إلى فرع مشتق ممكن في أي وقت.
- الاستضافة متعددة السحابة — اختر مركز البيانات أو موفّر السحابة أو مركز بياناتك الخاص دون إخطار الجهة المطوّرة.
متطلبات النظام قبل النشر
يعمل Activepieces بخدمتين رئيسيتين: خادم Node.js وقاعدة بيانات PostgreSQL. لنسخة وكالة تخدم حتى خمسة عملاء متزامنين، خطّط لحد أدنى 2 vCPU و4 جيجابايت من الذاكرة — نفس الحد الأساسي لـ n8n، لكن Activepieces يتضمن محرك صندوق حماية للقطع المخصصة (TypeScript مُنفَّذ في عامل معزول) يستهلك ذاكرة إضافية عند الذروة. في الإنتاج مع تفعيل وضع الصندوق، تتيح 8 جيجابايت معالجة تدفقات معقدة دون ضغط على الذاكرة. للتخزين، خطط لـ 20 جيجابايت كحد أدنى لسجلات التنفيذ والمرفقات؛ حجم منفصل لـ PostgreSQL يُسهّل النسخ الاحتياطي. المنافذ المفتوحة: 80 و443 للوكيل العكسي، و5432 مغلق أمام العموم. لا يتطلب Activepieces Redis في الإعداد الأساسي؛ يصبح مفيداً فقط عند تفعيل الوضع الموزع. تحقق من تثبيت Docker Engine ≥ 24 وDocker Compose ≥ 2.20: docker --version وdocker compose version.
نشر Activepieces عبر Docker Compose
إنشاء مجلد العمل
اتصل بخادم VPS وأنشئ مجلداً مخصصاً:
mkdir -p /opt/activepieces && cd /opt/activepiecesتنزيل ملف Compose الرسمي
استرجع
docker-compose.ymlمن المستودع الرسمي:curl -fsSL https://raw.githubusercontent.com/activepieces/activepieces/main/docker-compose.yml -o docker-compose.ymlإنشاء ملف البيئة
أنشئ مفتاح تشفير وعيّن المتغيرات الأساسية:
cp .env.example .env 2>/dev/null || touch .env
ثم عدّل.envبحد أدنى:AP_ENCRYPTION_KEY=$(openssl rand -hex 16)AP_JWT_SECRET=$(openssl rand -hex 32)AP_FRONTEND_URL=https://automations.yourdomain.comAP_POSTGRES_PASSWORD=$(openssl rand -hex 24)تشغيل الحاويات
شغّل المجموعة في الخلفية:
docker compose up -d
تحقق من أن الخدمتين في حالةhealthy:docker compose psإعداد وكيل Nginx العكسي
أنشئ
/etc/nginx/sites-available/activepiecesبالكتلة التالية (عدّلserver_name):server { listen 443 ssl; server_name automations.yourdomain.com; location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; } }
فعّل وأعد التحميل:ln -s /etc/nginx/sites-available/activepieces /etc/nginx/sites-enabled/ && nginx -t && systemctl reload nginxالحصول على شهادة TLS
باستخدام Certbot:
certbot --nginx -d automations.yourdomain.com --non-interactive --agree-tos -m [email protected]إنشاء حساب المدير الأول
افتح
https://automations.yourdomain.comفي متصفحك. يطلب منك معالج الإعداد الأول إنشاء حساب المدير. أدخل عنوان بريد إلكتروني وكلمة مرور قوية (≥ 16 حرفاً).التحقق من الإصدار وتفعيل التحديثات
تحقق من الإصدار المنشور في الإعدادات ← حول. للتحديث:
docker compose pull && docker compose up -d
جدوِل هذا الأمر في cron أسبوعياً للبقاء على إصدار مُرقَّع.
توصيل عميل ذكاء اصطناعي عبر MCP
بلغ دعم MCP (Model Context Protocol) مرحلة الإتاحة العامة في Activepieces منذ مارس 2025، مع إضافة بروتوكول Streamable HTTP في ديسمبر 2025. يُعرّض كل تدفق في Activepieces كأداة MCP قابلة للاستدعاء من أي عميل متوافق — Claude Desktop، أو Anthropic API مع tools، أو عميل GPT-4o عبر واجهة tools في OpenAI. عملياً، يصبح تدفق Activepieces أداةً يستطيع عميلك استدعاءها باسمها: create-crm-contact، أو send-slack-alert، أو sync-airtable-row. لتفعيل MCP على نسخة Docker، أضف إلى .env: AP_MCP_ENABLED=true. بعد إعادة التشغيل (docker compose up -d)، يُنشئ Activepieces نقطة نهاية MCP على https://automations.yourdomain.com/api/v1/mcp. في Claude Desktop، أضف هذا الخادم إلى ملف إعداد MCP مع URL ومفتاح API لحساب خدمة Activepieces. يمكن للعميل حينئذٍ سرد التدفقات المتاحة وتشغيل أي منها بمعاملات منظّمة، دون الحاجة إلى إعداد webhook يدوي. بالنسبة لـ GPT-4o، تتوافق نفس نقطة النهاية مع مخطط tools في OpenAI API: عرّف URL ومفتاح API في استدعاء chat.completions.create وسيستطيع النموذج استدعاء أتمتتك كوظائف أصلية.
مسألة الموصّلات: 280 أم 500؟
يُتيح Activepieces نحو 280 موصّلاً رسمياً مقابل ما يقارب 500 في n8n — فارق حقيقي يستحق الإشارة إليه بصراحة. غير أن معظم الوكالات لا تستخدم في الواقع أكثر من ثلاثين موصّلاً على نسخة بعينها: CRM، وSlack، وwebhooks الواردة، والبريد الإلكتروني، وGoogle Sheets، وAirtable، وNotion. لهذه الحالات، فهرس Activepieces كافٍ تماماً. حين يغيب موصّل ما، يُتيح SDK قطع TypeScript المخصصة كتابته في ساعات قليلة: البنية موثّقة، ويتولى worker الصندوق المعزول دورة حياته، والقطعة المخصصة مُصدَرة كأي كود آخر. السؤال الحقيقي ليس «كم موصّلاً في الفهرس» بل «هل الموصّل الذي أحتاجه متاح اليوم» — وللتكاملات اليومية للوكالات، الجواب نعم.
Activepieces مقابل n8n مقابل Make — مقارنة للوكالات
مرّر الجدول أفقيًا
| Activepieces | n8n | Make | |
|---|---|---|---|
| الترخيص | MIT — استخدام تجاري حر | Sustainable Use License — استخدام الأطراف الثالثة مقيّد | SaaS مملوك — لا استضافة ذاتية |
| دعم MCP الأصلي | نعم (إتاحة عامة مارس 2025، Streamable HTTP ديسمبر 2025) | لا (إضافات تجريبية من طرف ثالث) | لا |
| عدد الموصّلات | ~280 موصّلاً رسمياً + SDK قطع مخصصة | ~500 موصّل رسمي | ~1,500 موصّل (SaaS فقط) |
| الاستضافة الذاتية | Docker Compose, Kubernetes, Railway | Docker, npm, Kubernetes | غير متاحة |
| تسعير الاستضافة الذاتية | مجاني (MIT) | مجاني (fair-code) ثم ترخيص تجاري للاستخدام من قِبل الأطراف الثالثة | الحد الأدنى للاشتراك الشهري في خطة Business (دون خيار الاستضافة الذاتية) / شهر كحد أدنى |
| المحرر المرئي | نعم، لوحة سحب وإفلات | نعم، لوحة سحب وإفلات | نعم، لوحة سيناريوهات |
| تنفيذ الكود المخصص | TypeScript في عامل معزول | JavaScript/Python في عقدة كود | لا (وحدات HTTP فقط) |
نسخ احتياطي لقاعدة بيانات PostgreSQL في Activepieces
تعيش جميع الإعدادات (التدفقات، بيانات الاعتماد، سجلات التنفيذ) في PostgreSQL. نسخة احتياطية يومية تكفي لمعظم الوكالات. أضف هذا السطر إلى crontab (crontab -e):0 3 * * * docker exec activepieces-postgres pg_dump -U activepieces activepieces | gzip > /opt/backups/activepieces-$(date +%Y%m%d).sql.gz
اختبر الاستعادة مرة واحدة على الأقل على نسخة تطوير: gunzip -c activepieces-20261001.sql.gz | docker exec -i activepieces-postgres psql -U activepieces activepieces. احتفظ بسبعة نسخ احتياطية دوارة كحد أدنى وانقلها خارج الخادم.
استكشاف الأخطاء — أخطاء شائعة
Error: ENCRYPTION_KEY is not set — المتغير AP_ENCRYPTION_KEY غائب أو فارغ في .env. أنشئ قيمة باستخدام openssl rand -hex 16 وأعد تشغيل المجموعة. لا تُعيد استخدام نفس المفتاح عبر نسخ متمايزة: ستصبح بيانات الاعتماد المشفّرة غير قابلة للقراءة على النسخة الأخرى.
Connection refused على المنفذ 8080 — بدأت حاوية activepieces لكنها لا تستمع بعد. راجع السجلات: docker compose logs activepieces --tail=50. السبب الأكثر شيوعاً هو عدم جاهزية PostgreSQL: يُعيد تشغيل docker compose restart activepieces عادةً حلّ المشكلة.
MCP endpoint returns 401 — يُرسل عميل الذكاء الاصطناعي إما مفتاح API منتهي الصلاحية أو مفتاحاً مرتبطاً بحساب لا يملك صلاحية MCP. في Activepieces، اذهب إلى الإعدادات ← مفاتيح API، أعد إنشاء مفتاح حساب الخدمة، وتحقق من أن الحساب يمتلك دور OPERATOR أو ADMIN على المشروع المعني.
Flow execution stuck on sandbox step — عامل الصندوق ينتظر موارد CPU. تحقق من الحمل بـ docker stats: إذا بقيت حاوية activepieces على 100% CPU لأكثر من ثلاثين ثانية، فخادم VPS أصغر من المطلوب. ارتقِ إلى 4 vCPU أو قيّد التوازي في إعدادات مشروع Activepieces.
الخطوات التالية والموارد التكميلية
نسخة Activepieces تعمل وتتصل بعملاء الذكاء الاصطناعي. الخطوة التالية الطبيعية هي تنظيم تدفقاتك حسب مشروع كل عميل وإعداد نظام تحكم في الإصدارات (تصدير JSON + مستودع Git). إذا كنت تُدير عدة عملاء على نفس النسخة، استكشف مساحات عمل Activepieces التي تُتيح فصل التدفقات وبيانات الاعتماد والسجلات لكل عميل. لمزيد من التعمق، راجع أدلتنا التكميلية: [تثبيت Activepieces على VPS](/blog/installer-activepieces-vps)، [تثبيت n8n على VPS](/blog/installer-n8n-vps) لتقييم الحلّين جنباً إلى جنب، [Zapier مقابل n8n: التكلفة والترحيل](/blog/zapier-vs-n8n-cout-migration-2026) لحساب عائد الاستثمار الكامل، [نشر خادم MCP للذكاء الاصطناعي مستضاف ذاتياً على VPS](/blog/mcp-serveur-ia-auto-heberge-vps) للتعمق في بنية متعددة العملاء.