آموزش نصب n8n بر روی سرور شخصی

آموزش نصب n8n بر روی سرور شخصی (Self-Hosted)

۲۲ شهریور ۱۴۰۴

249

بازدید

0

دیدگاه

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

n8n یک ابزار قدرتمند و متن‌باز برای اتوماسیون گردش کار (Workflow Automation) است که به شما اجازه می‌دهد سرویس‌های مختلف را بدون نیاز به کدنویسی پیچیده به یکدیگر متصل کنید. البته نسخه ابری (Cloud) و رسمی آن به دلیل نوسانات دلار برای ما ایرانی‌های به صرفه نیست و به طور کلی خرید سرویس‌های بین‌المللی برای ما ایرانی‌ها موانع مختلفی دارد

نصب n8n بر روی سرور شخصی (Self-Hosted) کنترل کامل، امنیت داده‌ها و انعطاف‌پذیری بی‌نظیری را در اختیار شما قرار می‌دهد. این راهنمای گام‌به‌گام، شما را در تمام مراحل نصب n8n بر روی سرور شخصی با استفاده از روش پیشنهادی Docker راهنمایی می‌کند.

n8n چیست و چرا به نصب Self-Hosted نیاز داریم؟

n8n چیست

n8n (که “n-eight-n” تلفظ می‌شود) یک پلتفرم اتوماسیون است که به عنوان جایگزینی برای سرویس‌هایی مانند Zapier یا Make شناخته می‌شود. این ابزار به شما امکان می‌دهد تا با استفاده از یک رابط کاربری ویژوال (مبتنی بر نود)، APIها و سرویس‌های مختلف را به هم متصل کرده و گردش کارهای پیچیده را خودکار کنید.

تفاوت نسخه‌ی Cloud و Self-Hosted

  • نسخه Cloud: توسط تیم n8n مدیریت می‌شود، نیازی به نگهداری سرور ندارد و برای شروع سریع مناسب است. در حال حاضر این سرویس در پلن‌های ماهانه ۲۰ و ۵۰ دلار عرضه می‌شود.
  • نسخه Self-Hosted: شما n8n را روی سرور شخصی خودتان نصب و مدیریت می‌کنید.

چرا نسخه Self-Hosted را انتخاب کنیم؟

  1. کنترل کامل بر داده‌ها: تمام داده‌ها و اطلاعات حساس شما (مانند توکن‌های API) روی سرور خودتان باقی می‌ماند که برای حفظ حریم خصوصی و امنیت ایده‌آل است.
  2. کاهش هزینه‌ها: در حجم کاری بالا، هزینه نگهداری یک سرور شخصی می‌تواند بسیار کمتر از پلن‌های تجاری نسخه Cloud باشد.
  3. بدون محدودیت: شما محدودیت‌های مربوط به تعداد Workflowهای فعال یا مراحل اجرا که در پلن‌های ابری وجود دارد را نخواهید داشت.
  4. مزیت برای کاربران ایرانی: با توجه به تحریم‌ها و عدم دسترسی پایدار به برخی سرویس‌های پرداخت بین‌المللی، نسخه Self-Hosted یک راه‌حل مطمئن و بدون دغدغه است.

مثال‌های عملی استفاده از n8n

کاربردهای عملی n8n

۱. دیجیتال مارکتینگ – اتوماسیون کمپین ایمیلی

یکی از کاربردهای عملی n8n در حوزه دیجیتال مارکتینگ، اجرای خودکار کمپین‌های ایمیلی است. به عنوان نمونه:

  • با تکمیل فرم ثبت‌نام توسط کاربر در لندینگ‌پیج، داده‌ها مستقیماً در CRM (مانند HubSpot) ذخیره می‌شوند.
  • n8n به‌طور خودکار یک ایمیل خوشامدگویی از طریق سرویس‌هایی مانند Gmail یا Mailchimp ارسال می‌کند.
  • پس از گذشت سه روز، ایمیل دوم با محتوای معرفی محصول برای کاربر ارسال می‌شود.
  • در صورتی که کاربر بر روی لینک موجود در ایمیل کلیک کند، یک اعلان فوری برای تیم فروش در Slack یا تلگرام ارسال خواهد شد.

