Hostinger
✨ استخدم هذا الرابط للحصول على خصم يبلغ 20% عند إتمام عملية الشراء.
رابط إحالة (قد نربح عمولة عند الشراء)
ما هو 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:
# تحديث النظام
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 للحصول على أداء أفضل واستقرار أعلى. أولاً أنشئ مجلد المشروع:
mkdir -p ~/n8n-docker && cd ~/n8n-docker
ثم أنشئ ملف docker-compose.yml:
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:
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:
Type: A
Name: n8n
Value: YOUR_VPS_IP_ADDRESS
TTL: 3600
انتظر بضع دقائق حتى ينتشر الـ DNS (عادةً من 5 إلى 30 دقيقة).
الخطوة 6: تشغيل n8n
الآن اللحظة المنتظرة! شغّل كل شيء بأمر واحد:
cd ~/n8n-docker
docker compose up -d
للتحقق من أن كل شيء يعمل:
# عرض حالة الحاويات
docker compose ps
# عرض السجلات
docker compose logs -f n8n
افتح المتصفح على https://n8n.yourdomain.com وسترى شاشة إعداد n8n لأول مرة. أنشئ حسابك وابدأ!
أوامر صيانة مهمة
هذه أوامر ستحتاجها بشكل دوري:
# تحديث 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 من هنا واتبع الخطوات في هذا الشرح. هذا رابط إحالة خاص بي — استخدامك له يدعم استمرار هذا المحتوى العربي المجاني.
Hostinger
✨ استخدم هذا الرابط للحصول على خصم يبلغ 20% عند إتمام عملية الشراء.
رابط إحالة (قد نربح عمولة عند الشراء)
إذا واجهت أي مشكلة في الإعداد، اكتب لي في التعليقات وسأساعدك!