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

كيف تستضيف n8n على Hostinger VPS باستخدام Docker Compose - دليل عملي كامل

دليل عملي خطوة بخطوة لتشغيل n8n على خادم VPS من Hostinger باستخدام Docker Compose مع قاعدة بيانات PostgreSQL وشهادة SSL مجانية عبر Traefik. وفّر تكلفة الاشتراك السحابي واستضف أداة الأتمتة بنفسك.

كيف تستضيف n8n على Hostinger VPS باستخدام Docker Compose - دليل عملي كامل

ما هو n8n ولماذا تحتاجه؟

n8n هو أداة أتمتة مفتوحة المصدر تسمح لك بربط التطبيقات والخدمات ببعضها بشكل بصري بدون كتابة كود معقد. تخيل أنك تربط Gmail مع Google Sheets مع ChatGPT مع Telegram في سير عمل واحد يعمل تلقائياً — هذا بالضبط ما يفعله n8n.

المشكلة؟ النسخة السحابية من n8n مكلفة، خصوصاً إذا كنت في بداية مشوارك. الحل؟ تستضيفه بنفسك على VPS بتكلفة بسيطة جداً. وفي هذا الشرح سأوريك كيف تفعل ذلك خطوة بخطوة باستخدام Hostinger VPS و Docker Compose.

الخطوة 1: حجز VPS من Hostinger

أول شيء تحتاجه هو خادم VPS. أنصحك بـ Hostinger VPS لأنه يوفر أداء ممتاز بسعر مناسب جداً. لتشغيل n8n بشكل مريح تحتاج على الأقل:

2 GB RAM (يفضل 4 GB إذا كانت عندك سيرعمل كثيرة)، 1-2 vCPU، و20 GB تخزين على الأقل. اختر نظام Ubuntu 22.04 أو 24.04 عند إعداد الخادم.

الخطوة 2: تثبيت Docker و Docker Compose

بعد الدخول على الخادم عبر SSH، نفّذ الأوامر التالية لتثبيت Docker:

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

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

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

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

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

بعد تنفيذ هذه الأوامر، أعد تسجيل الدخول للخادم حتى تأخذ صلاحيات Docker مفعولها.

الخطوة 3: إعداد ملف Docker Compose لـ n8n

هذا هو الجزء الأهم. سننشئ ملف Docker Compose يشغّل n8n مع قاعدة بيانات PostgreSQL للحصول على أداء أفضل واستقرار أعلى. أولاً أنشئ مجلد المشروع:

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

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

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_here
      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_here
      # الإعدادات العامة
      N8N_HOST: n8n.yourdomain.com
      N8N_PORT: 5678
      N8N_PROTOCOL: https
      WEBHOOK_URL: https://n8n.yourdomain.com/
      # المنطقة الزمنية
      GENERIC_TIMEZONE: Asia/Amman
      TZ: Asia/Amman
      # تشفير البيانات
      N8N_ENCRYPTION_KEY: your_random_encryption_key_here
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      n8n-db:
        condition: service_healthy

volumes:
  n8n_db_data:
  n8n_data:

مهم: غيّر your_secure_password_here لكلمة سر قوية، وغيّر n8n.yourdomain.com للدومين الخاص بك، وأنشئ مفتاح تشفير عشوائي باستخدام openssl rand -hex 32.

الخطوة 4: إضافة Traefik كـ Reverse Proxy مع SSL مجاني

لتشغيل n8n بشهادة SSL مجانية من Let's Encrypt، سنضيف Traefik. أنشئ ملف docker-compose.yml محدّث يشمل Traefik:

yaml
version: '3.8'

services:
  traefik:
    image: traefik:v3.0
    container_name: traefik
    restart: always
    command:
      - '--api.dashboard=false'
      - '--providers.docker=true'
      - '--providers.docker.exposedbydefault=false'
      - '--entrypoints.web.address=:80'
      - '--entrypoints.websecure.address=:443'
      - '--certificatesresolvers.letsencrypt.acme.httpchallenge=true'
      - '--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web'
      - '[email protected]'
      - '--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json'
      - '--entrypoints.web.http.redirections.entrypoint.to=websecure'
    ports:
      - '80:80'
      - '443:443'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - traefik_certs:/letsencrypt

  n8n-db:
    image: postgres:16-alpine
    container_name: n8n-db
    restart: always
    environment:
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: your_secure_password_here
      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
    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_here
      N8N_HOST: n8n.yourdomain.com
      N8N_PORT: 5678
      N8N_PROTOCOL: https
      WEBHOOK_URL: https://n8n.yourdomain.com/
      GENERIC_TIMEZONE: Asia/Amman
      TZ: Asia/Amman
      N8N_ENCRYPTION_KEY: your_random_encryption_key_here
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      n8n-db:
        condition: service_healthy
    labels:
      - 'traefik.enable=true'
      - 'traefik.http.routers.n8n.rule=Host(`n8n.yourdomain.com`)'
      - 'traefik.http.routers.n8n.entrypoints=websecure'
      - 'traefik.http.routers.n8n.tls.certresolver=letsencrypt'
      - 'traefik.http.services.n8n.loadbalancer.server.port=5678'

volumes:
  traefik_certs:
  n8n_db_data:
  n8n_data:

الخطوة 5: توجيه الدومين

قبل تشغيل المشروع، تحتاج توجيه الدومين الفرعي لعنوان IP الخادم. اذهب لإعدادات DNS في لوحة تحكم Hostinger وأضف سجل A Record:

text
Type: A
Name: n8n
Value: YOUR_VPS_IP_ADDRESS
TTL: 3600

انتظر بضع دقائق حتى ينتشر الـ DNS (عادةً من 5 إلى 30 دقيقة).

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

الآن اللحظة المنتظرة! شغّل كل شيء بأمر واحد:

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

للتحقق من أن كل شيء يعمل:

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

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

افتح المتصفح على https://n8n.yourdomain.com وسترى شاشة إعداد n8n لأول مرة. أنشئ حسابك وابدأ!

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

هذه أوامر ستحتاجها بشكل دوري:

bash
# تحديث n8n لأحدث إصدار
docker compose pull
docker compose up -d

# أخذ نسخة احتياطية من قاعدة البيانات
docker exec n8n-db pg_dump -U n8n n8n > backup_$(date +%Y%m%d).sql

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

# إيقاف كل شيء
docker compose down

نصائح من تجربتي

احفظ مفتاح التشفير: الـ N8N_ENCRYPTION_KEY يُستخدم لتشفير بيانات الدخول المخزنة (كلمات سر API وغيرها). إذا فقدته، ستخسر كل بيانات الدخول المحفوظة.

اعمل نسخ احتياطية دورية: ضع أمر النسخ الاحتياطي في cron job يعمل يومياً. هذا يحميك من فقدان سير العمل التي بنيتها بجهد.

ابدأ بـ VPS صغير وطوّر: ميزة Hostinger أنك تقدر ترقّي الخادم بسهولة إذا احتجت موارد أكثر. ابدأ بخطة بسيطة وطوّر مع نمو مشروعك.

ابدأ الآن

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

إذا واجهت أي مشكلة في الإعداد، اكتب لي في التعليقات وسأساعدك!

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

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

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