دليلك الشامل لبدء استخدام n8n محليًا: من الصفر إلى الأتمتة الاحترافية

استمع للبودكاست حوار شيق بين لمى وأبو عمر
0:00 / 0:00

بتذكر قبل كم سنة، كنت شغال على مشروع لعميل، والمطلوب كان إشي بسيط ظاهريًا: كل ما ينزل منتج جديد على موقع معين، لازم آخذ تفاصيله وأضيفه على ملف Google Sheets وأبعث إشعار على قناة Slack للفريق. في البداية، كنت أعملها يدويًا. كل يوم الصبح أفتح الموقع، وأنسخ وألصق… يا الله شو كان إشي ممل ومضيعة للوقت! قلت لحالي: “عيب يا أبو عمر، أنت مبرمج، لازم تلاقي حل أذكى من هيك”.

وقتها كتبت سكربت صغير بلغة بايثون، بس كان بده صيانة كل فترة، ولو صار أي تغيير في الموقع كان يضرب السكربت. القصة طولت… لحد ما في يوم اكتشفت أداة اسمها n8n. لما جربتها أول مرة، حسيت إني لقيت الكنز اللي كنت بدور عليه. نفس المهمة المعقدة اللي أخذت مني أيام من البرمجة والصيانة، قدرت أبنيها بشكل مرئي خلال أقل من ساعة وبدون ما أكتب كود معقد. ومن يومها، صارت n8n جزء أساسي من صندوق أدواتي اللي ما بستغني عنه.

في هالمقالة، بدي آخذكم معي في رحلة عملية خطوة بخطوة عشان تبدؤوا مع هاي الأداة الجبارة على أجهزتكم المحلية. يلا نشمر عن إيدينا ونبدأ.

الخطوة 1: ما هو n8n؟

ببساطة شديدة، n8n (اللي بتنلفظ N-eight-N) هو أداة أتمتة مهام (Workflow Automation) مفتوحة المصدر. فكر فيها زي “ليجو” البرمجة، بتعطيك مكعبات جاهزة (اسمها Nodes)، وأنت بتركبها مع بعض عشان تبني عمليات مؤتمتة تربط بين تطبيقات وخدمات مختلفة.

يمكن بتسأل حالك، ليش أستخدم n8n بدل أدوات مشهورة زي Zapier أو Make؟

  • مفتوح المصدر (Open Source): يعني الكود متاح للجميع. بتقدر تعدل عليه، تطور فيه، وتتأكد إنه ما في إشي مخفي. الكود ملكك.
  • يعمل محليًا (Self-Hosted): هاي هي الميزة القاتلة. بتقدر تثبته على جهازك أو على سيرفرك الخاص.
  • تحكم كامل بالبيانات (Full Data Control): بما إنه شغال عندك، فكل بياناتك الحساسة بتضل عندك ومحدش إله وصول عليها. إشي مهم جدًا للشركات وللمشاريع اللي فيها خصوصية.
  • مرن وقوي: ما في حدود تقريبًا للي ممكن تعمله. إذا في إشي مش موجود، بتقدر تبنيه بنفسك باستخدام عقدة الـ Function اللي بتسمحلك تكتب كود JavaScript.

الخطوة 2: المتطلبات الأساسية

قبل ما نكبس أي كبسة، لازم نتأكد إنه بيئة العمل جاهزة. عندك خيارين، وأنا بنصحك بشدة بالخيار الأول.

الخيار الأفضل (موصى به)

استخدام Docker و Docker Compose. ليش؟ لأنه بيوفر بيئة معزولة ونظيفة للتطبيق، وما بتعمل عجقة ومشاكل في جهازك. كل إشي بكون مرتب داخل حاوية (Container) خاصة فيه.

  • Docker
  • Docker Compose

أو بديلًا (إذا ما بتستخدم Docker)

بتقدر تستخدم Node.js مباشرة، بس تأكد من الإصدار.

  • Node.js (إصدار 18 أو أحدث)
  • npm (عادةً يأتي مع Node.js)

💡 نصيحة من أبو عمر: إذا ناوي تشتغل في مجال البرمجة باحتراف، لازم تتعلم Docker. هو مش بس لـ n8n، هو أداة أساسية لكل مطور حديث. بيوفر عليك ساعات من الصداع ومشاكل التوافقية بين الأجهزة المختلفة.

الخطوة 3: تثبيت n8n باستخدام Docker (الطريقة المفضلة)

هاي هي الطريقة الأنظف والأسرع. خلينا نمشي خطوة بخطوة.

3.1 إنشاء مجلد المشروع

افتح الطرفية (Terminal أو PowerShell) واكتب الأوامر التالية لإنشاء مجلد جديد والدخول إليه:

mkdir n8n-local && cd n8n-local

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

