نصب n8n روی سرور با Docker Compose
6 دقیقه مطالعه

نصب n8n روی سرور لینوکس با Docker Compose و HTTPS بر پایهٔ راهنمای رسمی (نسخه 2.43.7)؛ کلید رمزنگاری، پشتیبان، پایش و بهروزرسانی.
نصب n8n با یک فرمان ساده است؛ نصبی که بعد از سه ماه هم سالم و قابلبازیابی باشد، نه. این مقاله مراحل راهاندازی روی یک سرور لینوکسی با Docker Compose را بر پایهٔ راهنمای رسمی میگوید و بعد روی چیزهایی تمرکز میکند که معمولاً فراموش میشوند: پایگاه داده، کلید رمزنگاری، پشتیبان، پایش و حذف اجراها.
مرجع و نسخه: همهٔ جزئیات از مستندات رسمی n8n در ۱۹ اکتبر ۲۰۲۶ گرفته شده است؛ مستندات همان روز «نسخهٔ پایدار ۲٫۴۳٫۷ و بتا ۲٫۴۴٫۳» را اعلام میکرد. n8n تقریباً هر هفته یک نسخهٔ minor میدهد؛ پیش از اجرا، همان صفحهها را برای نسخهٔ خودتان بازبینی کنید. همهٔ مقدارها در متن (دامنه، ایمیل، رمز) ساختگی هستند؛ هرگز مقدار واقعی را در مخزن یا نوشتهها نگذارید. ما این راهاندازی را روی سرور واقعی اجرا نکردهایم؛ این مقاله خلاصهٔ رسمی است و اعتبارسنجی نهایی با خودتان است. دربارهٔ HTTPS مفهوم را در SSL و HTTPS چیست ببینید.
پیش از شروع
مستندات میگوید خودمیزبانی n8n برای کاربران باتجربه توصیه میشود: راهاندازی سرور و کانتینر، مدیریت منابع، امنسازی و پیکربندی. اشتباه میتواند به از دست رفتن داده، مشکل امنیتی و قطعی منجر شود. اگر تجربهٔ عملیات ندارید، گزینهٔ n8n Cloud را هم بسنجید. پیشنیازها (توصیهٔ نویسنده، سازگار با مستندات): یک سرور لینوکس، Docker و Docker Compose، یک زیردامنه که به IP سرور اشاره کند، و دسترسی به پورتهای ۸۰ و ۴۴۳ برای صدور گواهی.
مراحل بر پایهٔ راهنمای رسمی
- Docker و Compose: نصب طبق توزیع لینوکس و بررسی با
docker --versionوdocker compose version. - DNS: یک رکورد A برای زیردامنه (مثلاً n8n) به IP سرور.
- پوشهٔ پروژه و فایل .env: مقادیر نمونه (ساختگی):
DOMAIN_NAME=example.com SUBDOMAIN=n8n GENERIC_TIMEZONE=Asia/Tehran SSL_EMAIL=admin@example.com - پوشهٔ local-files:
mkdir local-filesبرای تبادل فایل بین n8n و میزبان. - compose.yaml: دو سرویس Traefik و n8n؛ مستندات متن کامل را میدهد. نکتههای کلیدی همان متن: n8n روی
127.0.0.1:5678منتشر میشود (نه روی همهٔ رابطها)، Traefik گواهی را از طریق ACME (مسیر ذخیرهٔ /letsencrypt) میگیرد،N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=trueتنظیم است،N8N_PROTOCOL=httpsو آدرس وبهوک باN8N_WEBHOOK_URLتعیین میشود (از نسخهٔ 2.30.0؛ در نسخههای قدیمیترWEBHOOK_URL) وN8N_RESTRICT_FILE_ACCESS_TO=/filesدسترسی فایل را محدود میکند. - راهاندازی:
sudo docker compose up -dو باز کردنhttps://n8n.example.com. مستندات میگوید فقط HTTPS در دسترس است؛ اگر باز نشد، فایروال و DNS را بررسی کنید.

