پلتفرم n8n یکی از قدرتمندترین ابزارهای خودکارسازی وظایف و گردشکارها (Workflows) است. در این آموزش جامع، نحوه نصب n8n روی VPS را با داکر کامپوز (Docker Compose)، پایگاه داده مستقل PostgreSQL و وبسرور معکوس Nginx به همراه گواهی SSL معتبر Let’s Encrypt بررسی میکنیم.
فهرست مطالب آموزش
چرا نصب n8n با Docker Compose برترین روش است؟
اجرای n8n به صورت مستقیم با npm ممکن است با وابستگیهای نسخه Node.js دچار تداخل شود. استقرار با Docker تضمین میکند که دادهها، متغیرها و دیتابیس در محیطی کاملاً مستقل و قابل انتقال نگهداری شوند. برای آشنایی با زیرساخت میزبانی، مقاله سرور مجازی چیست را مطالعه کنید.
فایل پیکربندی docker-compose.yml و دیتابیس PostgreSQL
یک دایرکتوری ایجاد کرده و فایل docker-compose.yml زیر را در آن قرار دهید:
version: '3.8'
services:
postgres:
image: postgres:16-alpine
restart: always
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=StrongDBPasswordHere
- POSTGRES_DB=n8n
volumes:
- ./db_data:/var/lib/postgresql/data
n8n:
image: docker.n8n.io/n8nio/n8n:latest
restart: always
ports:
- "127.0.0.1:5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=StrongDBPasswordHere
- N8N_HOST=n8n.yourdomain.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.yourdomain.com/
- GENERIC_TIMEZONE=Asia/Tehran
volumes:
- ./n8n_data:/home/node/.n8n
depends_on:
- postgres
تنظیم متغیرهای محیطی و وبهوکها
پارامتر WEBHOOK_URL بسیار حیاتی است. در صورتی که این پارامتر به درستی با دامنه HTTPS شما تنظیم نشود، تریگرهای خارجی و پیامهای دریافتی از پیامرسانها به n8n تحویل داده نخواهند شد.
پیکربندی وبسرور معکوس Nginx و فعالسازی HTTPS
در وبسرور Nginx، یک کانفیگ سرور با قابلیت ارتقای وبسوکت اضافه نمایید:
server {
listen 80;
server_name n8n.yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name n8n.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/n8n.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/n8n.yourdomain.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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;
}
}
مدیریت بکاپ، آپدیت و پایش مداوم سرویس
برای بهروزرسانی آسان n8n به آخرین نسخه، کافی است دستورات زیر را در پوشه پروژه اجرا کنید:
docker compose pull
docker compose up -d
همچنین از پوشههای db_data و n8n_data به صورت روزانه بکاپ بگیرید. تفاوت بکاپ و اسنپشات را در مقاله تفاوت Snapshot و Backup بخوانید.
میزبانی پایدار اتوماسیون با سرورهای پرسرعت تراست هاست
برای اجرای بدون قطعی ورکفلوها و اتصال به ابزارهای هوش مصنوعی، از پلنهای سرور مجازی لینوکس تراست هاست با منابع تضمینشده، دیسکهای NVMe و آپتایم ۹۹.۹٪ استفاده نمایید.
سوالات متداول
برای اجرای n8n چه میزان RAM نیاز داریم؟
برای پروژههای سبک و متوسط حداقل ۲ الی ۴ گیگابایت رم کافی است، اما در صورت اجرای نودهای هوش مصنوعی و اتوماسیونهای سنگین، سرورهایی با ۸ گیگابایت رم پیشنهاد میشوند.
آیا نسخه self-hosted محدودیتی در اجرای گردشکارها دارد؟
خیر، نسخه سلفهاستد برخلاف نسخه ابری، هیچ محدودیتی در تعداد دفعات اجرای ورکفلوها ندارد و کاملاً رایگان است.