داخل هذا المجلد، أنشئ ملف جديد اسمه docker-compose.yml. هذا الملف هو اللي بيوصف لـ Docker كيف يشغل n8n.

انسخ المحتوى التالي والصقه في الملف:

version: "3"
services:
  n8n:
    image: n8nio/n8n
    container_name: n8n_local
    ports:
      - "5678:5678"
    volumes:
      - ./n8n_data:/home/node/.n8n
    environment:
      - N8N_BASIC_AUTH_ACTIVE=false
      - GENERIC_TIMEZONE=Asia/Gaza

شرح سريع للملف:

  • image: n8nio/n8n: بنحدد صورة Docker الرسمية لـ n8n.
  • ports: - "5678:5678": بنربط المنفذ 5678 داخل الحاوية بنفس المنفذ على جهازك، عشان نقدر نوصل للواجهة.
  • volumes: - ./n8n_data:/home/node/.n8n: هاي أهم نقطة. بنعمل “مجلد مشترك” بين جهازك والحاوية. أي بيانات أو Workflows بتحفظها، رح تتخزن في مجلد اسمه n8n_data على جهازك. هيك لو حذفت الحاوية، شغلك ما بروح.
  • environment: هنا بنحط متغيرات البيئة. أنا ضفت N8N_BASIC_AUTH_ACTIVE=false لتعطيل المصادقة الأولية للتسهيل، و GENERIC_TIMEZONE عشان أضبط التوقيت (غيّره حسب منطقتك).

3.3 تشغيل n8n

الآن، من نفس المجلد في الطرفية، شغّل الأمر التالي:

docker-compose up -d

الأمر -d يعني “detached mode”، يعني رح يشتغل في الخلفية وتقدر تسكر الطرفية.

3.4 فتح الواجهة

افتح متصفحك المفضل واذهب للرابط التالي:

http://localhost:5678

🎉 ألف مبروك! إذا شفت واجهة n8n، معناها كل شي تمام والأداة شغالة على جهازك المحلي.

الخطوة 4: نظرة على واجهة n8n

أول ما تفتح الواجهة، رح تشوف قدامك أربع مناطق رئيسية. خلينا نتعرف عليها:

  1. Canvas (لوحة الرسم): هاي هي مساحة العمل البيضاء الكبيرة اللي في النص. هنا رح تبني الـ Workflow تبعك عن طريق إضافة العقد وربطها ببعض.
  2. Nodes Panel (لوحة العقد): على اليمين، رح تلاقي قائمة بكل العقد المتاحة. بتقدر تبحث عن عقدة معينة (مثلاً “Google Sheets”) وتسحبها للـ Canvas.
  3. Execution Panel (لوحة التنفيذ): لما تشغل الـ Workflow، رح تظهر نتائج كل عقدة في هاي المنطقة. بتقدر تشوف البيانات اللي دخلت وخرجت من كل خطوة.
  4. Save / Execute (أزرار الحفظ والتشغيل): في الزاوية العلوية، عندك أزرار لحفظ شغلك، وتفعيل الـ Workflow، وتشغيله بشكل يدوي للتجربة.

الخطوة 5: ما هي الـ Workflow؟

الـ Workflow (سير العمل) هو جوهر n8n. هو عبارة عن سلسلة من الخطوات (العقد) اللي بتتنفذ بالترتيب عشان تنجز مهمة معينة. كل Workflow لازم يبدأ بعقدة بداية (Trigger) وبعدها بتيجي عقد المعالجة.

مثال بسيط لسير عمل:

(Trigger) عند وصول إيميل جديد → (عقدة 1) اقرأ محتوى الإيميل → (عقدة 2) إذا كان يحتوي على كلمة “فاتورة” → (عقدة 3) احفظ المرفقات في Google Drive → (عقدة 4) أرسل إشعارًا على Telegram.

الخطوة 6: أنواع العقد (Nodes Types)

العقد هي المكعبات اللي بتبني فيها. بتتقسم لأربع أنواع رئيسية:

6.1 Trigger Nodes (عقد البداية)

هاي العقدة اللي بتشعل فتيل الـ Workflow. هي اللي بتحدد متى يبدأ التنفيذ. كل Workflow لازم يحتوي على عقدة Trigger واحدة فقط.

  • Manual: للتشغيل اليدوي وقت التجربة.
  • Webhook: يبدأ التنفيذ عند استقبال طلب HTTP على رابط معين. هاي العقدة جبارة جدًا لربط n8n بأي نظام خارجي.
  • Cron: للتشغيل المجدول في أوقات محددة (مثلاً كل يوم الساعة 9 صباحًا).
  • On App Event: مثل “عند إضافة صف جديد في Google Sheets”.

6.2 Regular Nodes (عقد المعالجة)