نتیجه: اجرای کمپین ایمیلی بدون نیاز به مداخله دستی و با حداکثر بهره‌وری انجام می‌شود.

۲. DevOps – مانیتورینگ و هشداردهی خودکار سرورها

n8n می‌تواند به‌عنوان یک ابزار پشتیبان در فرآیند مانیتورینگ سرورها مورد استفاده قرار گیرد. برای مثال:

  • هر پنج دقیقه یک‌بار وضعیت سرور (CPU، RAM و Disk) بررسی می‌شود.
  • در صورت عبور مصرف CPU از حد مشخص (مثلاً ۹۰٪)، پیام هشدار به کانال Slack یا تلگرام تیم DevOps ارسال می‌گردد.
  • به‌طور هم‌زمان یک Issue در GitHub یا Jira به صورت خودکار ایجاد می‌شود.

نتیجه: تیم فنی در کوتاه‌ترین زمان ممکن از مشکل آگاه شده و فرآیند رفع خطا بدون تأخیر آغاز می‌شود.

۳. مدیریت سفارش‌ها در فروشگاه‌های آنلاین

یکی دیگر از سناریوهای پرکاربرد n8n در کسب‌وکارهای آنلاین، اتوماسیون فرآیندهای مرتبط با ثبت سفارش است:

  • به محض ثبت سفارش در فروشگاه آنلاین (مانند WooCommerce)، اطلاعات سفارش توسط n8n دریافت می‌شود.
  • فاکتور PDF به‌صورت خودکار ایجاد و برای مشتری ارسال می‌گردد.
  • داده‌های سفارش در Google Sheets ثبت می‌شود تا امکان تهیه گزارش‌های مالی دوره‌ای فراهم شود.
  • در نهایت، یک اعلان برای تیم پشتیبانی در Telegram ارسال خواهد شد تا پردازش سفارش آغاز گردد.

نتیجه: چرخه ثبت تا پیگیری سفارش به‌طور کامل خودکار شده و دقت و سرعت فرآیند افزایش می‌یابد.

بیشتر بخوانید: ضرورت بکاپ سرور در مواقع ضروری

پیش‌نیازهای نصب n8n بر روی سرور شخصی

پیش‌نیازهای نصب n8n بر روی سرور شخصی

قبل از شروع، مطمئن شوید که تمام موارد زیر را آماده کرده‌اید.

مشخصات سخت‌افزاری و نرم‌افزاری موردنیاز

  • حداقل منابع (برای تست و توسعه):
    • CPU: ۱ vCPU
    • RAM: ۱ GB
    • Storage: ۱۰ GB
  • منابع پیشنهادی (برای محیط Production):
    • CPU: ۲ vCPU
    • RAM: ۴ GB
    • Storage: ۲۰ GB

سیستم‌عامل و دسترسی‌ها

  • سیستم‌عامل: یک توزیع لینوکس مدرن مانند Ubuntu 20.04/22.04 یا Debian 11.
  • دسترسی: دسترسی به ترمینال سرور با کاربر root یا یک کاربر با دسترسی sudo.

ابزارها و وابستگی‌ها

  • Docker و Docker Compose: این ابزارها برای مدیریت کانتینر n8n استفاده می‌شوند و نصب را بسیار ساده‌تر می‌کنند.
  • دامنه (اختیاری اما به‌شدت توصیه شده): برای راه‌اندازی HTTPS و دسترسی امن به n8n، به یک دامنه نیاز خواهید داشت.

روش‌های نصب n8n روی سرور شخصی

دو روش اصلی برای نصب n8n وجود دارد. ما نصب با Docker را به دلیل سادگی، پایداری و مدیریت آسان‌تر، قویاً توصیه می‌کنیم.

نصب با Docker (روش پیشنهادی)

این روش بهترین و پایدارترین راه برای اجرای n8n است. ما از docker-compose برای تعریف و اجرای کانتینر n8n استفاده می‌کنیم.

قدم ۱: نصب Docker و Docker Compose

ابتدا سرور خود را آپدیت کنید:

sudo apt update && sudo apt upgrade -y

