n8n از آن ابزارهایی است که سبک شروع به استفادهاش میکنید و بعد بیسروصدا نیمی از عملیاتتان را از دلش عبور میدهید. در همین نقطه است که «روی صندلی ابر کس دیگر اجرا میشود، بهازای هر اجرا کنتور میخورد، و کلیدهای API من روی سرورهایشان زندگی میکنند» کمتر عالی به نظر میرسد. خودمیزبانی هر سه را حل میکند — هزینهی ثابت، بدون سقف اجرا، و کلیدهایتان روی دستگاهی که مالکش هستید میمانند. با Docker این یک کار پانزدهدقیقهای است.
واقعاً چقدر سرور لازم دارد
اول اعداد صادقانه، تا نه زیادی بخرید نه کم:
- حدود ۲ گیگابایت RAM نقطهی طلایی است — n8n بهعلاوهی پایگاهدادهی Postgres بهعلاوهی workflowهای معمولی راحت اینجا مینشینند.
- ۱ گیگابایت کار میکند اگر workflowهایتان سبک باشند، اما در اجراهای بزرگتر متوجهش میشوید.
- ۴ گیگابایت اگر اجراهای موازی سنگین انجام میدهید یا payloadهای بزرگ عبور میدهید.
n8n در حالت استراحت گرسنهی CPU نیست؛ در حین اجراها اوج میگیرد. یک دستگاه ۲ هستهای برای اکثر راهاندازیها کافی است. (بیشتر دربارهی تطبیق مشخصات با بار کاری در راهنمای انتخاب اندازه.)
راهاندازی Docker
روی یک دستگاه تازهی Ubuntu/Debian، Docker را نصب کنید:
curl -fsSL https://get.docker.com | sudo sh
یک پوشه و یک docker-compose.yml بسازید — n8n با یک volume ماندگار و Postgres:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
environment:
- N8N_HOST=n8n.yourdomain.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.yourdomain.com/
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=db
- DB_POSTGRESDB_PASSWORD=change-me
volumes:
- ./n8n-data:/home/node/.n8n
depends_on: [db]
db:
image: postgres:16
restart: always
environment:
- POSTGRES_PASSWORD=change-me
- POSTGRES_DB=n8n
volumes:
- ./db-data:/var/lib/postgresql/data
sudo docker compose up -d
دو نکته که ارزش اشاره دارند: volumeها (n8n-data, db-data) همان چیزی هستند که workflowهایتان را در طول ریاستارتها و ارتقاءها زنده نگه میدارند — از آنها صرفنظر نکنید. و n8n به 127.0.0.1 گره خورده، نه 0.0.0.0 — مستقیم در معرض اینترنت نیست. این عمدی است؛ گام بعدی دسترسی را ایمن مدیریت میکند.
دسترسی: HTTPS یا یک تونل
- URL عمومی (برای نودهای OAuth و وبهوکها لازم است): یک زیردامنه را به سرور اشاره دهید و یک reverse proxy (Caddy کمزحمتترین است — HTTPS خودکار) جلوی
127.0.0.1:5678اجرا کنید. اینجاست که یک پلن با IP اختصاصی جا میگیرد، چون پورتها و DNS را کنترل میکنید. - فقط برای خودتان، بدون دامنه: از proxy صرفنظر کنید و از طریق یک تونل SSH به آن برسید —
ssh -L 5678:127.0.0.1:5678 user@server، بعدlocalhost:5678را باز کنید. روی یک VPS با NAT خوب کار میکند.
قفلش کنید و بالا نگهش دارید
n8n کلیدهای API و اعتبارنامههای شما را نگه میدارد، پس دستگاه باید محکم باشد: چکلیست امنیتی را (کلیدهای SSH، فایروال، بدون ورود با رمز عبور) قبل از اینکه اعتبارنامههای واقعی داخلش بگذارید انجام دهید. restart: always در فایل compose همینحالا یعنی Docker بعد از کرش یا ریبوت n8n را برمیگرداند — این آپتایم شما را حل کرده.
آیا ارزشش را دارد؟
با خودتان دربارهی حجم صادق باشید. اگر مدام اتوماسیون اجرا میکنید، خودمیزبانی روی هزینه (ثابت در برابر بهازای هر اجرا) برنده است و هر محدودیت workflow/اجرا را برمیدارد. اگر ماهی چند flow را تریگر میکنید، یک صندلی میزبانیشده دردسر کمتری دارد. اما استدلال کنترل صرفنظر از این پابرجاست: workflowهای شما، دادهی شما، کلیدهای شما — روی سرور شما، نه اجارهای. برای اکثر کسانی که جدی وارد n8n شدند، همین عامل تعیینکننده است.
یک دستگاه ۲ گیگابایتی، یک فایل compose، یک دامنه (یا یک تونل)، و شما هاب اتوماسیون خودتان را اجرا میکنید — قابلپرداخت با رمزارز بدون KYC، در چند دقیقه فعال.
راهاندازی آماده: VPS برای n8n را ببینید — پلن پیشنهادی و یک استقرار یکدقیقهای با رمزارز.
نظرات
هنوز نظری نیست. اولین نفر باشید.