هاي العقد اللي بتنفذ منطق الشغل الفعلي بعد الـ Trigger. هي اللي بتقرأ البيانات، بتعالجها، وبترسلها.

  • HTTP Request: لإرسال طلبات لأي API خارجي.
  • Set: لتعديل البيانات أو إنشاء متغيرات جديدة.
  • IF: لوضع شروط وتوجيه سير العمل لمسارات مختلفة.
  • Function: لكتابة كود JavaScript مخصص لعمليات معقدة.

6.3 Core Nodes (عقد أساسية)

هاي مجموعة من العقد الموجودة بشكل افتراضي ومهمة جدًا لبناء أي منطق معقد:

  • Set: لتعديل البيانات أثناء مرورها.
  • IF: لتنفيذ مسار بناءً على شرط (True/False).
  • Switch: مثل الـ IF ولكن لتفرعات متعددة بناءً على قيمة معينة.
  • Merge: لدمج مسارين أو أكثر في مسار واحد.
  • Wait: لتأخير التنفيذ لمدة معينة.

6.4 App Nodes (عقد التطبيقات)

هاي هي مكتبة التكاملات الضخمة في n8n. كل عقدة مصممة للتكامل مع خدمة معينة مثل:

  • Google Sheets
  • Telegram / Slack
  • Notion
  • GitHub
  • OpenAI

هاي العقد بتحتاج لعملية مصادقة (Credentials) عشان تسمح لـ n8n بالوصول لحسابك في هاي الخدمات.

الخطوة 7: شرح أهم العقد عمليًا

خلونا نشوف كيف نستخدم أهم هاي العقد بشكل عملي.

7.1 Manual Trigger

اسحب عقدة Start للـ Canvas. هاي هي نفسها الـ Manual Trigger. بتلاقي فيها زر “Execute Workflow”. استخدمها دائمًا في مرحلة بناء واختبار الـ Workflow.

7.2 Set Node

هاي العقدة مهمة جدًا لتنظيم بياناتك. تخيل إنك استقبلت بيانات من API وبدك تضيف عليها معلومات جديدة. اسحب عقدة “Set” واربطها بعد الـ Trigger. بتقدر تضيف حقول (Fields) جديدة. مثلاً:

  • Name: name, Value: "Abu Omar"
  • Name: role, Value: "AI Engineer"

البيانات اللي بتطلع من عقدة Set رح تحتوي على هاي الحقول الجديدة.

7.3 IF Node

لتنفيذ منطق شرطي. اسحب عقدة “IF” واربطها. في إعداداتها، بتقدر تحط شرط. مثلاً، لو عندك متغير اسمه age جاي من عقدة سابقة، ممكن تحط الشرط:

  • Value 1: {{$json["age"]}} (هيك بنقرأ قيمة من البيانات الواردة)
  • Operation: “Larger Than”
  • Value 2: 18

عقدة IF رح يكون إلها مخرجين: واحد لـ true وواحد لـ false، وبتقدر تربط عقد مختلفة بكل مخرج.

7.4 HTTP Request Node

قلب الأتمتة الحديثة. هاي العقدة بتخليك تتواصل مع أي API في العالم. اسحبها، وحط فيها:

  • URL: رابط الـ API اللي بدك تطلب منه بيانات.
  • Method: (GET, POST, PUT, etc.).
  • Options: بتقدر تضيف Headers, Body, أو أي إعدادات أخرى للطلب.

7.5 Function Node

السلاح السري للمطورين. لما توصل لمرحلة ما بتقدر تعملها بالعقد الجاهزة، بتستخدم هاي العقدة لكتابة كود JavaScript.

مثلاً، لو عندك قائمة منتجات وبدك تضيف 14% ضريبة على سعر كل منتج:

// items هو المتغير الافتراضي اللي بيحمل كل البيانات الواردة
for (const item of items) {
  // بنضيف حقل جديد اسمه total
  item.json.total = item.json.price * 1.14;
}
return items;

هذا الكود بيلف على كل عنصر (item) وبضيفله حقل جديد اسمه total.

الخطوة 8: فهم البيانات داخل n8n

هاي أهم نقطة للمبتدئين. كل البيانات اللي بتنتقل بين العقد بتكون بصيغة JSON. كل عقدة بتستلم مصفوفة من عناصر JSON من العقدة اللي قبلها، وبتمرر مصفوفة جديدة للي بعدها.

لما بدك تستخدم قيمة من عقدة سابقة في عقدة حالية، بتستخدم إشي اسمه Expression Editor. الصيغة الأساسية هي:

{{ ... }}

للوصول لبيانات العقدة السابقة، بتستخدم $json. مثلاً، للوصول لقيمة حقل اسمه “name”:

{{$json["name"]}}

n8n بيسهل عليك هاي العملية. لما تضغط على مربع أي قيمة، رح يفتحلك محرر بيعرض لك كل البيانات المتاحة من العقد السابقة وبتقدر تختار منها بسهولة.