sudo apt update && sudo apt upgrade -y

سپس Docker را نصب کنید:

sudo apt install docker.io -y

و در نهایت Docker Compose را نصب کنید (نسخه را با آخرین نسخه موجود جایگزین کنید):

sudo curl -L “https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

قدم ۲: ساخت فایل docker-compose.yml

یک پوشه برای n8n بسازید و وارد آن شوید:

mkdir ~/n8n && cd ~/n8n

حالا یک فایل به نام docker-compose.yml با ویرایشگر nano یا vim بسازید:

nano docker-compose.yml

محتویات زیر را در این فایل کپی کنید:

YAML

version: ‘3.7’

services:

  n8n:

    image: n8nio/n8n

    restart: always

    ports:

      – “۱۲۷.۰.۰.۱:۵۶۷۸:۵۶۷۸”

    environment:

      – N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}

      – N8N_PORT=5678

      – N8N_PROTOCOL=https

      – NODE_ENV=production

      – WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/

      – GENERIC_TIMEZONE=${GENERIC_TIMEZONE}

    volumes:

      – ./n8n-data:/home/node/.n8n

توضیح فایل:

  • image: n8nio/n8n: از آخرین نسخه رسمی n8n استفاده می‌کند.
  • restart: always: در صورت بروز مشکل، کانتینر به‌طور خودکار ری‌استارت می‌شود.
  • ports: پورت ۵۶۷۸ کانتینر را به همان پورت روی هاست (اما فقط روی لوکال هاست ۱۲۷.۰.۰.۱) متصل می‌کند. ما بعداً با Nginx به آن دسترسی عمومی خواهیم داد.
  • environment: متغیرهای محیطی برای پیکربندی n8n که در بخش بعد تنظیم می‌کنیم.
  • volumes: پوشه n8n-data را روی هاست به پوشه داده‌های داخل کانتینر متصل می‌کند تا داده‌های شما (Workflowها و Credentials) با حذف کانتینر از بین نرود.

قدم ۳: ساخت فایل متغیرهای محیطی (.env)

در همان پوشه، یک فایل به نام .env بسازید:

nano .env

و مقادیر زیر را مطابق با اطلاعات خودتان در آن قرار دهید:

# .env

DOMAIN_NAME=your-domain.com

SUBDOMAIN=n8n

GENERIC_TIMEZONE=Asia/Tehran

  • DOMAIN_NAME: دامنه اصلی خود را وارد کنید.
  • SUBDOMAIN: زیردامنه‌ای که می‌خواهید n8n روی آن اجرا شود.
  • GENERIC_TIMEZONE: منطقه زمانی سرور برای اجرای صحیح Workflowها در زمان مشخص.

قدم ۴: اجرای n8n

حالا با دستور زیر کانتینر n8n را در پس‌زمینه اجرا کنید:

docker-compose up -d

برای اطمینان از اینکه کانتینر به‌درستی اجرا شده است، از دستور زیر استفاده کنید:

docker-compose logs -f

نصب با Node.js (برای توسعه)

این روش بیشتر برای توسعه محلی مناسب است و برای محیط Production توصیه نمی‌شود.

# نصب Node.js (نسخه ۱۶ یا بالاتر)

sudo apt install nodejs npm -y

# نصب n8n به صورت گلوبال

npm install n8n -g

# اجرای n8n

n8n

برای اجرای دائمی آن در این روش، باید از ابزاری مانند PM2 استفاده کنید.

ایمن‌سازی n8n روی سرور

ایمن‌سازی n8n روی سرور

اکنون n8n در حال اجراست، اما فقط از طریق localhost قابل دسترسی است. برای دسترسی عمومی و امن، باید از یک Reverse Proxy مانند Nginx و گواهی SSL استفاده کنیم.

استفاده از HTTPS (با Nginx و Let’s Encrypt)

۱. نصب Nginx و Certbot:

sudo apt install nginx python3-certbot-nginx -y

۲. پیکربندی Nginx:

یک فایل کانفیگ جدید برای n8n در Nginx بسازید:

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

محتویات زیر را در آن کپی کنید و n8n.your-domain.com را با آدرس خود جایگزین کنید:

