🚀 استضافة n8n ذاتيًا باستخدام Docker (دليل المبتدئين الكامل)

استضف نظام الأتمتة n8n على خادم Ubuntu باستخدام Docker و Cloudflare بسرعة وأمان وبدون تكلفة.

🚀 استضافة n8n ذاتيًا باستخدام Docker (دليل المبتدئين الكامل)
Read this in English

هل تريد بناء نظام أتمتة خاص بك — بدون دفع اشتراكات سحابية؟

في هذا الدليل، سأشرح لك خطوة بخطوة كيفية استضافة n8n على خادم Ubuntu خاص بك باستخدام Docker وCloudflare Tunnel.
الطريقة سريعة، آمنة، وسهلة حتى للمبتدئين.

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


🧰 المتطلبات الأساسية

قبل البدء، تأكد من توفر ما يلي:

  • نظام Ubuntu 20.04 أو أحدث (يفضل 24.04 LTS)
  • حساب مستخدم يمتلك صلاحيات sudo
  • معرفة أساسية باستخدام ال Terminal
  • (اختياري) حساب في Cloudflare إذا كنت تريد جعل إعدادك متاحاً عبر الإنترنت بشكل آمن

🐳 الخطوة 1: تثبيت Docker Engine وDocker Compose

يُسهل Docker تشغيل التطبيقات داخل حاويات معزولة.
لتثبيته على Ubuntu، نفّذ الأوامر التالية:

sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker --version
sudo docker compose version

هذه الأوامر تقوم بتثبيت Docker وDocker Compose على الخادم (VPS).

معلومة: باستخدام Docker ستتمكن لاحقاً من تشغيل n8n وقواعد البيانات وأدوات أخرى بأمر واحد فقط.

📦 الخطوة 2: تنزيل بيانات n8n Self-Hosting من GitHub

حمّل الإعداد المجهز مسبقاً مباشرةً من GitHub:

cd ~
git clone https://github.com/Bme-Adib/n8nSelfHosting.git
cd n8nSelfHosting

هذا المستودع يحتوي على كل ما تحتاجه — بما في ذلك ملف docker-compose.yml — لتشغيل n8n فوراً.

🚀 الخطوة 3: تشغيل n8n

لتشغيل n8n، نفّذ الأمر التالي:

docker compose up -d

وسيتم تنزيل الصور المطلوبة وتشغيل الخدمة تلقائياً.

يمكنك الوصول إليها عبر:

💻
إذا كنت تعمل على جهازك المحلي:
htttp://localhost:5678

أو على الخادم:
http://YOUR_SERVER_IP:5678
🧩 ملاحظة: إذا كنت تنوي استخدام تكاملات Google مثل Gmail أو Sheets، فستحتاج إلى اسم نطاق فعّال، لأن Google لا تسمح باستخدام عنوان IP فقط.

☁️ إعداد Cloudflare Tunnel (اختياري لكنه موصى به)

إذا كنت ترغب في جعل n8n متاحاً عبر الإنترنت بأمان دون فتح المنافذ، فإن Cloudflare Tunnel هو الخيار الأفضل.

1. تثبيت Cloudflared

sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | \
  sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] \
https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | \
  sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt update && sudo apt install cloudflared -y

2. تسجيل الدخول إلى Cloudflare

cloudflared tunnel login
ملاحظة:سيتم فتح المتصفح لتسجيل الدخول إلى حساب Cloudflare واختيار النطاق المطلوب.
سيتم حفظ بيانات الاعتماد في ~/.cloudflared.

3. إنشاء وإعداد النفق

أنشئ النفق بالأمر:

cloudflared tunnel create my-tunnel

استبدل my-tunnel باسم من اختيارك.

✅ عند إنشاء النفق، سيظهر Tunnel ID — انسخه لأننا سنحتاجه لاحقاً.

ثم حرّر ملف الإعداد:

sudo nano /etc/cloudflared/config.yml

مثال:

tunnel: <TUNNEL-ID>
credentials-file: /root/.cloudflared/<TUNNEL-ID>.json

ingress:
  - hostname: n8n.mydomain.com
    service: http://localhost:5678
  - service: http_status:404

ثم اضغط Ctrl + X ثم Y ثم Enter.

استبدل:
<TUNNEL-ID> بالمعرّف الخاص بك
mydomain.com بنطاقك الحقيقي

بعد ذلك نفّذ:

cloudflared tunnel route dns my-tunnel n8n.mydomain.com

وأخيراً ثبّت الخدمة لتعمل تلقائياً عند الإقلاع:

sudo cloudflared service install

الآن يمكنك الوصول إلى n8n عبر:

🌐
https://n8n.mydomain.com

🧩 إعداد متقدم – تشغيل خدمات متعددة

إذا أردت تشغيل أكثر من خدمة من خلال Cloudflare Tunnel، أضفها في قسم ingress:

tunnel: <TUNNEL-ID>
credentials-file: /root/.cloudflared/<TUNNEL-ID>.json

ingress:
  - hostname: n8n.mydomain.com
    service: http://localhost:5678
    
  - hostname: chat.mydomain.com
    service: http://localhost:3000
    
  - hostname: crm.mydomain.com
    service: http://localhost:8080

    
  - service: http_status:404

🏁 الخاتمة

لقد قمت الآن بإعداد نظام n8n ذاتي الاستضافة باستخدام Docker، وربطته اختيارياً عبر Cloudflare Tunnel بشكل آمن.
هذا الإعداد يمنحك تحكماً كاملاً، وخصوصية عالية، وإمكانية توسّع دون أي تكاليف شهرية.

لمشاهدة التطبيق العملي خطوة بخطوة، يمكنك متابعة الدرس الكامل على قناتي في YouTube.

✉️ هل تحتاج إلى مساعدة أو ترغب في التعاون؟

إذا كنت تحتاج إلى مساعدة في إعداد هذا النظام أو لديك أي استفسار، يمكنك التواصل معي من خلال
نموذج التواصل على موقعي.

وإذا كنت ترغب في التعاون في مشاريع تتعلق بالأتمتة أو الذكاء الاصطناعي أو برمجة Java، فلا تتردد بالتواصل عبر نموذج الاستشارة.

نموذج الاستشارة