نصب و راه‌اندازی n8n روی سرور شخصی: راهنمای گام به گام

فهرست مطالب

“`html

نصب و راه‌اندازی n8n روی سرور شخصی: راهنمای گام به گام

n8n یک پلتفرم اتوماسیون گردش کار متن‌باز قدرتمند است که به شما امکان می‌دهد بدون نیاز به کدنویسی، فرایندهای مختلف را در برنامه‌ها و سرویس‌های مختلف خودکار کنید. با نصب n8n روی سرور شخصی خود، کنترل کاملی بر داده‌های خود خواهید داشت و می‌توانید گردش‌کارهای پیچیده را با امنیت و حریم خصوصی بیشتری اجرا کنید. این راهنما، یک راهنمای گام به گام برای نصب و راه‌اندازی n8n روی سرور شخصی شما، با تمرکز بر جامعه تخصصی و ارائه جزئیات فنی مورد نیاز است.

پیش‌نیازها

قبل از شروع فرآیند نصب، اطمینان حاصل کنید که موارد زیر را در اختیار دارید:

  • یک سرور: یک سرور با سیستم عامل لینوکس (مانند Ubuntu، Debian یا CentOS) با دسترسی SSH.
  • دسترسی SSH: دسترسی SSH به سرور با یک کاربر دارای دسترسی sudo.
  • Docker و Docker Compose: Docker و Docker Compose باید روی سرور نصب و پیکربندی شده باشند. اگر هنوز این کار را نکرده‌اید، به بخش مربوطه مراجعه کنید.
  • نام دامنه (اختیاری): اگر می‌خواهید n8n را از طریق یک نام دامنه در دسترس قرار دهید، یک نام دامنه و DNS recordهای مربوطه را پیکربندی کنید.
  • Nginx یا Apache (اختیاری): برای پیکربندی reverse proxy و SSL/TLS encryption، به یک وب‌سرور مانند Nginx یا Apache نیاز دارید.

نصب Docker و Docker Compose

اگر Docker و Docker Compose از قبل روی سرور شما نصب نشده‌اند، می‌توانید از دستورالعمل‌های زیر استفاده کنید:

نصب Docker

برای نصب Docker روی Ubuntu یا Debian، دستورات زیر را اجرا کنید:


 sudo apt update
 sudo apt install docker.io
 sudo systemctl start docker
 sudo systemctl enable docker
 

برای CentOS:


 sudo yum update
 sudo yum install docker
 sudo systemctl start docker
 sudo systemctl enable docker
 

نصب Docker Compose

برای نصب Docker Compose، دستورات زیر را اجرا کنید:


 sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
 sudo chmod +x /usr/local/bin/docker-compose
 

پس از نصب، می‌توانید با اجرای دستور `docker –version` و `docker-compose –version` از نصب صحیح آن‌ها اطمینان حاصل کنید.

پیکربندی فایل Docker Compose برای n8n

در این مرحله، یک فایل `docker-compose.yml` برای پیکربندی n8n ایجاد می‌کنیم. این فایل، نحوه اجرا و پیکربندی کانتینرهای Docker برای n8n را مشخص می‌کند. یک دایرکتوری برای فایل‌های n8n ایجاد کنید و فایل `docker-compose.yml` را در آن دایرکتوری ایجاد کنید:


 mkdir n8n
 cd n8n
 nano docker-compose.yml
 

محتوای زیر را در فایل `docker-compose.yml` قرار دهید:


 version: '3.9'

 services:
  n8n:
   image: n8nio/n8n
   restart: always
   ports:
    - "5678:5678"
   environment:
    - N8N_HOST=${N8N_HOST}
    - N8N_PORT=${N8N_PORT}
    - N8N_PROTOCOL=${N8N_PROTOCOL}
    - NODE_ENV=production
    - WEBHOOK_URL=${WEBHOOK_URL}
    - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
   volumes:
    - n8n_data:/home/node/.n8n

 volumes:
  n8n_data:
 

توضیحات:

  • image: n8nio/n8n: مشخص می‌کند که از image رسمی n8n از Docker Hub استفاده شود.
  • restart: always: اطمینان حاصل می‌کند که کانتینر n8n در صورت crash شدن، به طور خودکار restart شود.
  • ports: “5678:5678”: پورت 5678 سرور را به پورت 5678 کانتینر n8n متصل می‌کند.
  • environment: متغیرهای محیطی مورد نیاز n8n را تنظیم می‌کند.
  • volumes: n8n_data:/home/node/.n8n: یک volume به نام `n8n_data` را به دایرکتوری `/.n8n` در کانتینر متصل می‌کند. این کار باعث می‌شود که داده‌های n8n (مانند گردش‌کارها و تنظیمات) بین restartها حفظ شوند.

تنظیم متغیرهای محیطی

متغیرهای محیطی مورد نیاز n8n را در یک فایل `.env` تنظیم کنید. در همان دایرکتوری که فایل `docker-compose.yml` قرار دارد، فایل `.env` را ایجاد کنید:


 nano .env
 

محتوای زیر را در فایل `.env` قرار دهید:


 N8N_HOST=localhost
 N8N_PORT=5678
 N8N_PROTOCOL=http
 WEBHOOK_URL=http://localhost:5678/
 GENERIC_TIMEZONE=Etc/UTC
 

توضیحات:

  • N8N_HOST: نام hostی که n8n روی آن اجرا می‌شود. اگر از یک نام دامنه استفاده می‌کنید، آن را در اینجا وارد کنید.
  • N8N_PORT: پورتی که n8n روی آن listen می‌کند.
  • N8N_PROTOCOL: پروتکل مورد استفاده برای دسترسی به n8n (http یا https).
  • WEBHOOK_URL: URLی که برای webhookها استفاده می‌شود. این URL باید قابل دسترسی از اینترنت باشد.
  • GENERIC_TIMEZONE: منطقه زمانی مورد استفاده n8n.

نکته: اگر از https استفاده می‌کنید، باید Nginx یا Apache را به عنوان reverse proxy پیکربندی کنید و SSL/TLS encryption را فعال کنید. در این صورت، `N8N_PROTOCOL` را به `https` تغییر دهید و `WEBHOOK_URL` را به URLی که از طریق https قابل دسترسی است، تنظیم کنید.

اجرای n8n با Docker Compose

پس از پیکربندی فایل‌های `docker-compose.yml` و `.env`، می‌توانید n8n را با استفاده از Docker Compose اجرا کنید. در دایرکتوری `n8n`، دستور زیر را اجرا کنید:


 docker-compose up -d
 

این دستور، کانتینر n8n را در پس‌زمینه اجرا می‌کند. می‌توانید با استفاده از دستور `docker-compose logs -f` logهای کانتینر را مشاهده کنید.

پس از اجرای موفقیت‌آمیز دستور، می‌توانید با مراجعه به آدرس `http://localhost:5678` (یا آدرس و پورتی که در فایل `.env` تنظیم کرده‌اید) به رابط کاربری n8n دسترسی پیدا کنید.

