نصب n8n: راهنمای جامع و عملیاتی ۱۴۰۴
محدودیت تعداد تسکها، هزینههای دلاری غیرقابل پیشبینی و از همه مهمتر، عدم کنترل کامل روی زیرساخت. برای یک توسعهدهنده یا مدیر فنی، ابزارهای SaaS مانند Zapier بیشتر شبیه یک قفس طلایی هستند.
پرداخت پول برای محدودیت، یک شوخی تلخ مهندسی است. اینجاست که نصب n8n روی سرور شخصی (Self-hosted) به عنوان یک راهکار استراتژیک و هوشمندانه وارد معادله میشود.
اگر پیش از این با پلتفرم اتوماسیون n8n آشنا شده باشید، میدانید که میزبانی آن روی سرور خودتان به معنای آزادی مطلق است. دیگر هیچ محدودیتی برای تعداد ورکفلوها یا پیچیدگی منطقها وجود ندارد؛ همه چیز فقط به منابع سرور شما بستگی دارد.
در این راهنمای مهندسیشده، فرآیند نصب n8n را گامبهگام بررسی میکنیم تا شما کنترلی ۱۰۰ درصدی بر دادهها و امنیت فرآیندهای حیاتی کسبوکارتان داشته باشید.
نقشه راه نصب n8n در سال ۱۴۰۴: Docker یا NPM؟

قبل از باز کردن ترمینال، باید یک تصمیم معماری کلیدی بگیریم: ایزولهسازی با داکر یا نصب مستقیم با پکیج منیجر نود؟
هر دو روش معتبر هستند، اما انتخاب اشتباه در نصب 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 و دیتابیس 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:
volumes:
healthcheck:
test: [“CMD-SHELL”, “pg_isready -U n8n -d n8n”]
interval: 10s
timeout: 5s
retries: 5
n8n:
image: n8nio/n8n
restart: always
ports:
environment:
volumes:
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 اولین قدم است. چالش اصلی، طراحی ورکفلوهایی است که هزینهها را کاهش داده و درآمد را افزایش دهند. اگر برای طراحی استراتژی اتوماسیون کسبوکارتان به یک همفکر متخصص نیاز دارید، ما آمادهایم.







