شروحات تعليمية Feb. 27, 2026 153 مشاهدة

كيف تشغّل n8n على Raspberry Pi باستخدام Docker Compose - خادم أتمتة مجاني في بيتك

حوّل الـ Raspberry Pi الخاص بك إلى خادم أتمتة شخصي يعمل على مدار الساعة. في هذا الدليل العملي ستتعلم كيف تثبت وتشغّل n8n باستخدام Docker Compose على الـ Pi، مع خيارات للوصول من خارج الشبكة عبر Cloudflare Tunnel.

كيف تشغّل n8n على Raspberry Pi باستخدام Docker Compose - خادم أتمتة مجاني في بيتك

لماذا Raspberry Pi لتشغيل n8n؟

إذا عندك Raspberry Pi مركون في الدرج — هذا الوقت المناسب لتحويله لخادم أتمتة شخصي. بدلاً من دفع اشتراك شهري للنسخة السحابية من n8n أو حتى استئجار VPS، يمكنك تشغيل n8n مجاناً بالكامل على جهاز بحجم كف اليد.

الفكرة بسيطة: الـ Raspberry Pi يعمل 24/7 باستهلاك كهرباء شبه معدوم، وهذا بالضبط ما تحتاجه لأداة أتمتة تعمل في الخلفية وتنفذ سير العمل بشكل تلقائي. في هذا الشرح سأوريك كيف تفعل ذلك خطوة بخطوة.

ما تحتاجه قبل البداية

تأكد أن عندك التالي:

Raspberry Pi 4 أو 5 بذاكرة 4 GB على الأقل (يفضل 8 GB). النسخ الأقدم أو بذاكرة 2 GB ممكن تشتغل لكن الأداء سيكون محدوداً.

بطاقة MicroSD بسعة 32 GB على الأقل (أو SSD خارجي لأداء أفضل)، كيبل إيثرنت أو اتصال WiFi مستقر، ومزود طاقة مناسب للـ Pi.

Raspberry Pi OS (64-bit) مثبت على البطاقة. إذا لم تثبته بعد، استخدم Raspberry Pi Imager لتثبيت النظام وفعّل SSH من الإعدادات المتقدمة.

الخطوة 1: تحديث النظام وتثبيت Docker

ادخل على الـ Pi عبر SSH (أو افتح التيرمنال مباشرة) ونفّذ التالي:

bash
# الدخول عبر SSH
ssh [email protected]

# تحديث النظام
sudo apt update && sudo apt upgrade -y

# تثبيت Docker
curl -fsSL https://get.docker.com | sh

# إضافة المستخدم لمجموعة Docker
sudo usermod -aG docker pi

# تثبيت Docker Compose plugin
sudo apt install docker-compose-plugin -y

# أعد تسجيل الدخول لتفعيل الصلاحيات
exit
ssh [email protected]

# تحقق من التثبيت
docker --version
docker compose version

الخطوة 2: إعداد ملف Docker Compose

سنستخدم إعداد مخصص للـ Raspberry Pi مع SQLite بدلاً من PostgreSQL لتوفير الموارد. SQLite أكثر من كافي للاستخدام الشخصي والمشاريع الصغيرة.

bash
mkdir -p ~/n8n-pi && cd ~/n8n-pi

أنشئ ملف docker-compose.yml:

yaml
version: '3.8'

services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: always
    ports:
      - '5678:5678'
    environment:
      # الإعدادات الأساسية
      N8N_HOST: 0.0.0.0
      N8N_PORT: 5678
      N8N_PROTOCOL: http
      WEBHOOK_URL: http://YOUR_PI_IP:5678/
      # المنطقة الزمنية
      GENERIC_TIMEZONE: Asia/Amman
      TZ: Asia/Amman
      # مفتاح التشفير - احفظه في مكان آمن!
      N8N_ENCRYPTION_KEY: your_random_key_here
      # تقليل استهلاك الموارد
      N8N_DIAGNOSTICS_ENABLED: false
      N8N_HIRING_BANNER_ENABLED: false
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:

مهم: استبدل YOUR_PI_IP بعنوان IP الـ Pi المحلي (تقدر تعرفه بأمر hostname -I)، وأنشئ مفتاح تشفير عشوائي بأمر openssl rand -hex 32.

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

bash
cd ~/n8n-pi
docker compose up -d

التحميل الأول قد يأخذ بضع دقائق على الـ Pi — هذا طبيعي. بعد اكتماله، افتح المتصفح على أي جهاز متصل بنفس الشبكة واكتب:

text
http://YOUR_PI_IP:5678

ستظهر شاشة إعداد n8n. أنشئ حسابك وابدأ ببناء سير العمل!

اختياري: إعداد متقدم مع PostgreSQL

إذا كان عندك Pi 5 بذاكرة 8 GB وتريد أداء أقوى لسير عمل كثيرة، يمكنك استخدام PostgreSQL بدلاً من SQLite:

yaml
version: '3.8'