پیکربندی Nginx به عنوان Reverse Proxy (اختیاری)

اگر می‌خواهید n8n را از طریق یک نام دامنه و با استفاده از https در دسترس قرار دهید، باید Nginx یا Apache را به عنوان reverse proxy پیکربندی کنید.

در این بخش، نحوه پیکربندی Nginx را توضیح می‌دهیم. ابتدا یک فایل configuration برای n8n در دایرکتوری `sites-available` ایجاد کنید:


 sudo nano /etc/nginx/sites-available/n8n
 

محتوای زیر را در فایل `n8n` قرار دهید (مقادیر را با توجه به تنظیمات خود تغییر دهید):


 server {
  listen 80;
  server_name yourdomain.com;

  location / {
   proxy_pass http://localhost:5678/;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection 'upgrade';
   proxy_set_header Host $host;
   proxy_cache_bypass $http_upgrade;
  }
 }
 

توضیحات:

  • listen 80: مشخص می‌کند که Nginx روی پورت 80 (HTTP) listen کند.
  • server_name yourdomain.com: نام دامنه خود را در اینجا وارد کنید.
  • proxy_pass http://localhost:5678/: ترافیک را به آدرس `http://localhost:5678/` (کانتینر n8n) هدایت می‌کند.
  • proxy_set_header: هدرهای HTTP را تنظیم می‌کند تا WebSocketها به درستی کار کنند.

سپس، این فایل را در دایرکتوری `sites-enabled` لینک کنید:


 sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
 

فایل configuration پیش‌فرض Nginx را غیرفعال کنید:


 sudo rm /etc/nginx/sites-enabled/default
 

Nginx را restart کنید تا تغییرات اعمال شوند:


 sudo systemctl restart nginx
 

در نهایت، باید SSL/TLS encryption را فعال کنید تا ترافیک به صورت امن انتقال یابد. می‌توانید از Let’s Encrypt برای دریافت گواهینامه SSL رایگان استفاده کنید:


 sudo apt install certbot python3-certbot-nginx
 sudo certbot --nginx -d yourdomain.com
 

Certbot به طور خودکار Nginx را پیکربندی می‌کند و گواهینامه SSL را نصب می‌کند. پس از اتمام این مراحل، می‌توانید با مراجعه به آدرس `https://yourdomain.com` به n8n دسترسی پیدا کنید.

به‌روزرسانی n8n

برای به‌روزرسانی n8n به آخرین نسخه، مراحل زیر را انجام دهید:

  1. دایرکتوری `n8n` را متوقف کنید:
  2. 
      docker-compose down
      
  3. آخرین image n8n را pull کنید:
  4. 
      docker pull n8nio/n8n
      
  5. دایرکتوری `n8n` را دوباره اجرا کنید:
  6. 
      docker-compose up -d
      

