نصب n8n روی سرور شخصی - مانیتور با لاگ‌های داکر در یک محیط کاری مدرن.

نصب n8n: راهنمای جامع و عملیاتی ۱۴۰۴

نسخه صوتی این مقاله (هوش مصنوعی کارورا)

محدودیت تعداد تسک‌ها، هزینه‌های دلاری غیرقابل پیش‌بینی و از همه مهم‌تر، عدم کنترل کامل روی زیرساخت. برای یک توسعه‌دهنده یا مدیر فنی، ابزارهای SaaS مانند Zapier بیشتر شبیه یک قفس طلایی هستند.

پرداخت پول برای محدودیت، یک شوخی تلخ مهندسی است. اینجاست که نصب n8n روی سرور شخصی (Self-hosted) به عنوان یک راهکار استراتژیک و هوشمندانه وارد معادله می‌شود.

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

در این راهنمای مهندسی‌شده، فرآیند نصب n8n را گام‌به‌گام بررسی می‌کنیم تا شما کنترلی ۱۰۰ درصدی بر داده‌ها و امنیت فرآیندهای حیاتی کسب‌وکارتان داشته باشید.

نقشه راه نصب n8n در سال ۱۴۰۴: Docker یا NPM؟

نصب n8n: راهنمای جامع و عملیاتی ۱۴۰۴

قبل از باز کردن ترمینال، باید یک تصمیم معماری کلیدی بگیریم: ایزوله‌سازی با داکر یا نصب مستقیم با پکیج منیجر نود؟

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

جدول زیر یک مقایسه شفاف و بدون تعارف بین این دو رویکرد است:

معیارنصب با Docker / Docker Composeنصب مستقیم با NPM / PM2
ایزوله‌سازی محیطعالی. n8n و دیتابیس آن در کانتینرهای مجزا اجرا می‌شوند.ضعیف. ریسک تداخل نسخه‌ها (Version Conflict) وجود دارد.
مدیریت وابستگی‌هاخودکار. تمام وابستگی‌ها درون Docker Image قرار دارند.دستی. شما مسئول نصب و مدیریت نسخه صحیح Node.js هستید.
سادگی آپدیتبسیار ساده. تنها با دو دستور به آخرین نسخه آپدیت می‌شوید.ساده اما با ریسک. ممکن است نیازمند تغییرات دستی در سرور باشد.
پایداریبسیار بالا. طراحی شده برای محیط‌های پروداکشن (Production).خوب. با ابزاری مانند PM2 پایداری قابل قبولی دارد.

توصیه قاطع کارورا: برای هر محیط پروداکشن (Production) که پایداری و امنیت در آن اولویت اول است، بدون لحظه‌ای تردید از Docker Compose استفاده کنید. روش NPM بیشتر برای محیط‌های تست، توسعه یا سرورهایی با محدودیت منابع شدید مناسب است. انتخاب اشتباه در این مرحله، یعنی سردرد در آینده.

کدهای این آموزش را یکجا دانلود کنید

فایل docker-compose.yml، کانفیگ Nginx و اسکریپت بکاپ‌گیری را در یک فایل ZIP دریافت کنید و فرآیند نصب n8n را در کمتر از ۵ دقیقه تمام کنید.

دانلود کیت نصب سریع 🚀 →

روش اول (توصیه شده): نصب n8n با Docker Compose

نصب n8n: راهنمای جامع و عملیاتی ۱۴۰۴

این روش، استاندارد طلایی برای اجرای n8n در یک محیط عملیاتی است. ما سرویس n8n و دیتابیس PostgreSQL را در دو کانتینر مجزا و ایزوله اجرا خواهیم کرد.

۱. پیش‌نیازها: نصب Docker و Docker Compose

این دستورات برای سرور با سیستم‌عامل Ubuntu 22.04 بهینه شده‌اند:

`bash

آپدیت لیست پکیج‌ها

sudo apt update

نصب پکیج‌های پیش‌نیاز

sudo apt install -y ca-certificates curl gnupg lsb-release

افزودن کلید GPG رسمی Docker

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg

تنظیم ریپازیتوری Docker

echo \
“deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

نصب Docker Engine

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
`

۲. ساختار فایل docker-compose.yml

یک پوشه اختصاصی برای n8n بسازید و فایل کانفیگ را در آن ایجاد کنید:

`bash
mkdir ~/n8n
cd ~/n8n
nano docker-compose.yml
`

محتوای زیر را درون فایل کپی کنید (رمزهای عبور را حتماً تغییر دهید):

