پلتفرم n8n Enterprise یکی از انعطافپذیرترین و مدرنترین سامانههای اتوماسیون گردش کار و یکپارچهسازی وبسرویسها به شمار میرود. برخلاف سامانههای سنتی که نیازمند برنامهنویسی گسترده برای اتصال APIها هستند، n8n با محیط بصری غنی و صدها نود آماده به تیمهای فنی اجازه میدهد در کمترین زمان ممکن، سناریوهای اتصال CRM، سامانههای مالی، درگاههای پرداخت، پیامرسانها و هوش مصنوعی محلی را متصل سازند.
با این وجود، در سناریوهای پرترافیک سازمانی—مانند دریافت هزاران وبهوک همزمان در کمپینهای بازاریابی یا پردازش لاگهای مانیتورینگ شبکه—اجرای n8n در قالب یک کانتینر یا پردازش واحد (Single-Instance Mode) به سرعت موجب اشغال ۱۰۰٪ حافظه پردازنده، سرریز حافظه موقت Node.js و از دست رفتن درخواستهای حیاتی وبهوک میگردد. راهکار استاندارد و پیشنهادی، پیادهسازی معماری Queue Mode با بهرهگیری از سرور صف حافظهای Redis و استقرار نودهای توزیعشده Worker است. در این مقاله جامع، تمامی گامهای پیکربندی و تثبیت لایسنس پایدار آفلاین بررسی میشود.
۱. توپولوژی معماری Queue Mode در n8n Enterprise #
در معماری مقیاسپذیر توزیعشده، مسئولیتها به چهار بخش مستقل تفکیک میشوند:
۱. Main Execution Instance (سرور مدیریت و رابط کاربری): میزبانی محیط بصری توسعه و مدیریت کاربران. این سرور هیچ وظیفه اجرای مستقیمی ندارد.
۲. Webhook Instances (دریافتکنندههای اختصاصی وبهوک): کانتینرهای سبک که صرفاً درخواستهای ورودی پورت وبهوک را با کمترین تاخیر (زیر ۱۰ میلیثانیه) دریافت کرده، کد HTTP 200 را بازمیگردانند و Payload را داخل صف Redis درج میکنند.
۳. Worker Instances (نودهای پردازشی کارگری): کانتینرهایی که در پسزمینه جابها را از صفهای Redis برداشت کرده، توابع جاوااسکریپت و کدهای پایتون را اجرا نموده و با دیتابیس در ارتباط هستند.
۴. PostgreSQL & Redis Backing Services: بانک اطلاعاتی متمرکز و صف دادههای درونحافظهای.
┌─────────────────────────────────────────┐
│ Traefik / Nginx Load Balancer │
│ https://n8n.corp.local │
└───────────────────┬─────────────────────┘
│
┌─────────────────────────┴─────────────────────────┐
│ Path: /webhook/* │ Path: / (UI/Admin)
▼ ▼
┌───────────────────────┐ ┌───────────────────────┐
│ Webhook Instance 1&2 │ │ Main Node (Editor/UI) │
│ Lightweight Receiver │ │ Workflow Management │
│ 192.168.90.11 │ │ 192.168.90.10 │
└───────────┬───────────┘ └───────────┬───────────┘
│ │
├─────────────────────────┬─────────────────────────┤
│ Push Job Payloads │ Subscribe Executions │
▼ ▼ │
┌─────────────────────────────────────────┐ │
│ Redis Sentinel Cluster │ │
│ Port: 6379 │ │
└───────────────────┬─────────────────────┘ │
│ Pop Jobs for Execution │
▼ │
┌─────────────────────────────────────────┐ │
│ Dynamic Worker Pool (N Nodes) │ │
│ Worker 1, Worker 2, Worker 3 ... │ │
└───────────────────┬─────────────────────┘ │
│ Read/Write Workflows & Execution History │
▼ ▼
┌─────────────────────────────────────────────────────────────────────────┐
│ PostgreSQL 16 High-Availability │
│ with PgBouncer (Port: 6432) │
└─────────────────────────────────────────────────────────────────────────┘
۲. فایل پیکربندی کامل Docker Compose برای استقرار Queue Mode #
نمونه فایل پیکربندی docker-compose.yml استاندارد برای راهاندازی این محیط توزیعشده:
version: '3.8'
services:
redis:
image: redis:7.2-alpine
restart: always
command: redis-server --appendonly yes --requirepass "StrongRedisSecretPass2026!"
volumes:
- redis_data:/data
networks:
- n8n_cluster
postgres:
image: postgres:16-alpine
restart: always
environment:
POSTGRES_DB: n8n_enterprise
POSTGRES_USER: n8n_admin
POSTGRES_PASSWORD: "SuperSecurePostgresPass2026!"
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- n8n_cluster
n8n-main:
image: n8nio/n8n:latest
restart: always
environment:
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
- QUEUE_BULL_REDIS_PASSWORD=StrongRedisSecretPass2026!
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n_enterprise
- DB_POSTGRESDB_USER=n8n_admin
- DB_POSTGRESDB_PASSWORD=SuperSecurePostgresPass2026!
- N8N_ENCRYPTION_KEY=d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2
- WEBHOOK_URL=https://n8n.corp.local/
ports:
- "5678:5678"
depends_on:
- redis
- postgres
networks:
- n8n_cluster
n8n-webhook:
image: n8nio/n8n:latest
restart: always
command: webhook
environment:
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
- QUEUE_BULL_REDIS_PASSWORD=StrongRedisSecretPass2026!
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n_enterprise
- DB_POSTGRESDB_USER=n8n_admin
- DB_POSTGRESDB_PASSWORD=SuperSecurePostgresPass2026!
- N8N_ENCRYPTION_KEY=d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2
depends_on:
- redis
- postgres
networks:
- n8n_cluster
n8n-worker:
image: n8nio/n8n:latest
restart: always
command: worker --concurrency=10
deploy:
replicas: 4
environment:
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
- QUEUE_BULL_REDIS_PASSWORD=StrongRedisSecretPass2026!
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n_enterprise
- DB_POSTGRESDB_USER=n8n_admin
- DB_POSTGRESDB_PASSWORD=SuperSecurePostgresPass2026!
- N8N_ENCRYPTION_KEY=d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2
depends_on:
- redis
- postgres
networks:
- n8n_cluster
networks:
n8n_cluster:
driver: bridge
volumes:
redis_data:
postgres_data:
۳. تیونینگ حافظه و استراتژی هرس لاگهای اجرا (Pruning Execution History) #
یکی از اشتباهات رایج در استقرارهای سازمانی n8n، ذخیره بیپایان دادههای لاگ اجرای ورکفلوها در دیتابیس است که باعث تورم حجم جداول execution_entity به صدها گیگابایت در ماه و کندی تمام کوئریها میشود.
پارامترهای اجباری هرس خودکار در متغیرهای محیطی:
# نگهداری لاگها حداکثر به مدت ۷ روز و حداکثر ۵۰۰۰ رکورد اخیر
EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=168
EXECUTIONS_DATA_PRUNE_MAX_COUNT=50000
# ذخیره نکردن دیتای خروجی نودهای میانی برای جابهای موفق جهت کاهش ۹۵٪ مصرف رم و دیسک
EXECUTIONS_DATA_SAVE_ON_SUCCESS=none
EXECUTIONS_DATA_SAVE_ON_ERROR=all
۴. امنیت اعتبارسنجیها و توسعه نودهای محلی اختصاصی #
در محیطهای ایزوله دولتی و بانکی:
-
N8N_ENCRYPTION_KEY: کلید ۳۲ بایتی متقارن است که رمزهای عبور، کلیدهای API و گواهیهای دیتابیس ذخیرهشده در n8n با آن به صورت AES-256 رمزنگاری میشوند. این مقدار باید در مکانی امن خارج از کانتینر ذخیره شود تا با جابجایی سرور امکان بازگشایی دیتابیس وجود داشته باشد.
-
ایجاد نودهای اختصاصی سازمانی (Custom Nodes): به جای اتصال مستقیم به اینترنت، نودهای سازمانی (مانند اتصال به وبسرویس شاهکار، ثبت احوال، و درگاههای بانکی داخلی) در قالب پکیجهای خصوصی محلی در شاخه
/home/node/.n8n/customقرار داده میشوند.
۵. لایسنسینگ دائمی n8n Enterprise توسط Licentra #
نسخه عمومی و رایگان n8n فاقد ویژگیهای حیاتی سازمانی مانند تفکیک پروژهها (Environments & Projects)، مدیریت دسترسی بر پایه نقش (Advanced RBAC)، احراز هویت با SAML / LDAP و لاگهای حسابرسی (Audit Logs) است.
مزایای بسته فعالسازی پایدار Licentra:
-
فعالسازی کلیه قابلیتهای پلن Enterprise: شامل نامحدود Workflow، نامحدود Worker Node، و تفکیک محیطهای Dev/Staging/Prod.
-
بدون تماس با سرورهای اکتیویشن ابری (100% Air-Gapped): حذف کامل کالبکهای تلهمتری سازنده.
-
پایداری دائمی در استقرار کانتینری و کوبرنتیز: فعالسازی پایدار حتی پس از Restart یا Scale کردن نودهای کلاستر.
با این معماری توزیعشده، پلتفرم اتوماسیون سازمان توانایی پردازش دهها هزار تراکنش در ثانیه را با پایداری کامل و بدون تاخیر دارا خواهد بود.

