دليل النشر

n8n 3.0: الانتقال من npm إلى Docker قبل أكتوبر 2026

انشر على VPS Cloud ←

الأتمتة8 دقيقة قراءة

n8n 3.0: الانتقال من npm إلى Docker قبل أكتوبر 2026

‏n8n 3.0 مقرر لأكتوبر 2026 ويُحدث تغييرًا جوهريًا: إيقاف دعم التثبيت عبر npm وnpx. سيُوزَّع n8n عبر Docker فقط. إذا كان تطبيقك لا يزال يعمل باستخدام ‏`npx n8n`‏ أو حزمة npm عامة، يجب إتمام الترحيل قبل هذا الموعد — ليس لأن الأمر لا يعمل اليوم، بل لأن الترحيل المخطط له أكثر أمانًا بكثير من الترحيل الطارئ.

ما الذي يتغير مع n8n 3.0 ولماذا يجب التصرف الآن

توثيق التغييرات الجذرية الرسمي لـ n8n 3.0 لا يترك مجالًا للشك: «سيتطلب n8n المستضاف ذاتيًا نشرًا قائمًا على Docker. لن يدعم n8n 3.0 بعد الآن التثبيت عبر ‏npm‏ أو ‏npx n8n‏.» هذا ليس تحذير إيقاف تدريجي — بل موعد نهائي صارم. في أكتوبر 2026، لن يمكن تحديث أي تطبيق يعمل عبر ‏npx n8n‏ أو حزمة npm عامة، وسيتجمد على آخر إصدار من السلسلة 2.x دون تصحيحات أمنية.

مخاطر تأجيل الترحيل إلى أكتوبر

  • ترحيل تحت الضغط — الترحيل في حالة طوارئ بينما تعمل أتمتة حرجة يعرّضك لأخطاء إعداد يصعب تشخيصها.
  • فقدان بيانات SQLite — توثق المشكلة رقم #22341 على GitHub حالات حدثت فيها انتكاسة في قاعدة البيانات عند تحديث حاويات Docker دون احتياطات: تعود سير العمل والتنفيذات إلى حالة نسخة احتياطية قديمة.
  • غياب التصحيحات الأمنية — تطبيق npm المجمَّد على الإصدار 2.x لا يتلقى تصحيحات الأمان ولا إصلاحات الاستقرار.
  • تراكم التعارضات — عمليات التكامل والعقد المجتمعية والـ webhooks تعتمد على واجهات برمجية تتطور مع الوقت.
  • مدة غير متوقعة — ترحيل مُعدّ له يستغرق ساعة واحدة؛ ترحيل مرتجل قد يستغرق يومًا كاملًا تتوقف خلاله سير عملك.

المتطلبات الأساسية قبل البدء

هذه الإجراءات مخصصة لتطبيق n8n قائم في الإنتاج. إذا كنت تبدأ من الصفر، راجع المقال المخصص لتثبيت n8n على VPS.

ما تحتاجه

  • VPS بصلاحية root — يُنصح بـ Ubuntu 22.04 أو Debian 12، بحد أدنى 2 vCPU و2 GB RAM لـ n8n وحده، و4 GB إذا أضفت PostgreSQL على الخادم نفسه.
  • Docker Engine وDocker Compose v2 — تحقق بـ ‏docker --version‏ و‏docker compose version‏ (صيغة بدون شرطة، الإضافة v2).
  • يُوصى بـ PostgreSQL — n8n يدعم SQLite وPostgreSQL، لكن SQLite على Docker ينطوي على مخاطر فقدان البيانات (راجع المشكلة #22341).
  • الوصول إلى تطبيق npm الحالي — يتطلب الترحيل تصدير سير العمل عبر REST API قبل إيقاف التطبيق القديم.
  • اسم نطاق وشهادة TLS — ‏your-domain.com‏ مع Let's Encrypt عبر Nginx كـ reverse proxy.
  • نافذة صيانة مجدولة — حتى قصيرة، تتجنب فقدان التنفيذات الجارية.

اكتشاف وضع التشغيل الحالي

قبل أي شيء، حدد بدقة كيف يُشغَّل تطبيق n8n لديك. الأمر المستخدم يعتمد على طريقة الإشراف.

اكتشف وصدِّر وانشر وتحقق

01

تحديد عملية n8n

ابحث عن الملف القابل للتنفيذ الجاري: ‏which n8n‏ يُظهر المسار إذا كان n8n مثبتًا عالميًا عبر npm. ثم تحقق من وجود خدمة نظام: ‏systemctl status n8n‏. إذا لم توجد خدمة systemd، ابحث عن عملية نشطة: ‏ps aux | grep n8n‏. نتيجة تحتوي على ‏npx n8n‏ تؤكد التثبيت عبر npm.

02

تحديد ملف الإعداد وقاعدة البيانات

مجلد البيانات الافتراضي هو ‏~/.n8n/‏. تحقق من محتواه: ‏ls -la ~/.n8n/‏. وجود ‏database.sqlite‏ يشير إلى قاعدة بيانات SQLite. دوِّن المسار الكامل — ستحتاجه للتصدير.

03

تصدير جميع سير العمل عبر REST API

احصل أولًا على مفتاح API من الواجهة (Settings → API → Create API Key)، ثم صدِّر: ‏curl -s -H 'X-N8N-API-KEY: YOUR_KEY' http://localhost:5678/api/v1/workflows | python3 -m json.tool > workflows-export-$(date +%Y%m%d).json‏. تحقق من أن الملف يحتوي على سير عملك قبل أي عملية.

04

إيقاف تطبيق npm بشكل صحيح

إذا كانت الخدمة مُشرفة عبر systemd: ‏systemctl stop n8n && systemctl disable n8n‏. إذا كانت مُشغَّلة يدويًا، حدد الـ PID بـ ‏pgrep -f n8n‏ ثم ‏kill -SIGTERM <PID>‏. انتظر بضع ثوانٍ لإتمام التنفيذات الجارية.

05

إنشاء ملف docker-compose.yml مع PostgreSQL

أنشئ مجلدًا مخصصًا: ‏mkdir -p /opt/n8n && cd /opt/n8n‏. ثم أنشئ ملف ‏docker-compose.yml‏ بالمحتوى الكامل المذكور في النسخة الفرنسية مع تعديل كلمات المرور واستخدام ‏your-domain.com‏. الإصدار مثبت على ‏n8nio/n8n:2.38.4‏ (مستقر في 2026-09-09).

06

تشغيل المنظومة واستيراد سير العمل

شغِّل المنظومة: ‏docker compose up -d‏. انتظر حتى تعمل الحاويتان بشكل سليم: ‏docker compose ps‏. بمجرد وصول n8n على ‏http://127.0.0.1:5678‏، استورد سير العمل عبر API وتحقق من وجودها في الواجهة.

07

ضبط Nginx كـ reverse proxy مع TLS

ثبِّت Nginx وCertbot: ‏apt install nginx certbot python3-certbot-nginx -y‏. أنشئ إعداد Nginx بـ proxy_pass إلى ‏http://127.0.0.1:5678‏ مع رؤوس WebSocket وmهلة قراءة 300 ثانية. فعِّل الموقع واحصل على الشهادة: ‏certbot --nginx -d your-domain.com‏.

08

التحقق من نجاح الترحيل

نفِّذ هذه الفحوصات بالترتيب: 1) الوصول إلى ‏https://your-domain.com‏ — تظهر صفحة تسجيل الدخول بدون تحذير TLS؛ 2) تحقق من وجود سير عملك وتفعيلها؛ 3) شغِّل سير عمل بسيطًا يدويًا؛ 4) حدِّث الـ webhooks إذا كانت الخدمات الخارجية تشير إلى العنوان القديم؛ 5) راجع السجلات بعد 24 ساعة: ‏docker compose logs n8n --since 24h | grep -i error‏.

