[{"data":1,"prerenderedAt":121},["ShallowReactive",2],{"seo-verification":3,"blog-تثبيت-n8n-على-vps-مع-docker-دليل-شامل-2026-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":12,"excerpt":13,"readTime":14,"views":15,"isPinned":16,"publishedAt":17,"category":18,"categories":23,"featuredImage":25,"bgImage":26,"posterImage":27,"relatedSolution":28,"intro":31,"sections":32,"ctaTitle":98,"ctaBody":99,"ctaButton":100,"ctaUrl":101,"relatedPosts":102},3,"تثبيت-n8n-على-vps-مع-docker-دليل-شامل-2026",{"fr":10,"en":11,"ar":8},"installer-n8n-vps","install-n8n-on-vps-with-docker-complete-2026-guide","تثبيت n8n على VPS مع Docker: دليل شامل 2026","انشر n8n على VPS مع Docker Compose والوكيل العكسي. يشمل عطل V8 فوق 30 مسار، خطأ 502 nginx، والانتقال من npm إلى Docker قبل الإصدار v3.0.",11,0,false,"2026-06-05T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},2,"الأتمتة","automatisation","bg-brand-action\u002F10 text-brand-action",[24],{"id":19,"name":20,"slug":21,"color":22,"icon":21},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Finstaller-n8n-vps-poster.svg",{"categorySlug":29,"appSlug":30},"الأتمتة-وسير-العمل","n8n","‏n8n هو منسّق أتمتة مفتوح المصدر: يربط واجهات API الخاصة بك، ويشغّل مسارات العمل عند وقوع الأحداث، وعند استضافته ذاتيًا يعمل دون قيود على عمليات التنفيذ ودون اشتراك سحابي. يغطّي هذا الدليل التثبيت الكامل على VPS مع Docker، وإعداد الوكيل العكسي، والمتغيّرات البيئية الحرجة، وخطأين من أخطاء الإنتاج الحرجة — عطل V8 عند أكثر من 30 مسار متزامن وخطأ 502 Bad Gateway في nginx — والانتقال من وضع npm غير المدعوم منذ ‏n8n v3.0.",[33,37,48,51,76,80,83,86,89,92,95],{"type":34,"title":35,"body":36},"h2","‏لماذا تستضيف n8n على VPS الخاص بك","‏تفرض النسخة السحابية من n8n رسومًا على كل عملية تنفيذ تتجاوز الخطة وتحدّ من عدد مسارات العمل النشطة. على VPS الخاص بك، التكلفة الوحيدة هي تكلفة الخادم، بصرف النظر عن عدد الأتمتات أو استدعاءات API. كما تحتفظ بالتحكم الكامل في بيانات الاعتماد وحمولات webhooks وتاريخ التنفيذ — لا تنتقل أي بيانات عبر بنية تحتية خارجية.",{"type":38,"title":39,"items":40},"ul","‏الفوائد الملموسة لـ n8n مُستضاف ذاتيًا",[41,42,43,44,45,46,47],"عمليات تنفيذ غير محدودة: دون سقف شهري ودون تكلفة على الحجم.","بيانات الاعتماد وحمولات webhooks محصورة في خادمك دون عبور خارجي.","‏الوصول إلى العقد المجتمعية وتنفيذ الكود المخصص دون قيود.","‏Webhooks على نطاقك الخاص، قابلة للإعداد لكل تكامل وارد.","‏تكلفة قابلة للتنبؤ: سعر VPS ثابت مستقل عن حجم الأتمتات.","استمرارية مُدارة لمسارات العمل والسجل في وحدات تخزين تأخذ منها نسخًا احتياطية.","‏توافق مع Ollama وFlowise وأي خدمة Docker أخرى على نفس الشبكة الداخلية.",{"type":34,"title":49,"body":50},"المتطلبات بالأرقام","‏قبل البدء، تأكّد من أن VPS الخاص بك يستوفي المتطلبات التالية. للاستخدام المعتدل، **1 vCPU و1 GB من RAM كافيان**؛ خطّط لـ **2 vCPU و2 GB** حين تنفّذ مسارات عمل ثقيلة أو متزامنة، و**4 GB** إذا ربطت قاعدة بيانات PostgreSQL مخصّصة أو دمجت نموذج ذكاء اصطناعي محلي. خصّص 10 GB من القرص كحدٍّ أدنى لـ Docker والأحجام والسجلات. يجب ألا يكون المنفذ **5678** مكشوفًا مباشرةً — لا يستمع n8n إلا على `127.0.0.1:5678`. يُلزم وجود نطاق فرعي (مثل `n8n.your-domain.com`) يشير إلى IP الـ VPS لـ HTTPS وwebhooks الواردة.",{"type":52,"title":53,"steps":54},"steps","التثبيت خطوة بخطوة",[55,58,61,64,67,70,73],{"title":56,"body":57},"‏تحديث VPS وتثبيت Docker","‏اتصل عبر SSH وحدّث الحزم: `apt update && apt upgrade -y`. ثم ثبّت Docker عبر السكريبت الرسمي: `curl -fsSL https:\u002F\u002Fget.docker.com | sh`. تحقّق من التثبيت: `docker --version && docker compose version`. أنشئ مجلد العمل: `mkdir -p \u002Fopt\u002Fn8n && cd \u002Fopt\u002Fn8n`.",{"title":59,"body":60},"‏إنشاء ملف docker-compose.yaml","‏أنشئ `docker-compose.yaml` مع خدمة n8n، وحجم مسمّى للاستمرارية والمتغيّرات البيئية الأساسية. أعلن `image: n8nio\u002Fn8n:latest`، `restart: unless-stopped`، وارفق `n8n_data:\u002Fhome\u002Fnode\u002F.n8n`. اكشف فقط على `127.0.0.1:5678:5678` لتجنّب أي كشف عام مباشر للمنفذ.",{"title":62,"body":63},"ضبط المتغيّرات البيئية الحرجة","‏في قسم `environment` للخدمة، أعلن على الأقل: `N8N_HOST=n8n.your-domain.com`، `N8N_WEBHOOK_URL=https:\u002F\u002Fn8n.your-domain.com\u002F`، `N8N_PROXY_HOPS=1`، `N8N_BASIC_AUTH_ACTIVE=true`، `N8N_BASIC_AUTH_USER=\u003Clogin>` و`N8N_BASIC_AUTH_PASSWORD=\u003Cكلمة-مرور-قوية>`. للإنتاج، خزّن هذه القيم في ملف `.env` مجاور واستدعه عبر `env_file: .env`.",{"title":65,"body":66},"تشغيل الحاوية","‏نفّذ: `docker compose up -d`. تحقّق من تشغيل الحاوية: `docker compose ps`. راجع السجلات: `docker compose logs -f n8n`. يكون n8n جاهزًا حين تظهر السطر `Editor is now accessible via: http:\u002F\u002Flocalhost:5678\u002F` في السجلات.",{"title":68,"body":69},"‏إعداد الوكيل العكسي مع Caddy (موصى به)","‏Caddy هو أبسط وكيل عكسي لـ n8n: يتولّى شهادة Let's Encrypt والتجديد دون إعداد إضافي. ثبّت Caddy (`apt install caddy`) ثم حرّر `\u002Fetc\u002Fcaddy\u002FCaddyfile` لإضافة: `n8n.your-domain.com { reverse_proxy localhost:5678 }`. أعد التحميل: `systemctl reload caddy`. **مع nginx**، أضف في كتلة `server`: `proxy_set_header X-Forwarded-Host $host;` و`proxy_set_header X-Forwarded-Proto $scheme;` و`proxy_set_header X-Real-IP $remote_addr;`.",{"title":71,"body":72},"‏التحقق من الـ webhooks الواردة","‏في محرّر n8n، أنشئ سير عمل اختباريًا بعقدة **Webhook**. يجب أن يكون العنوان المعروض في وضع الإنتاج تمامًا `https:\u002F\u002Fn8n.your-domain.com\u002Fwebhook\u002F\u003Cمسارك>`. شغّل الاستدعاء من جهازك المحلي: `curl -X POST https:\u002F\u002Fn8n.your-domain.com\u002Fwebhook\u002Ftest -d '{}'`. إذا احتوى العنوان على `localhost` أو المنفذ `5678`، فالمتغيّر `N8N_WEBHOOK_URL` غير مُطبَّق.",{"title":74,"body":75},"ربط PostgreSQL للإنتاج","‏SQLite مناسب للاختبار؛ في الإنتاج افضل PostgreSQL. أضف خدمة `postgres:15` إلى نفس `docker-compose.yaml` مع حجم مخصّص `pg_data`. في خدمة n8n أضف: `DB_TYPE=postgresdb`، `DB_POSTGRESDB_HOST=postgres`، `DB_POSTGRESDB_DATABASE=n8n`، `DB_POSTGRESDB_USER=n8n` و`DB_POSTGRESDB_PASSWORD=\u003Cكلمة-مرور>`. أعد التشغيل بـ `docker compose up -d`.",{"type":77,"title":78,"body":79},"tip","‏التصليب ووضع queue","‏ثلاثة ردود فعل للإنتاج: (1) لا تكشف أبدًا المنفذ 5678 على الواجهة العامة — احتفظ بالربط `127.0.0.1:5678`. (2) فعّل المصادقة: في v1.x، `N8N_BASIC_AUTH_ACTIVE=true`؛ في v1.27+، افضل المصادقة الأصلية عبر الواجهة (الإعدادات → الأمان). (3) لمسارات العمل الطويلة أو مسارات الذكاء الاصطناعي، انتقل إلى وضع queue مع نسخة `worker` منفصلة وطابور Redis.",{"type":34,"title":81,"body":82},"‏عطل V8 الحرج مع أكثر من 30 مسار عمل نشط","‏**الأعراض.** تتوقف نسخة n8n فجأة برسالة الخطأ `FATAL ERROR: invalid-mark-compact are transition` في سجلات Docker. تعيد الحاوية تشغيلها إذا كان `restart: unless-stopped` مضبوطًا، لكن العطل يتكرر حين تتخطى الحمل نفس الحد. لا تظهر أي رسالة خطأ في الواجهة.\n\n**السبب.** هذا الخطأ هو تعطّل محرك V8 (محرك JavaScript المدمج في Node.js) خلال دورة جمع البيانات المهملة. يحدث حين يمتلئ كومة ذاكرة V8 — عادةً عند **30 مسار عمل تعمل بالتزامن** على VPS بأقل من 2 GB من الذاكرة المخصصة للعملية. لا يوجد **استعادة تلقائية** لهذه المشكلة.\n\n**الإصلاح الفوري.** زد حد كومة V8 بإضافة متغيّر البيئة التالي في خدمة n8n في `docker-compose.yaml`: `NODE_OPTIONS=--max-old-space-size=2048`. هذا يخصص 2 GB لكومة V8. أعد تشغيل الحاوية: `docker compose restart n8n`.\n\n**الإصلاح الهيكلي.** يجب أن يتوافق حد ذاكرة الحاوية مع حد V8. القاعدة: خصّص **ما لا يقل عن 2 GB من الذاكرة للـ VM** عند تجاوز 30 مسار عمل نشط، ومرّر `NODE_OPTIONS=--max-old-space-size=1536`. للمنشآت التي تضم أكثر من 50 مسار عمل، افضّل **وضع queue** (نسخة Redis worker منفصلة). ‏المصدر: community.n8n.io thread #308425.",{"type":34,"title":84,"body":85},"‏خطأ 502 Bad Gateway المستمر خلف nginx","‏**الأعراض.** تنجح الطلبات القصيرة لكن بعض مسارات العمل ترجع `502 Bad Gateway` من nginx — لا سيما المسارات التي تستدعي واجهات API خارجية بطيئة أو تعالج كميات كبيرة من البيانات. يحدث 502 بعد 60 ثانية بالضبط من بدء التنفيذ.\n\n**السبب.** ينتظر nginx افتراضيًا **60 ثانية** للحصول على رد من الخادم الخلفي قبل إغلاق الاتصال (`proxy_read_timeout` = 60 ث). إذا استغرق تنفيذ المسار أكثر من 60 ثانية، يقطع nginx الاتصال ويرجع 502. يستمر n8n في التنفيذ في الخلفية، لكن العميل لا يتلقى الرد أبدًا.\n\n**الإصلاح.** أضف هذين التوجيهين في كتلة `location` بإعداد nginx التي توكّل إلى n8n:\n\n`proxy_read_timeout 300;`\n`proxy_send_timeout 300;`\n\n‏قيمة 300 ثانية (5 دقائق) تغطي الغالبية العظمى من مسارات العمل الطويلة. أعد تحميل nginx: `nginx -t && systemctl reload nginx`.\n\n**التحقق.** شغّل مسار عمل بطيئًا متعمدًا (عقدة `Wait` مضبوطة على 90 ث) وتحقق من وصول الرد بعد 60 ثانية دون خطأ. ‏المصدر: community.n8n.io thread #274581.",{"type":34,"title":87,"body":88},"‏الانتقال من npm إلى Docker قبل n8n v3.0","‏إذا كانت نسختك تعمل عبر `npx n8n` أو `npm install -g n8n`، **تصرّف قبل أكتوبر 2026**. يتخلّى n8n v3.0 نهائيًا عن وضع npm\u002Fnpx. تتمّ عملية الانتقال في أربع خطوات دون فقدان أي بيانات.\n\n**الخطوة 1 — تصدير مسارات عملك.** في الواجهة، اذهب إلى الإعدادات → استيراد\u002Fتصدير أو: `n8n export:workflow --all --output=workflows.json`. صدّر أيضًا بيانات الاعتماد: `n8n export:credentials --all --output=credentials.json`.\n\n**الخطوة 2 — إيقاف نسخة npm.** أوقف العملية (`pm2 stop n8n` أو `systemctl stop n8n`).\n\n**الخطوة 3 — نشر حاوية Docker** باتباع الخطوات أعلاه. إذا نسخت `~\u002F.n8n` مباشرةً إلى الحجم، يُعيد n8n استخدام مسارات العمل وبيانات الاعتماد دون استيراد يدوي.\n\n**الخطوة 4 — الاستيراد والتحقق.** استورد عبر: `docker exec n8n n8n import:workflow --input=workflows.json`. تحقّق من أن كل مسار عمل نشط يُشغَّل بشكل صحيح.\n\n**الموعد النهائي: أكتوبر 2026.** نسخة npm لا تتلقى أي تحديثات بعد إصدار v3.0 — بما فيها تصحيحات الأمان.",{"type":34,"title":90,"body":91},"‏التغييرات الكاسرة التي يجب معرفتها (v1.27–v1.31)","‏ثلاثة تغييرات في الإصدارات الأخيرة يمكن أن تكسر نسخة موجودة بصمت.\n\n**إعادة تسمية معامل OAuth 2.0 في HTTP Request.** أُعيدت تسمية الحقل `oauthTokenData` في الإصدارات 1.27-1.31. قد تتوقف الطلبات المصادق عليها عبر OAuth 2.0 دون رسالة خطأ صريحة. تحقّق من كل مسار عمل يستخدم هذه العقدة بعد التحديث.\n\n**تنسيق عنوان URL لـ webhook.** تغيّر تنسيق عنوان URL الذي تنشئه عقد Webhook. إذا نسخت عناوين URL بشكل ثابت في خدمات خارجية، أعد التحقق منها بعد التحديث.\n\n**إهمال `$item()`.** وظيفة `$item()` محدّدة كمهملة. بديلها `$input.item` أو `$('اسم العقدة').item`. ستُزال في v3.0.\n\n‏القائمة الكاملة متاحة على \u003Ca href=\"https:\u002F\u002Fdocs.n8n.io\u002Fchangelog\u002Fv30-breaking-changes\">وثائق n8n الرسمية\u003C\u002Fa>.",{"type":34,"title":93,"body":94},"استكشاف الأخطاء الشائعة وإصلاحها","‏**المنفذ 5678 غير متاح.** تحقّق من تشغيل الحاوية (`docker compose ps`) ومن أنك تستمع على `127.0.0.1:5678`.\n\n**تعرض الـ webhooks `localhost` بدلًا من النطاق.** أضف `N8N_WEBHOOK_URL=https:\u002F\u002Fn8n.your-domain.com\u002F` وأعد التشغيل: `docker compose restart n8n`.\n\n**`N8N_PROXY_HOPS` مفقود: خطأ 502 أو تكرار.** أضف `N8N_PROXY_HOPS=1` في بيئة الحاوية.\n\n**خطأ في أذونات الحجم.** تعمل حاوية n8n تحت UID 1000: `chown -R 1000:1000 \u002Fopt\u002Fn8n\u002Fdata` ثم `docker compose restart n8n`.\n\n**PostgreSQL يرفض الاتصال.** تأكّد من أن خدمة postgres على نفس شبكة Docker وأن المتغيّرات تطابق تمامًا تلك المحدّدة في خدمة postgres.\n\n‏**عطل V8 الحرج (`FATAL ERROR: invalid-mark-compact`).** كومة ذاكرة V8 ممتلئة: أكثر من 30 مسار متزامن مع ذاكرة غير كافية. أضف `NODE_OPTIONS=--max-old-space-size=2048` وزد ذاكرة VPS إلى 2 GB كحد أدنى. راجع القسم المخصص أعلاه.\n\n‏**خطأ 502 Bad Gateway المستمر (60 ثانية بالضبط).** `proxy_read_timeout` لـ nginx عند القيمة الافتراضية. ارفعه إلى 300 ثانية في كتلة `location` التي توكّل إلى n8n. راجع القسم المخصص أعلاه.",{"type":34,"title":96,"body":97},"الصيانة والتوسع","‏للتحديثات، مقاربتان: Watchtower (مراقبة تلقائية للصورة وإعادة التشغيل) أو مهمة cron يدوية (`docker pull n8nio\u002Fn8n:latest && docker compose up -d`). في كلتا الحالتين، اقرأ ملاحظات الإصدار قبل أي تحديث رئيسي. احتفظ بتصديرات مسارات عملك محدّثة في مستودع git.","‏VPS الخاص بك لـ n8n، في دقائق","‏تقدّم ServOrbit خوادم VPS تعمل بنظام Linux مع وصول root وIPv4 مخصّصة وSSD NVMe — جاهزة لاستضافة Docker وn8n دون إعداد إضافي. تفضّل بزيارة صفحة المطوّرين لاختيار الإعداد المناسب لمسارات عملك.","‏اكتشف VPS ServOrbit","\u002Fsolutions\u002Fdeveloppeurs",[103],{"id":104,"slug":105,"slugs":106,"title":109,"excerpt":110,"readTime":7,"views":15,"isPinned":16,"publishedAt":111,"category":112,"categories":117,"featuredImage":25,"bgImage":26,"posterImage":119,"relatedSolution":120},93,"n8n-مقابل-node-red-أي-أداة-أتمتة-مستضافة-ذاتيا-تختار",{"fr":107,"en":108,"ar":105},"n8n-vs-node-red","n8n-vs-node-red-which-self-hosted-automation-tool-to-choose","n8n مقابل Node-RED: أي أداة أتمتة مستضافة ذاتياً تختار؟","n8n أم Node-RED لأتمتة سير عملك على خادم VPS؟ مقارنة تقنية، ومتطلبات Docker، ودليل النشر المستضاف ذاتياً.","2026-03-19T00:00:00+00:00",{"id":113,"name":114,"slug":115,"color":116,"icon":115},5,"مقارنات","comparatif","bg-info\u002F10 text-info",[118],{"id":113,"name":114,"slug":115,"color":116,"icon":115},"\u002Fblog\u002Fcovers\u002Fn8n-vs-node-red-poster.svg",{"categorySlug":29,"appSlug":30},1787580948846]