یک ملاحظهٔ نویسنده: نمونهٔ Traefik در مستندات گزینهٔ --api.insecure=true دارد. این گزینه داشبورد Traefik را بدون احراز هویت فعال میکند. در نمونهٔ رسمی پورت ۸۰۸۰ منتشر نشده است، اما اگر آن را منتشر کنید یا نمونه را تغییر دهید، این گزینه را حذف کنید یا پشت احراز هویت ببرید. این توصیه از مستندات n8n نیست.
پایگاه داده و حجمها
پیشفرض n8n برای ذخیرهٔ اعتبارنامهها، اجراهای گذشته و گردشکارها SQLite است و PostgreSQL هم پشتیبانی میشود. مستندات تأکید میکند حتی با PostgreSQL، حجم دایمی برای /home/node/.n8n را نگه دارید، چون کلیدهای رمزنگاری، لاگها و فایلهای دیگر آنجاست. برای حجم بالا یا چند نمونه (مثلاً queue mode) PostgreSQL انتخاب منطقی است؛ مقدار آستانه را مستندات نمیدهد و ما هم عدد نمیدهیم.
کلید رمزنگاری: مهمترین چیزی که باید پشتیبان بگیرید
n8n اعتبارنامهها را رمزنگاریشده در پایگاه داده نگه میدارد. مستندات پشتیبانگیری میگوید بدون کلید رمزنگاری (فایل config در پوشهٔ .n8n یا متغیر N8N_ENCRYPTION_KEY) پایگاه داده یا خروجی رمزنگاریشدهٔ بازیابیشده خوانا نیست. پس کلید را جدا از سرور و در یک گاوصندوق مناسب (نه در مخزن کد) ذخیره کنید و بدانید کجاست.
پشتیبانگیری و بازیابی
مستندات پشتیبان کامل را اینطور تعریف میکند: پوشهٔ .n8n (در Docker همان حجم n8n_data)، پایگاه داده اگر بیرونی است (با ابزار خود پایگاه)، و ذخیرهگاه بیرونی داده باینری یا اجرا، و پوشههای گرههای سفارشی. با SQLite، پیش از کپی پوشه، n8n را متوقف کنید یا از snapshot سازگار استفاده کنید.
| روش | چه چیزی را شامل میشود | چه چیزی را شامل نمیشود |
|---|---|---|
| پشتیبان کامل (پوشهٔ .n8n + پایگاه) | همه از جمله کلید، کاربران، تنظیمات، اجراها | — |
CLI: n8n export:workflow --backup و export:credentials --backup | گردشکارها و اعتبارنامهها (جدا و خوانا) | کاربران، تاریخچهٔ اجرا، متغیرها، تنظیمات و کلید |
خروجی با --decrypted اعتبارنامهها را بهصورت متن ساده مینویسد؛ مستندات میگوید آن را با همان دقت خود اعتبارنامهها نگه دارید و پس از بازگردانی حذفش کنید. بازیابی کامل: توقف n8n، بازگرداندن پوشهٔ .n8n، بازگرداندن پایگاه، بازگرداندن متغیرهای محیطی (از جمله N8N_ENCRYPTION_KEY) و شروع. بازیابی را حتماً یک بار تمرین کنید؛ پشتیبانی که بازیابی نشده، فرض است نه پشتیبان.
پایش و سلامت
سه نقطه: /healthz (نمونه در دسترس است؛ وضعیت پایگاه را نمیگوید)، /healthz/readiness (پایگاه متصل و مهاجرتشده است) و /metrics که بهصورت پیشفرض غیرفعال است و با N8N_METRICS=true فعال میشود. پایش بیرونی را روی readiness بگذارید. اصول هشدار در پایش سیستم با متریک و هشدار آمده است.
حذف اجراها
پایگاه داده میتواند با اجراهای ذخیرهشده پر شود. مستندات میگوید حذف اجراها بهطور پیشفرض فعال است و با سن (پیشفرض ۳۳۶ ساعت، یعنی ۱۴ روز) یا تعداد (پیشفرض ۱۰٬۰۰۰) انجام میشود؛ و اجراهای با وضعیت waiting یا اجراهای دارای برچسب پاک نمیشوند. همچنین میتوان ذخیرهٔ اجراهای موفق را خاموش کرد. تصمیم دربارهٔ نگهداری داده اجرا شامل داده شخصی است؛ الزامات ایران را از منبع رسمی بپرسید که اینجا بررسی نشده است.
بهروزرسانی
مستندات توصیه میکند مکرر بهروزرسانی کنید (دستکم ماهانه)، یادداشتهای انتشار را برای تغییرهای شکننده بخوانید و ابتدا در یک نمونهٔ آزمایشی تست کنید. با Compose: docker compose pull، سپس docker compose down و docker compose up -d. پیش از هر بهروزرسانی پشتیبان کامل بگیرید. بازگشت به نسخهٔ قبلی را بدون پشتیبان فرض نکنید (توصیهٔ نویسنده).
اشتباهات رایج
- نگرفتن پشتیبان از کلید رمزنگاری.
- باز گذاشتن n8n روی HTTP یا روی همهٔ رابطها بدون پروکسی.
- تصور اینکه خروجی CLI یک پشتیبان کامل است.
- پشتیبانی که هرگز بازیابی نشده.
- تگ
latestبدون ثبت نسخه و بدون خواندن یادداشتهای انتشار. - پر شدن دیسک با اجراهای ذخیرهشده.
چکلیست راهاندازی
- نسخهٔ n8n و تاریخ مستندات ثبت شده است.
- DNS، HTTPS و پورتها آزمایش شدهاند؛ n8n روی 127.0.0.1 منتشر میشود.
- مقادیر ساختگی نمونه با مقادیر واقعی در گاوصندوق جایگزین شدهاند، نه در مخزن کد.
- کلید رمزنگاری جداگانه پشتیبانگیری شده است.
- پشتیبان کامل (پوشهٔ .n8n + پایگاه) زمانبندی و بازیابی آزمایشی انجام شده است.
- پایش بر /healthz/readiness و هشدار تنظیم شده است.
- سیاست حذف اجراها مشخص است.
- برنامهٔ ماهانهٔ بهروزرسانی با آزمایش در محیط جدا وجود دارد.
- تصمیم دربارهٔ آمادگی تولید با چکلیست آمادگی تولید سنجیده شده است.
منابع و مراجع
- Use Docker Compose (Install n8n on a Linux server) — n8n Docs، 2026-10-19.
- Install with Docker — n8n Docs، 2026-10-19.
- Back up and restore — n8n Docs، 2026-10-19.
- Update n8n — n8n Docs، 2026-10-19.
- Monitor n8n — n8n Docs، 2026-10-19.
- Manage execution data — n8n Docs، 2026-10-19.
نویسنده
سا
سهیل ابراهیمپور بنیانگذار FutureForge است. روی طراحی محصول، معماری و استقرار نرمافزار سفارشی کار میکند.
یادداشتهای مرتبط
برای انتخاب مسیر فنی پروژهتان کمک میخواهید؟
از مسئله و محدودیتهایتان بگویید؛ اگر بتوانیم همراهیتان کنیم، برای گفتوگو هماهنگ میکنیم.