با انجام این مراحل، n8n شما به آخرین نسخه به‌روزرسانی می‌شود.

پیکربندی پایگاه داده خارجی (اختیاری)

به طور پیش‌فرض، n8n از یک پایگاه داده SQLite برای ذخیره داده‌ها استفاده می‌کند. با این حال، برای production workloads، توصیه می‌شود از یک پایگاه داده خارجی مانند PostgreSQL یا MySQL استفاده کنید.

برای پیکربندی یک پایگاه داده خارجی، ابتدا باید یک instance از پایگاه داده مورد نظر خود را ایجاد کنید. سپس، متغیرهای محیطی مربوطه را در فایل `.env` تنظیم کنید:

PostgreSQL:


 DB_TYPE=postgresdb
 DB_POSTGRESDB_HOST=your_postgres_host
 DB_POSTGRESDB_PORT=5432
 DB_POSTGRESDB_DATABASE=n8n
 DB_POSTGRESDB_USER=n8n
 DB_POSTGRESDB_PASSWORD=your_postgres_password
 

MySQL:


 DB_TYPE=mysqldb
 DB_MYSQLDB_HOST=your_mysql_host
 DB_MYSQLDB_PORT=3306
 DB_MYSQLDB_DATABASE=n8n
 DB_MYSQLDB_USER=n8n
 DB_MYSQLDB_PASSWORD=your_mysql_password
 

مقادیر را با توجه به تنظیمات پایگاه داده خود تغییر دهید. پس از تنظیم متغیرهای محیطی، کانتینر n8n را restart کنید تا تغییرات اعمال شوند.

عیب‌یابی

در صورت بروز مشکل در فرآیند نصب و راه‌اندازی n8n، می‌توانید از راهکارهای زیر برای عیب‌یابی استفاده کنید:

  • بررسی logهای کانتینر: با استفاده از دستور `docker-compose logs -f` logهای کانتینر n8n را مشاهده کنید تا پیام‌های خطا و هشدارها را بررسی کنید.
  • بررسی متغیرهای محیطی: اطمینان حاصل کنید که تمام متغیرهای محیطی مورد نیاز به درستی در فایل `.env` تنظیم شده‌اند.
  • بررسی پیکربندی Nginx/Apache: اگر از reverse proxy استفاده می‌کنید، اطمینان حاصل کنید که فایل configuration Nginx یا Apache به درستی پیکربندی شده است.
  • جستجو در مستندات n8n: مستندات رسمی n8n حاوی اطلاعات جامعی در مورد نصب، پیکربندی و عیب‌یابی است.
  • پرسش در انجمن n8n: اگر نتوانستید مشکل خود را حل کنید، می‌توانید در انجمن رسمی n8n سوال خود را مطرح کنید.

نتیجه‌گیری

با دنبال کردن این راهنما، می‌توانید n8n را با موفقیت روی سرور شخصی خود نصب و راه‌اندازی کنید. n8n یک ابزار قدرتمند برای اتوماسیون گردش کار است که به شما امکان می‌دهد فرایندهای مختلف را در برنامه‌ها و سرویس‌های مختلف خودکار کنید. با نصب n8n روی سرور شخصی خود، کنترل کاملی بر داده‌های خود خواهید داشت و می‌توانید گردش‌کارهای پیچیده را با امنیت و حریم خصوصی بیشتری اجرا کنید. این راهنما با هدف ارائه یک مرجع کامل و جامع برای جامعه تخصصی تهیه شده است و امیدواریم برای شما مفید واقع شود.


“`

“تسلط به برنامه‌نویسی پایتون با هوش مصنوعی: آموزش کدنویسی هوشمند با ChatGPT”

قیمت اصلی 2.290.000 ریال بود.قیمت فعلی 1.590.000 ریال است.

"تسلط به برنامه‌نویسی پایتون با هوش مصنوعی: آموزش کدنویسی هوشمند با ChatGPT"

"با شرکت در این دوره جامع و کاربردی، به راحتی مهارت‌های برنامه‌نویسی پایتون را از سطح مبتدی تا پیشرفته با کمک هوش مصنوعی ChatGPT بیاموزید. این دوره، با بیش از 6 ساعت محتوای آموزشی، شما را قادر می‌سازد تا به سرعت الگوریتم‌های پیچیده را درک کرده و اپلیکیشن‌های هوشمند ایجاد کنید. مناسب برای تمامی سطوح با زیرنویس فارسی حرفه‌ای و امکان دانلود و تماشای آنلاین."

ویژگی‌های کلیدی:

بدون نیاز به تجربه قبلی برنامه‌نویسی

زیرنویس فارسی با ترجمه حرفه‌ای

۳۰ ٪ تخفیف ویژه برای دانشجویان و دانش آموزان