services:
  n8n-db:
    image: postgres:16-alpine
    container_name: n8n-db
    restart: always
    environment:
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: your_secure_password
      POSTGRES_DB: n8n
    volumes:
      - n8n_db_data:/var/lib/postgresql/data
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -U n8n']
      interval: 10s
      timeout: 5s
      retries: 5

  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: always
    ports:
      - '5678:5678'
    environment:
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: n8n-db
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_DATABASE: n8n
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: your_secure_password
      N8N_HOST: 0.0.0.0
      N8N_PORT: 5678
      N8N_PROTOCOL: http
      WEBHOOK_URL: http://YOUR_PI_IP:5678/
      GENERIC_TIMEZONE: Asia/Amman
      TZ: Asia/Amman
      N8N_ENCRYPTION_KEY: your_random_key_here
      N8N_DIAGNOSTICS_ENABLED: false
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      n8n-db:
        condition: service_healthy

volumes:
  n8n_db_data:
  n8n_data:

اختياري: الوصول من خارج الشبكة باستخدام Cloudflare Tunnel

الإعداد السابق يعمل داخل شبكتك المحلية فقط. إذا أردت الوصول لـ n8n من أي مكان (وهذا ضروري لعمل الـ webhooks)، استخدم Cloudflare Tunnel — مجاني وآمن ولا يحتاج فتح بورتات في الراوتر:

bash
# تثبيت cloudflared
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb

# تسجيل الدخول (سيفتح رابط في المتصفح)
cloudflared tunnel login

# إنشاء التونل
cloudflared tunnel create n8n-pi

# إعداد التونل
mkdir -p ~/.cloudflared
cat > ~/.cloudflared/config.yml << EOF
tunnel: YOUR_TUNNEL_ID
credentials-file: /home/pi/.cloudflared/YOUR_TUNNEL_ID.json

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

# ربط الدومين
cloudflared tunnel route dns n8n-pi n8n.yourdomain.com

# تشغيل التونل كخدمة دائمة
sudo cloudflared service install
sudo systemctl enable cloudflared
sudo systemctl start cloudflared

بعد ذلك، حدّث WEBHOOK_URL وN8N_PROTOCOL في docker-compose.yml:

yaml
N8N_PROTOCOL: https
      WEBHOOK_URL: https://n8n.yourdomain.com/

الآن يمكنك الوصول لـ n8n من أي مكان عبر https://n8n.yourdomain.com والـ webhooks ستعمل بشكل طبيعي.

أوامر صيانة يومية

bash
# عرض حالة الحاويات
docker compose ps

# عرض السجلات
docker compose logs -f n8n

# تحديث n8n
docker compose pull && docker compose up -d

# نسخ احتياطي لبيانات n8n
docker cp n8n:/home/node/.n8n ~/n8n-backup-$(date +%Y%m%d)

# إعادة تشغيل
docker compose restart

نصائح لأداء أفضل على الـ Pi

استخدم SSD خارجي: بطاقات MicroSD بطيئة وعمرها الافتراضي محدود. إذا كنت تنوي تشغيل n8n بشكل دائم، استثمر في SSD خارجي متصل بـ USB 3.0 واجعله قرص الإقلاع الرئيسي.

فعّل swap إضافي: إذا كانت الذاكرة 4 GB، أضف swap لتجنب توقف n8n عند تنفيذ سير عمل ثقيلة:

bash
sudo dphys-swapfile swapoff
sudo sed -i 's/CONF_SWAPSIZE=.*/CONF_SWAPSIZE=2048/' /etc/dphys-swapfile
sudo dphys-swapfile setup
sudo dphys-swapfile swapon

ثبّت عنوان IP: اذهب لإعدادات الراوتر واحجز عنوان IP ثابت للـ Pi (مثلاً 192.168.1.100) حتى لا يتغير بعد إعادة التشغيل.

راقب درجة الحرارة: الـ Pi يعمل 24/7 فتأكد من وجود تهوية جيدة. استخدم vcgencmd measure_temp لمراقبة الحرارة — إذا تجاوزت 70°C بشكل مستمر، أضف مروحة صغيرة أو مبرد معدني.

Raspberry Pi أم VPS؟

الـ Pi ممتاز للتجربة والاستخدام الشخصي والمشاريع الصغيرة. لكن إذا كبر مشروعك واحتجت استقراراً أكثر أو سير عمل كثيرة تعمل بالتوازي، فالانتقال لـ VPS هو الخطوة المنطقية التالية. في هذه الحالة، أنصحك بـ Hostinger VPS — الإعداد مشابه جداً لما فعلناه هنا ويمكنك مراجعة دليلنا الكامل لاستضافة n8n على Hostinger.

الخلاصة

الآن عندك خادم أتمتة شخصي يعمل 24/7 بتكلفة كهرباء لا تذكر. يمكنك ربط n8n مع ChatGPT، Gmail، Telegram، Google Sheets، وغيرها من الخدمات وبناء سير عمل ذكية توفر عليك ساعات من العمل اليدوي.

هل جربت تشغيل n8n على الـ Pi؟ شاركنا تجربتك في التعليقات!

شارك المقال
شبّك

أعجبك المقال؟ اكتشف المزيد!

تصفح مكتبتنا الشاملة من الأوامر الجاهزة والمقالات المتخصصة في الذكاء الاصطناعي