الخطوة 9: حفظ وتشغيل الـ Workflow

  1. بعد ما تبني الـ Workflow تبعك، اضغط على زر Save في الزاوية العلوية اليمنى.
  2. للتجربة، اضغط على Execute Workflow.
  3. راقب النتائج اللي بتظهر تحت كل عقدة. لو في خطأ، رح تظهر العقدة باللون الأحمر وتقدر تشوف تفاصيل الخطأ.
  4. لما تكون جاهز، فعّل الـ Workflow من الزر اللي في الزاوية العلوية اليسرى عشان يشتغل بشكل تلقائي (إذا كان الـ Trigger مش يدوي).

الخطوة 10: أخطاء شائعة للمبتدئين

من خبرتي، هاي هي أكثر الأخطاء اللي بيوقع فيها الجداد على n8n:

  • نسيان عقدة Trigger: ما في Workflow بشتغل بدونها.
  • عدم فهم شكل البيانات (JSON): محاولة الوصول لبيانات بشكل خاطئ، مثل {{name}} بدل {{$json["name"]}}.
  • استخدام عقدة IF بدون شرط صحيح: تأكد من أن الشرط تبعك منطقي وبيرجع true أو false.
  • نسيان حفظ الـ Workflow: بتعمل تغييرات وبتشغل، بس بتكتشف إنك بتشغل النسخة القديمة. دائمًا احفظ قبل التشغيل.

الخطوة 11: أفضل الممارسات

  • سمِّ العقد بأسماء واضحة: بدل ما تتركها “HTTP Request”، سميها “Get User Data from API”. هذا بيساعدك لما يكبر الـ Workflow.
  • اختبر كل عقدة لوحدها: بعد ما تضيف عقدة جديدة، شغلها فورًا عشان تتأكد إنها بتجيب البيانات بالشكل الصحيح.
  • استخدم الملاحظات (Notes): بتقدر تضيف ملاحظات على الـ Canvas لشرح الأجزاء المعقدة.
  • لا تعقد الأمور: إذا لقيت حالك بتعمل 10 عقد متتالية لمعالجة بيانات، فكر باستخدام عقدة Function واحدة. بتكون أنظف وأسرع.

الخطوة 12: ماذا بعد؟

الآن بعد ما أتقنت الأساسيات، السماء هي حدودك. هاي بعض الأفكار المتقدمة:

  • ربط n8n مع نماذج الذكاء الاصطناعي: استخدم عقدة OpenAI أو HTTP Request للتواصل مع نماذج اللغة الكبيرة (LLMs) لإنشاء محتوى، تلخيص نصوص، أو تحليل بيانات.
  • إنشاء Chatbots: استخدم عقدة Webhook لاستقبال رسائل من Telegram أو WhatsApp، عالجها، وأرسل ردودًا آلية.
  • أتمتة أعمال كاملة: بناء أنظمة متكاملة لإدارة العملاء (CRM)، أو أتمتة عمليات التسويق، أو إدارة المشاريع.
  • نشر n8n على سيرفر (VPS): بدل ما يضل شغال على جهازك، انشره على سيرفر سحابي عشان يشتغل 24/7.

الخلاصة والنصيحة الأخيرة

أداة n8n هي أكثر من مجرد أداة أتمتة، هي طريقة تفكير. بتخليك دائمًا تبحث عن طرق أذكى وأسرع لإنجاز المهام المتكررة، عشان توفر وقتك وجهدك للأشياء اللي بتحتاج إبداع وتفكير بشري حقيقي.

نصيحتي الأخيرة إلك: ابدأ ببناء شيء بسيط اليوم. لا تنتظر الفكرة العبقرية. افتح n8n وحاول تبني Workflow يرسل لك “صباح الخير” كل يوم على تيليجرام، أو يقرأ آخر الأخبار من موقع RSS ويرسلها لإيميلك. القوة الحقيقية بتيجي من التطبيق العملي والممارسة المستمرة. 👍

بالتوفيق يا أبطال، وإذا عندكم أي سؤال، أنا موجود.

أبو عمر

سجل دخولك لعمل نقاش تفاعلي

كافة المحادثات خاصة ولا يتم عرضها على الموقع نهائياً

آراء من النقاشات

لا توجد آراء منشورة بعد. كن أول من يشارك رأيه!

آخر المدونات

أتمتة العمليات

قهوتك الصباحية مع ملخص الإنجازات: كيف تبني داشبورد يومي يصلك على الموبايل باستخدام n8n والذكاء الاصطناعي

كف عن تشتيت نفسك كل صباح بين Jira وGitHub والإيميلات. تعلم معي، أبو عمر، كيف تبني ورك فلو أتمتة يرسل لك ملخصاً ذكياً ومنسقاً بإنجازات...

12 فبراير، 2026 قراءة المزيد
البودكاست