Nginx

server {

    server_name n8n.your-domain.com;

    location / {

        proxy_pass http://localhost:5678;

        proxy_set_header Connection ”;

        proxy_http_version 1.1;

        chunked_transfer_encoding off;

        proxy_buffering off;

        proxy_cache off;

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header X-Forwarded-Proto $scheme;

    }

    listen 80;

}

این فایل را فعال کنید:

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

و کانفیگ Nginx را تست کنید:

sudo nginx -t

۳. صدور گواهی SSL:

با Certbot به راحتی یک گواهی SSL رایگان دریافت کنید:

sudo certbot –nginx -d n8n.your-domain.com

Certbot به‌طور خودکار فایل کانفیگ Nginx را برای استفاده از HTTPS و ریدایرکت ترافیک HTTP به‌روزرسانی می‌کند. در نهایت Nginx را ری‌استارت کنید:

sudo systemctl restart nginx

حالا می‌توانید با مراجعه به https://n8n.your-domain.com به n8n دسترسی پیدا کنید.

تنظیم Authentication و Access Control

برای جلوگیری از دسترسی عمومی، باید برای n8n نام کاربری و رمز عبور تعیین کنید. فایل .env خود را باز کنید و خطوط زیر را به آن اضافه کنید:

# .env

N8N_BASIC_AUTH_ACTIVE=true

N8N_BASIC_AUTH_USER=my-user

N8N_BASIC_AUTH_PASSWORD=my-super-secret-password

  • my-user: نام کاربری دلخواه خود را وارد کنید.
  • my-super-secret-password: یک رمز عبور قوی انتخاب کنید.

سپس کانتینر را ری‌استارت کنید تا تغییرات اعمال شود:

docker-compose down && docker-compose up -d

مدیریت و نگهداری n8n پس از نصب

  • بررسی لاگ‌ها: برای عیب‌یابی، لاگ‌های کانتینر را با دستور docker-compose logs بررسی کنید.
  • بکاپ‌گیری: از پوشه n8n-data که تمام Workflowها و تنظیمات در آن ذخیره شده، به‌صورت منظم بکاپ تهیه کنید.

آپدیت n8n: برای به‌روزرسانی به آخرین نسخه، ابتدا آخرین ایمیج را دریافت کرده و سپس کانتینر را دوباره بسازید:

docker-compose pull

docker-compose up -d –remove-orphans

سوالات متداول درباره نصب n8n

منابع مصرفی n8n چقدر است؟

مصرف منابع به تعداد و پیچیدگی Workflowهای شما بستگی دارد. برای شروع، یک سرور با ۲ گیگابایت رم کافی است، اما برای بارهای کاری سنگین، ۴ گیگابایت یا بیشتر توصیه می‌شود.

n8n با چه سرویس‌هایی یکپارچه می‌شود؟

n8n از صدها سرویس محبوب مانند Slack، Google Sheets، Gmail، دیتابیس‌های SQL، تلگرام و… پشتیبانی می‌کند. لیست کامل را می‌توانید در وب‌سایت رسمی آن مشاهده کنید.

آیا می‌توان n8n را در محیط‌های Production استفاده کرد؟

بله. با استفاده از Docker، راه‌اندازی Reverse Proxy و تنظیم Authentication، n8n یک ابزار کاملاً پایدار و امن برای محیط‌های Production است.

جمع‌بندی

شما با موفقیت n8n را بر روی سرور شخصی خود نصب، ایمن‌سازی و راه‌اندازی کردید. قدرت اتوماسیون اکنون به طور کامل در دستان شماست. با کنترل کاملی که بر روی داده‌ها و زیرساخت خود دارید، می‌توانید گردش کارهای قدرتمند و خلاقانه‌ای برای خودکارسازی وظایف تکراری طراحی کنید.

حالا نوبت شماست که اولین Workflow خود را بسازید و قدرت واقعی n8n را کشف کنید!

 

اشتراک گذاری مطالب

برای ارسال پیام کافیست فرم زیر را پر کنید

نظرتان در مورد این مقاله را بگویید

نام و نام خانوادگی
ایمیل
متن پیام ارسالی