`yaml
version: ‘3.7’

services:
postgres:
image: postgres:14
restart: always
environment:

  • POSTGRES_USER=n8n
  • POSTGRES_PASSWORD=YOUR_STRONG_POSTGRES_PASSWORD
  • POSTGRES_DB=n8n
  • volumes:

  • postgres_data:/var/lib/postgresql/data
  • healthcheck:
    test: [“CMD-SHELL”, “pg_isready -U n8n -d n8n”]
    interval: 10s
    timeout: 5s
    retries: 5

    n8n:
    image: n8nio/n8n
    restart: always
    ports:

  • “127.0.0.1:5678:5678”
  • environment:

  • DB_TYPE=postgresdb
  • DB_POSTGRESDB_HOST=postgres
  • DB_POSTGRESDB_PORT=5432
  • DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
  • DB_POSTGRESDB_USER=${POSTGRES_USER}
  • DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
  • GENERIC_TIMEZONE=Asia/Tehran
  • WEBHOOK_URL=https://n8n.yourdomain.com/
  • volumes:

  • n8n_data:/home/node/.n8n
  • depends_on:
    postgres:
    condition: service_healthy

    volumes:
    postgres_data:
    n8n_data:
    `

    ⚠️ نکته فنی: در نسخه‌های جدید n8n (ورژن ۱.۰ به بالا)، سیستم مدیریت کاربر (User Management) جایگزین Basic Auth شده است. پس از اجرای کانتینر، با مراجعه به آدرس در مرورگر، می‌توانید اکانت ادمین (Owner) را به صورت گرافیکی ایجاد کنید.

    ⚠️ نکته امنیتی حیاتی: تنظیم ports: - "127.0.0.1:5678:5678" یک حرکت هوشمندانه است. این کانفیگ تضمین می‌کند که پورت n8n مستقیماً از اینترنت قابل دسترس نباشد و فقط از طریق Reverse Proxy با آن ارتباط برقرار شود. این یک اصل بنیادین در نصب n8n امن است.

    ۳. اجرا و مدیریت

    با این دستور، جادوی داکر اتفاق می‌افتد:

    `bash
    docker compose up -d
    `

    روش دوم: آموزش نصب n8n با NPM و PM2

    این روش برای کسانی مناسب است که کنترل مستقیم روی پکیج‌های Node.js را ترجیح می‌دهند یا محدودیت منابع دارند.

    ۱. آماده‌سازی سرور: نصب Node.js

    استفاده از nvm (Node Version Manager) بهترین روش برای مدیریت نسخه‌های Node.js است تا از تداخل‌های احتمالی در آینده جلوگیری کنید:

    `bash

    دریافت اسکریپت نصب NVM (اصلاح شده)

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

    بارگذاری تنظیمات محیطی

    export NVM_DIR=”$([ -z “${XDG_CONFIG_HOME-}” ] && printf %s “${HOME}/.nvm” || printf %s “${XDG_CONFIG_HOME}/nvm”)”
    [ -s “$NVM_DIR/nvm.sh” ] && \. “$NVM_DIR/nvm.sh”

    نصب نسخه LTS نود جی‌اس

    nvm install –lts
    nvm use –lts
    `

    ۲. نصب و اجرای پایدار

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

    `bash

    نصب پکیج‌های سراسری

    npm install -g n8n pm2

    اجرا با PM2 برای پایداری

    pm2 start n8n

    ذخیره وضعیت برای اجرا پس از ریبوت

    pm2 save
    pm2 startup
    `

    مرحله حیاتی: امن‌سازی با Nginx و SSL

    چه از داکر استفاده کنید چه NPM، سرویس شما نباید مستقیما در معرض اینترنت باشد. باید آن را پشت یک Reverse Proxy امن قرار دهید. برای اطلاعات بیشتر درباره نحوه کارکرد این وب‌سرور می‌توانید مستندات Nginx را مطالعه کنید.

    ۱. کانفیگ Reverse Proxy

    یک فایل کانفیگ جدید در مسیر /etc/nginx/sites-available/n8n.yourdomain.com بسازید:

    `nginx
    server {
    listen 80;
    server_name n8n.yourdomain.com;

    location / {
    proxy_pass http://localhost:5678;
    proxy_set_header Connection ”;
    proxy_http_version 1.1;
    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;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection “upgrade”;
    # تنظیم مهم برای لاگ‌های لحظه‌ای در UI
    proxy_buffering off;
    }
    }
    `

    ۲. فعال‌سازی HTTPS

    با استفاده از Certbot، به سادگی یک گواهی SSL رایگان و معتبر از Let’s Encrypt دریافت کنید:

    `bash
    sudo ln -s /etc/nginx/sites-available/n8n.yourdomain.com /etc/nginx/sites-enabled/
    sudo systemctl restart nginx

    نصب ابزار و دریافت گواهی SSL

    sudo apt install -y certbot python3-certbot-nginx
    sudo certbot –nginx -d n8n.yourdomain.com
    `

    استراتژی نگهداری و بکاپ‌گیری

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

    `bash
    #!/bin/bash
    BACKUP_DIR=”/opt/n8n-backups”

    نام کانتینر postgres خود را با دستور docker ps پیدا کنید

    DB_CONTAINER_NAME=”n8n-postgres-1″
    TIMESTAMP=$(date +”%Y-%m-%d_%H-%M-%S”)
    mkdir -p ${BACKUP_DIR}

    بکاپ دیتابیس

    docker exec ${DB_CONTAINER_NAME} pg_dump -U n8n -d n8n | gzip > ${BACKUP_DIR}/db_backup_${TIMESTAMP}.sql.gz

    حذف بکاپ‌های قدیمی‌تر از ۷ روز

    find ${BACKUP_DIR} -type f -mtime +7 -name ‘*.gz’ -execdir rm — ‘{}’ \;
    `

    نتیجه‌گیری: قدرت در دستان شماست

    تبریک می‌گوییم! با تکمیل فرآیند نصب n8n، شما دیگر یک مصرف‌کننده ابزارهای SaaS نیستید؛ شما صاحب یک موتور اتوماسیون قدرتمند و بدون محدودیت هستید.

    این زیرساخت به شما آزادی عمل کامل می‌دهد تا پیچیده‌ترین فرآیندهای کسب‌وکارتان را مهندسی کنید، بدون اینکه نگران هزینه هر تسک یا محدودیت‌های لایسنس باشید. این یعنی کنترل کامل، هزینه کمتر و پتانسیل نامحدود برای نوآوری در سال ۱۴۰۴.

    نصب کردید، حالا چه؟ بیایید اتوماسیون را پولساز کنیم.

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

    رزرو جلسه استراتژی رایگان →

    نوشته های مرتبط