دائمًا حدد إصدارًا، ولا تستخدم :latest

استخدام ‏n8nio/n8n:latest‏ يعرّضك لتحديثات تلقائية غير متحكم بها عند ‏docker compose pull‏. على قاعدة SQLite، قفزة إصدار رئيسية دون ترحيل مسبق قد تُطلق السيناريو الموصوف في المشكلة #22341. دائمًا ثبِّت إصدارًا محددًا وخطط لترقياتك. للانتقال إلى إصدار جديد: ‏docker compose pull && docker compose up -d‏.

استكشاف الأخطاء: الحالات الشائعة بعد الترحيل

إليك المشكلات الأكثر شيوعًا خلال هذا الانتقال.

المشكلات والحلول

  • سير العمل فارغة بعد الاستيراد — تحقق من أن تنسيق JSON المُصدَّر يتوافق مع ما تتوقعه API الاستيراد؛ بعض إصدارات n8n تُصدِّر كائن ‏{ data: [] }‏ وبعضها مصفوفة مباشرة.
  • الـ webhooks لا تستجيب — يجب أن يتطابق ‏WEBHOOK_URL‏ تمامًا مع عنوان URL العام للتطبيق (بما فيه ‏https://‏).
  • بيانات الاعتماد غير قابلة للوصول — بيانات الاعتماد مشفرة بمفتاح ‏N8N_ENCRYPTION_KEY‏. استرجعه من ‏~/.n8n/.n8n_encryption_key‏ على التطبيق القديم وضعه كمتغير بيئة.
  • انتكاسة قاعدة SQLite (المشكلة #22341) — إذا احتفظت بـ SQLite مؤقتًا، تأكد من تثبيت حجم Docker بشكل دائم. الترحيل إلى PostgreSQL يظل الحل النهائي.
  • خطأ ECONNREFUSED مع PostgreSQL — الشرط ‏depends_on.postgres.condition: service_healthy‏ وفحص الصحة ‏pg_isready‏ يضمنان انتظار n8n حتى يكون PostgreSQL جاهزًا.

ترحيل يجب إتمامه الآن، لا في أكتوبر

الإصدار المستقر من n8n وقت كتابة هذا المقال هو 2.38.4. لديك أسابيع لإجراء هذا الترحيل في ظروف مثالية: تصدير سير عملك بشكل صحيح، واختبار منظومة Docker على خادم اختباري، ثم التبديل في الإنتاج مع خطة تراجع حقيقية. في أكتوبر، عند توفر n8n 3.0، لن تحتاج إلا لتغيير رقم الإصدار في ‏docker-compose.yml‏ — خمس دقائق. الفرق بين خمس دقائق ويوم كامل من الضغط يبدأ الآن.

VPS جاهز لـ Docker وn8n

‏ServOrbit يوفر VPS بصلاحية root وIPv4 مخصصة واختيار نظام التشغيل. أطلق منظومة n8n في دقائق باستخدام قالب Docker الجاهز.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة