سی ام اس نویسسی ام اس نویسیاد بگیر، سیستم خودتو بنویس
مجلهتماس با ما
سی ام اس نویسسی ام اس نویس

CMS نویس مرجعی برای آموزش برنامه نویسی وب و PHP، توسعه افزونه‌های اختصاصی وردپرس، طراحی ورک‌فلو و اتوماسیون با n8n و توسعه CMS های اختصاصی است. هدف ما ارائه آموزش‌های کاربردی و راهکارهای حرفه‌ای برای توسعه‌دهندگان، کسب‌وکارها و علاقه‌مندان به دنیای برنامه‌نویسی است.

پیوندهای سریع
محصولات فیزیکیمحصولات دیجیتالدوره‌های آموزشی
سی ام اس نویس
مجله سی ام اس نویستماس با ماپنل کاربری
سی ام اس نویس — تمامی حقوق برای سی ام اس نویس محفوظ است. © 1406 تماس با ما09307711941
آموزش نصب n8n روی سرور با Docker؛ راه‌اندازی قدم‌به‌قدم

آموزش نصب n8n روی سرور با Docker؛ راه‌اندازی قدم‌به‌قدم

ممدیر کل سیستم ۲۷ مهر ۱۴۰۵ ۱۸ دقیقه مطالعه ۱ بازدید
آموزش نصب n8n روی سرور با Docker؛ راه‌اندازی قدم‌به‌قدم

اگر می‌خواهید از n8n برای خودکارسازی فرایندهای کاری، اتصال APIها، اجرای گردش‌کارهای هوش مصنوعی یا ارائه سرویس اتوماسیون به مشتریان استفاده کنید، یکی از گزینه‌های مناسب، نصب آن روی سرور شخصی است.

با خودمیزبانی یا Self-hosting، نرم‌افزار n8n را روی زیرساختی که مدیریت آن با شماست اجرا می‌کنید. در این روش می‌توانید تنظیمات سرور، شبکه، ذخیره‌سازی و دسترسی‌ها را متناسب با نیاز خود مدیریت کنید؛ البته مسئولیت نگهداری، به‌روزرسانی، امنیت و پشتیبان‌گیری نیز بر عهده شما خواهد بود.

در این مقاله، نصب n8n با Docker را به‌صورت مرحله‌به‌مرحله بررسی می‌کنیم. ابتدا نسخه ساده را اجرا می‌کنیم، سپس روش نگهداری اطلاعات، تنظیمات ضروری، اتصال دامنه و نکات امنیتی محیط عملیاتی را توضیح می‌دهیم.

۱. چرا n8n را با Docker نصب کنیم؟

Docker امکان اجرای نرم‌افزارها در محیط‌های ایزوله‌ای به نام Container را فراهم می‌کند. به‌جای نصب مستقیم تمام وابستگی‌های برنامه روی سیستم‌عامل، می‌توانید n8n را در یک کانتینر اجرا کنید.

این روش چند مزیت مهم دارد:

  • راه‌اندازی و مدیریت نسبتاً ساده‌تر
  • جداسازی محیط اجرای n8n از بخش‌های دیگر سرور
  • امکان تعریف تنظیمات از طریق متغیرهای محیطی
  • امکان استفاده از Volume برای نگهداری پایدار اطلاعات
  • ساده‌تر شدن فرایند ارتقا و بازآفرینی کانتینر
  • قابلیت اتصال به سرویس‌هایی مانند PostgreSQL و Reverse Proxy

بااین‌حال، استفاده از Docker به‌تنهایی به معنی امن بودن یا آماده بودن سرور برای محیط عملیاتی نیست. تنظیم شبکه، ذخیره‌سازی، دسترسی‌ها و پشتیبان‌گیری همچنان اهمیت زیادی دارند.

۲. پیش‌نیازهای نصب n8n

قبل از شروع، موارد زیر را آماده کنید:

پیش‌نیازتوضیح
سرور لینوکسیبرای مثال، سروری با Ubuntu
دسترسی مدیریتیدسترسی SSH و مجوز نصب نرم‌افزار
Dockerبرای اجرای کانتینر n8n
Docker Composeبرای مدیریت سرویس و تنظیمات آن
منابع کافیمتناسب با تعداد Workflowها، حجم داده و تعداد اجراها
دامنه، در صورت نیازبرای دسترسی از طریق آدرس اختصاصی
HTTPS، در محیط عمومیبرای رمزنگاری ارتباط مرورگر و سرور

میزان CPU و RAM موردنیاز برای همه پروژه‌ها یکسان نیست. اجرای چند Workflow سبک با پردازش تعداد زیادی فایل یا اجرای هم‌زمان گردش‌کارهای سنگین تفاوت زیادی دارد. بهتر است منابع سرور را بر اساس بار واقعی انتخاب کنید و پس از راه‌اندازی، مصرف منابع را زیر نظر بگیرید.

مستندات رسمی n8n درباره روش‌های میزبانی: https://docs.n8n.io/hosting/

۳. نصب Docker روی Ubuntu

در این راهنما فرض می‌کنیم سرور شما Ubuntu است و می‌توانید با SSH به آن متصل شوید.

ابتدا از طریق ترمینال وارد سرور شوید. سپس نسخه سیستم‌عامل را بررسی کنید:


cat /etc/os-release

برای نصب Docker، از دستورالعمل رسمی متناسب با نسخه Ubuntu خود استفاده کنید:

https://docs.docker.com/engine/install/ubuntu/

پس از نصب Docker، وضعیت سرویس را بررسی کنید:


sudo systemctl status docker

سپس نسخه Docker را مشاهده کنید:


docker --version

برای بررسی Docker Compose نیز اجرا کنید:


docker compose version

اگر این دستورات نسخه نرم‌افزار را نمایش دهند و سرویس Docker به‌درستی اجرا شده باشد، می‌توانید سراغ ساخت سرویس n8n بروید.

نکته: روش نصب Docker ممکن است با توجه به نسخه سیستم‌عامل و روش انتخابی متفاوت باشد. از ترکیب دستورالعمل‌های چند روش نصب خودداری کنید؛ به‌ویژه روی سرورهایی که از قبل Docker یا ابزار مدیریت کانتینر دارند.

۴. ساخت پوشه اختصاصی n8n

برای اینکه فایل‌های تنظیمات از سایر پروژه‌ها جدا باشند، یک پوشه اختصاصی ایجاد می‌کنیم:


sudo mkdir -p /opt/n8n

sudo chown "$USER":"$USER" /opt/n8n

cd /opt/n8n

در این پوشه فایل‌های مربوط به Docker Compose را قرار می‌دهیم.

این ساختار برای یک نصب ساده مناسب است و در صورت نیاز می‌توانید بعداً فایل‌های پشتیبان، تنظیمات Reverse Proxy یا مستندات داخلی را نیز در مسیرهای جداگانه نگهداری کنید.

۵. ساخت فایل Docker Compose برای اجرای n8n

Docker Compose به شما اجازه می‌دهد سرویس n8n و تنظیمات آن را در یک فایل تعریف کنید.

در پوشه /opt/n8n، فایل زیر را بسازید:


nano compose.yaml

سپس محتوای زیر را در آن قرار دهید:


services:

  n8n:

    image: docker.n8n.io/n8nio/n8n

    restart: unless-stopped

    ports:

      - "127.0.0.1:5678:5678"

    environment:

      - TZ=Asia/Tehran

      - GENERIC_TIMEZONE=Asia/Tehran

      - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true

      - N8N_RUNNERS_ENABLED=true

    volumes:

      - n8n_data:/home/node/.n8n



volumes:

  n8n_data:

برای ذخیره فایل در nano، معمولاً از Ctrl + O و سپس Enter استفاده کنید. برای خروج، Ctrl + X را بزنید.

این تنظیمات چه کاری انجام می‌دهند؟

image


image: docker.n8n.io/n8nio/n8n

مشخص می‌کند Docker باید از تصویر رسمی n8n استفاده کند. برای محیط عملیاتی بهتر است نسخه موردنظر خود را آگاهانه انتخاب و به‌روزرسانی کنید، نه اینکه بدون بررسی به تغییرات نسخه وابسته باشید.

restart


restart: unless-stopped

در شرایط مناسب، به Docker اجازه می‌دهد کانتینر را پس از توقف یا راه‌اندازی مجدد سرور دوباره اجرا کند؛ مگر اینکه سرویس به‌صورت دستی متوقف شده باشد.

ports


ports:

  - "127.0.0.1:5678:5678"

پورت داخلی 5678 کانتینر را فقط روی آدرس Loopback سرور منتشر می‌کند. این تنظیم برای حالتی مناسب است که قرار است بعداً Reverse Proxy روی همان سرور درخواست‌ها را به n8n منتقل کند.

در این حالت، پورت 5678 مستقیماً از اینترنت در دسترس نخواهد بود. اگر قصد دسترسی مستقیم از شبکه دیگری دارید، باید طراحی شبکه و کنترل دسترسی را آگاهانه تنظیم کنید؛ انتشار عمومی پنل بدون بررسی امنیتی توصیه نمی‌شود.

volumes


volumes:

  - n8n_data:/home/node/.n8n

اطلاعات n8n را در یک Volume مستقل ذخیره می‌کند. به این ترتیب، بازآفرینی کانتینر لزوماً به معنی حذف اطلاعات ذخیره‌شده در این Volume نیست.

بااین‌حال، Volume جایگزین پشتیبان‌گیری نیست. خرابی سرور یا حذف ناخواسته Volume همچنان می‌تواند اطلاعات را از بین ببرد.

تنظیم منطقه زمانی

در این مثال از Asia/Tehran استفاده شده است. منطقه زمانی را بر اساس محل اجرای سرویس و نیاز زمان‌بندی Workflowهای خود انتخاب کنید.

۶. اجرای n8n برای اولین بار

پس از ذخیره فایل، ابتدا تنظیمات Compose را بررسی کنید:


docker compose config

اگر خطای پیکربندی وجود نداشت، سرویس را اجرا کنید:


docker compose up -d

در اجرای نخست، Docker ممکن است نیاز به دریافت تصویر n8n داشته باشد. پس از پایان کار، وضعیت کانتینر را بررسی کنید:


docker compose ps

برای مشاهده لاگ‌ها:


docker compose logs -f n8n

اگر سرویس بدون خطا اجرا شده باشد، باید بتوانید از طریق آدرس Loopback خود سرور به آن دسترسی داشته باشید. برای خروج از نمایش زنده لاگ‌ها، Ctrl + C را بزنید؛ این کار نمایش لاگ‌ها را متوقف می‌کند و به‌خودی‌خود به معنی توقف کانتینر نیست.

چگونه از روی خود سرور تست کنیم؟

این دستور را اجرا کنید:


curl -I http://127.0.0.1:5678

اگر سرویس در حال پاسخ‌گویی باشد، معمولاً یک پاسخ HTTP دریافت می‌کنید. کد دقیق پاسخ ممکن است با توجه به وضعیت برنامه و مسیر درخواست متفاوت باشد.

اگر پاسخی دریافت نکردید، موارد زیر را بررسی کنید:

  • آیا کانتینر در وضعیت Running است؟
  • آیا لاگ‌ها خطای راه‌اندازی نشان می‌دهند؟
  • آیا پورت 5678 در تنظیمات درست تعریف شده است؟
  • آیا سرویس در حال راه‌اندازی اولیه است؟
  • آیا تنظیمات دیگری روی سرور با این سرویس تداخل دارند؟

۷. چرا اطلاعات n8n باید پایدار ذخیره شوند؟

یکی از اشتباهات رایج در نصب سرویس‌های Docker، نادیده گرفتن محل ذخیره اطلاعات است.

کانتینر را می‌توان حذف و دوباره ایجاد کرد. اگر اطلاعات مهم فقط در لایه موقت کانتینر ذخیره شده باشند، ممکن است با بازآفرینی آن‌ها از بین بروند.

در تنظیمات این مقاله، از Volume با نام n8n_data استفاده کردیم:


volumes:

  - n8n_data:/home/node/.n8n

این Volume برای نگهداری اطلاعات برنامه در مسیر تعیین‌شده استفاده می‌شود.

برای مشاهده Volumeهای Docker می‌توانید اجرا کنید:


docker volume ls

برای مشاهده جزئیات Volume:


docker volume inspect n8n_n8n_data

نام واقعی Volume ممکن است با توجه به نام پروژه Compose متفاوت باشد. اگر دستور بالا Volume را پیدا نکرد، نام دقیق را از خروجی docker volume ls بررسی کنید.

هشدار مهم: برای پاک‌سازی محیط، از دستورهایی مانند docker compose down -v بدون بررسی استفاده نکنید؛ گزینه -v می‌تواند Volumeهای تعریف‌شده برای پروژه را نیز حذف کند. پیش از هر عملیات حذف، از اطلاعات مهم نسخه پشتیبان تهیه کنید.

۸. ساخت حساب اولیه و ایمن‌سازی پنل

پس از آماده شدن سرویس، برای دسترسی به پنل باید از مسیر دسترسی مناسب استفاده کنید. در یک راه‌اندازی عمومی، ابتدا باید دامنه و HTTPS را تنظیم کنید و سپس از طریق آدرس امن وارد پنل شوید.

در اولین ورود، مراحل راه‌اندازی اولیه‌ای را که رابط n8n نمایش می‌دهد دنبال کنید.

برای ایمن‌سازی اولیه:

  • از رمز عبور قوی و منحصربه‌فرد استفاده کنید.
  • حساب مدیریتی را در اختیار افراد غیرمجاز قرار ندهید.
  • دسترسی مستقیم عمومی به پورت مدیریتی را محدود کنید.
  • از اطلاعات محرمانه در Workflowها و خروجی‌ها محافظت کنید.
  • به‌روزرسانی‌های امنیتی n8n و زیرساخت را پیگیری کنید.

جزئیات روش مدیریت کاربران و گزینه‌های امنیتی ممکن است به نسخه و نوع استقرار شما وابسته باشد؛ بنابراین تنظیمات نسخه نصب‌شده را با مستندات رسمی تطبیق دهید.

۹. اتصال دامنه به n8n

برای استفاده راحت‌تر و دسترسی از طریق یک آدرس مشخص، می‌توانید یک زیردامنه مانند زیر در نظر بگیرید:


n8n.example.com

به‌جای example.com باید دامنه واقعی خود را قرار دهید.

برای اتصال دامنه، معمولاً مراحل زیر را انجام می‌دهید:

۱. در پنل مدیریت DNS، یک رکورد مناسب برای زیردامنه ایجاد کنید.

۲. رکورد را به IP عمومی سرور هدایت کنید.

۳. مطمئن شوید سرور از اینترنت روی پورت‌های لازم برای وب قابل دسترسی است.

۴. یک Reverse Proxy مانند Nginx یا ابزار مشابه را تنظیم کنید.

۵. درخواست‌های HTTPS را به سرویس داخلی n8n روی پورت 5678 منتقل کنید.

۶. متغیرهای محیطی مرتبط با آدرس عمومی n8n را بر اساس دامنه و ساختار واقعی استقرار تنظیم کنید.

در این معماری، مرورگر کاربر با دامنه عمومی ارتباط برقرار می‌کند و Reverse Proxy درخواست را به n8n منتقل می‌کند. از آنجا که در فایل Compose، پورت 5678 فقط روی 127.0.0.1 منتشر شده است، سرویس داخلی مستقیماً روی تمام رابط‌های شبکه سرور منتشر نمی‌شود.

اگر از قبل پنل مدیریتی سرور یا Reverse Proxy دیگری دارید، بهتر است به‌جای نصب یک سرویس پراکسی جدید، ابتدا معماری موجود را بررسی کنید تا تداخل پورت و تنظیمات ایجاد نشود.

۱۰. تنظیم HTTPS و آدرس عمومی n8n

اگر قرار است پنل n8n یا Webhookهای آن از اینترنت قابل دسترسی باشند، HTTPS اهمیت زیادی دارد؛ به‌ویژه زمانی که اطلاعات کاربر، توکن یا داده‌های حساس در درخواست‌ها منتقل می‌شوند.

در استقرارهایی که Reverse Proxy دارند، n8n باید از آدرس عمومی صحیح خود آگاه باشد. برای نمونه، متغیرهای زیر در تنظیمات متداول n8n کاربرد دارند:


environment:

  - N8N_HOST=n8n.example.com

  - N8N_PROTOCOL=https

  - N8N_PORT=5678

  - WEBHOOK_URL=https://n8n.example.com/

این مقادیر صرفاً نمونه هستند و باید با دامنه واقعی و معماری استقرار شما هماهنگ شوند. N8N_PORT در این نمونه به پورت داخلی سرویس اشاره دارد، نه لزوماً پورتی که کاربر در مرورگر وارد می‌کند.

اگر از Reverse Proxy استفاده می‌کنید، تنظیم درست Headerهای پروکسی و آدرس‌های عمومی نیز اهمیت دارد. در غیر این صورت ممکن است آدرس Webhookها اشتباه تولید شود یا بعضی قابلیت‌های مبتنی بر ارتباط زنده به‌درستی کار نکنند.

نکته: فقط اضافه کردن متغیرهای HTTPS، گواهی SSL ایجاد نمی‌کند. باید گواهی معتبر را در Reverse Proxy یا لایه‌ای که مسئول TLS است نصب و تمدید کنید.

مستندات رسمی پیکربندی n8n: https://docs.n8n.io/hosting/configuration/

۱۱. تنظیمات محیطی را چگونه تغییر دهیم؟

برای تغییر تنظیمات n8n در این نمونه، فایل compose.yaml را باز کنید:


cd /opt/n8n

nano compose.yaml

متغیرهای موردنیاز را در بخش environment اضافه یا اصلاح کنید.

پس از ذخیره، پیکربندی را بررسی کنید:


docker compose config

سپس کانتینر را با پیکربندی جدید بازآفرینی کنید:


docker compose up -d

در صورت نیاز، لاگ‌ها را بررسی کنید:


docker compose logs --tail=100 n8n

توجه داشته باشید که تغییر بعضی متغیرها به راه‌اندازی مجدد سرویس نیاز دارد. همچنین پیش از اعمال تغییرات در محیط عملیاتی، اثر آن‌ها بر Webhookها، آدرس عمومی، اتصال‌های خارجی و دسترسی کاربران را بررسی کنید.

۱۲. آیا بهتر است n8n از PostgreSQL استفاده کند؟

در نصب ساده این مقاله، n8n از تنظیمات پیش‌فرض ذخیره‌سازی خودش استفاده می‌کند و اطلاعات مربوط به برنامه در Volume نگهداری می‌شوند.

برای استقرارهای بزرگ‌تر یا محیط‌هایی که مدیریت پایگاه داده برایشان اهمیت بیشتری دارد، می‌توانید PostgreSQL را نیز در معماری خود در نظر بگیرید. انتخاب پایگاه داده باید بر اساس نسخه n8n، حجم کار، سیاست پشتیبان‌گیری، نیاز عملیاتی و معماری سرور انجام شود.

اگر از PostgreSQL استفاده می‌کنید، لازم است موارد زیر را نیز مدیریت کنید:

  • ساخت پایگاه داده و کاربر اختصاصی
  • تنظیم اطلاعات اتصال از طریق متغیرهای محیطی
  • نگهداری امن رمز عبور
  • اتصال صحیح شبکه‌ای بین n8n و PostgreSQL
  • پشتیبان‌گیری و آزمودن بازیابی
  • پایش فضای دیسک و سلامت پایگاه داده

مهم: اضافه کردن PostgreSQL به Compose بدون تنظیم صحیح متغیرهای اتصال، جایگزین کردن پایگاه داده موجود یا برنامه‌ریزی مهاجرت داده‌ها ممکن است باعث اختلال در سرویس شود. اگر n8n از قبل اطلاعات عملیاتی دارد، قبل از تغییر پایگاه داده باید برای انتقال و بازیابی اطلاعات برنامه‌ریزی کنید.

مستندات رسمی تنظیمات پایگاه داده: https://docs.n8n.io/hosting/configuration/environment-variables/database/

۱۳. پشتیبان‌گیری از n8n

اگر Workflowهای شما وظایف مهمی انجام می‌دهند، پشتیبان‌گیری باید از همان ابتدای راه‌اندازی در نظر گرفته شود.

اطلاعات مهم ممکن است شامل تنظیمات برنامه، Workflowها، اعتبارنامه‌ها، داده‌های پایگاه داده و فایل‌های مرتبط با اجراها باشد. اینکه هرکدام کجا ذخیره می‌شوند، به معماری و تنظیمات شما بستگی دارد.

برای یک نصب ساده مبتنی بر Volume، حداقل باید از اطلاعات پایدار مربوط به n8n نسخه پشتیبان تهیه کنید. اگر PostgreSQL یا ذخیره‌سازی خارجی دارید، برنامه پشتیبان‌گیری باید آن بخش‌ها را نیز پوشش دهد.

یک برنامه مناسب پشتیبان‌گیری باید این ویژگی‌ها را داشته باشد:

  • اجرای زمان‌بندی‌شده
  • نگهداری نسخه‌های متعدد
  • ذخیره نسخه‌ای از پشتیبان خارج از همان سرور
  • محدود کردن دسترسی به فایل‌های پشتیبان
  • بررسی موفقیت عملیات پشتیبان‌گیری
  • آزمایش بازیابی اطلاعات در یک محیط جداگانه

تهیه فایل پشتیبان بدون آزمایش بازیابی کافی نیست. ممکن است فایل ناقص باشد یا برای بازگردانی اطلاعات به تنظیمات دیگری نیاز داشته باشید.

همچنین اطلاعات محرمانه مانند کلیدهای رمزگذاری اعتبارنامه‌ها باید مطابق مستندات نسخه و معماری نصب‌شده محافظت شوند. در زمان بازیابی، سازگاری این اطلاعات با نسخه پشتیبان اهمیت دارد.

۱۴. به‌روزرسانی n8n در Docker

به‌روزرسانی n8n می‌تواند قابلیت‌های جدید و اصلاحات امنیتی را در اختیار شما قرار دهد؛ اما ارتقا بدون برنامه‌ریزی ممکن است باعث ناسازگاری Workflowها یا تغییر رفتار Nodeها شود.

برای ارتقا، ابتدا نسخه فعلی و تنظیمات استقرار را بررسی کنید. سپس نسخه پشتیبان تهیه کنید و یادداشت‌های انتشار نسخه مقصد را بخوانید.

در روش استفاده از تصویر Docker، روند کلی می‌تواند شامل این مراحل باشد:


cd /opt/n8n

docker compose pull

docker compose up -d

این دستورات تصویر تعریف‌شده در فایل Compose را دریافت می‌کنند و سرویس را با آن بازآفرینی می‌کنند. اگر تصویر را با یک Tag مشخص پین کرده باشید، فقط با تغییر Tag به نسخه جدید منتقل خواهید شد.

برای محیط عملیاتی بهتر است:

۱. نسخه مقصد را مشخص کنید.

۲. از داده‌ها و تنظیمات پشتیبان بگیرید.

۳. تغییرات مهم نسخه را بررسی کنید.

۴. در صورت امکان ابتدا در محیط آزمایشی ارتقا دهید.

۵. Workflowهای مهم را پس از ارتقا آزمایش کنید.

۶. لاگ‌ها، اجراها و مصرف منابع را زیر نظر بگیرید.

از اجرای ارتقای بدون بررسی روی سامانه‌ای که سرویس مشتریان را ارائه می‌دهد خودداری کنید؛ به‌ویژه اگر چندین Workflow وابسته به سرویس‌های خارجی دارید.

۱۵. خطاهای رایج هنگام نصب n8n

خطای اشغال بودن پورت

اگر پورت موردنیاز قبلاً در اختیار سرویس دیگری باشد، ممکن است Docker نتواند پورت را منتشر کند.

برای بررسی پورت 5678 روی سرور می‌توانید اجرا کنید:


sudo ss -ltnp | grep 5678

اگر سرویس دیگری از این پورت استفاده می‌کند، ابتدا مشخص کنید آن سرویس چیست. سپس در صورت لزوم پیکربندی پورت را آگاهانه تغییر دهید؛ از متوقف کردن سرویس ناشناخته خودداری کنید.

کانتینر اجرا می‌شود اما پنل باز نمی‌شود

موارد زیر را بررسی کنید:

  • وضعیت کانتینر با docker compose ps
  • لاگ‌های n8n با docker compose logs --tail=100 n8n
  • صحت تنظیمات پورت
  • تنظیمات Reverse Proxy
  • رکورد DNS و گواهی HTTPS
  • قواعد فایروال و دسترسی شبکه

اگر پورت روی 127.0.0.1 منتشر شده باشد، باز کردن IP عمومی سرور به همراه پورت 5678 از رایانه شخصی به‌طور مستقیم کار نخواهد کرد؛ این رفتار با طراحی امنیتی فایل Compose هماهنگ است.

اطلاعات پس از بازسازی کانتینر در دسترس نیستند

در این حالت، ابتدا بررسی کنید که Volume قبلی هنوز وجود دارد و سرویس از همان Volume استفاده می‌کند. همچنین نام پروژه Compose و نام واقعی Volume را بررسی کنید.

از حذف Volumeها برای حل سریع مشکل خودداری کنید؛ ممکن است اطلاعات اصلی در همان Volume ذخیره شده باشند.

Webhookها آدرس اشتباه دارند

اگر n8n پشت Reverse Proxy قرار دارد، آدرس عمومی و تنظیمات مرتبط با Webhook را بررسی کنید. تنظیم نادرست WEBHOOK_URL یا Headerهای پروکسی می‌تواند باعث تولید آدرس نامناسب شود.

پس از تغییر تنظیمات، سرویس اجرا نمی‌شود

فایل Compose را از نظر ساختار YAML بررسی کنید و دستور زیر را اجرا کنید:


docker compose config

سپس لاگ‌های سرویس را بررسی کنید تا علت خطا مشخص شود.

۱۶. نکات امنیتی مهم برای محیط عملیاتی

پیش از استفاده جدی از n8n، این چک‌لیست را بررسی کنید:

  • [ ] دسترسی به پنل مدیریتی محدود و حساب‌ها محافظت شده‌اند.
  • [ ] برای دامنه عمومی از HTTPS معتبر استفاده می‌شود.
  • [ ] پورت‌های غیرضروری روی اینترنت منتشر نشده‌اند.
  • [ ] رمزها و Tokenها در فایل‌های عمومی یا مخازن کد قرار نگرفته‌اند.
  • [ ] برای Volumeها و پایگاه داده برنامه پشتیبان‌گیری وجود دارد.
  • [ ] به‌روزرسانی‌های n8n و Docker به‌صورت برنامه‌ریزی‌شده بررسی می‌شوند.
  • [ ] اجرای Workflowهای مهم و خطاها پایش می‌شوند.
  • [ ] دسترسی شبکه‌ای بین کانتینرها محدود به نیاز واقعی است.
  • [ ] داده‌های حساس در لاگ‌ها و خروجی‌های قابل مشاهده افشا نمی‌شوند.

اگر از n8n برای ارائه سرویس به مشتریان استفاده می‌کنید، جداسازی دسترسی‌ها و داده‌های مشتریان اهمیت ویژه‌ای دارد. یک نصب ساده برای آزمایش، لزوماً معماری مناسبی برای سرویس چندمشتری نیست.

برای بررسی بعضی از مشکلات امنیتی، n8n قابلیت Security Audit نیز دارد. اطلاعات بیشتر در مستندات رسمی:

https://docs.n8n.io/hosting/securing/security-audit/

پرسش‌های متداول درباره نصب n8n با Docker

آیا برای نصب n8n حتماً باید دامنه داشته باشیم؟

خیر. برای آزمایش اولیه می‌توانید سرویس را روی خود سرور اجرا و از طریق دسترسی محلی بررسی کنید. برای استفاده عمومی و Webhookهای قابل دسترسی از اینترنت، دامنه و HTTPS معمولاً انتخاب مناسب‌تری هستند.

آیا با حذف کانتینر، Workflowها پاک می‌شوند؟

اگر اطلاعات در Volume پایدار ذخیره شده باشند و آن Volume حذف نشود، حذف و بازآفرینی کانتینر لزوماً باعث حذف اطلاعات نمی‌شود. بااین‌حال، همیشه باید از اطلاعات مهم پشتیبان داشته باشید.

آیا Docker Compose برای اجرای n8n کافی است؟

برای یک نصب ساده، Docker Compose می‌تواند سرویس را اجرا و تنظیمات آن را مدیریت کند. برای محیط عملیاتی ممکن است به Reverse Proxy، HTTPS، پشتیبان‌گیری، پایش و پایگاه داده متناسب با نیاز پروژه نیز احتیاج داشته باشید.

آیا می‌توان n8n را روی VPS با منابع محدود اجرا کرد؟

ممکن است بتوانید Workflowهای سبک را روی سروری با منابع محدود اجرا کنید، اما ظرفیت واقعی به نوع پردازش‌ها، تعداد اجراهای هم‌زمان، حجم داده و Nodeهای مورد استفاده بستگی دارد. برای تعیین منابع مناسب، مصرف CPU، RAM و دیسک را در بار واقعی بررسی کنید.

آیا می‌توان n8n را به Laravel متصل کرد؟

بله. می‌توانید از API و Webhook برای ارتباط بین Laravel و n8n استفاده کنید. برای نمونه، Laravel پس از ثبت سفارش یک درخواست به Webhook می‌فرستد و n8n مراحل بعدی را اجرا می‌کند. در این ارتباط باید احراز هویت، اعتبارسنجی داده‌ها و جلوگیری از اجرای تکراری را در نظر بگیرید.

جمع‌بندی

نصب n8n با Docker روشی مناسب برای شروع خودمیزبانی و ساخت زیرساخت اتوماسیون است. با ایجاد فایل Docker Compose، تعریف Volume پایدار و اجرای کانتینر می‌توانید سرویس را راه‌اندازی کنید. سپس با تنظیم دامنه، HTTPS، دسترسی‌ها و پشتیبان‌گیری، آن را برای استفاده جدی‌تر آماده کنید.

به یاد داشته باشید که اجرای موفق کانتینر تنها قدم اول است. امنیت، نگهداری داده‌ها، به‌روزرسانی کنترل‌شده و آزمایش بازیابی پشتیبان‌ها بخش مهمی از راه‌اندازی یک سرویس قابل‌اعتماد هستند.

نظرات (0)

نظرات پس از تأیید مدیر نمایش داده می‌شوند

هنوز نظری ثبت نشده است؛ اولین نفر باشید!

مقالات مرتبط

نصب n8n؛ آموزش کامل راه‌اندازی n8n از صفر تا اجرا

نصب n8n؛ آموزش کامل راه‌اندازی n8n از صفر تا اجرا

۱۲ دقیقه
معایب n8n چیست؟ بررسی ۱۰ محدودیت و مشکل مهم قبل از استفاده

معایب n8n چیست؟ بررسی ۱۰ محدودیت و مشکل مهم قبل از استفاده

۲۱ دقیقه
مزایای n8n چیست؟ ۱۲ دلیل برای استفاده از n8n در اتوماسیون کسب‌وکار

مزایای n8n چیست؟ ۱۲ دلیل برای استفاده از n8n در اتوماسیون کسب‌وکار

۲۲ دقیقه
n8n یا Power Automate؛ کدام ابزار اتوماسیون برای کسب‌وکار شما بهتر است؟

n8n یا Power Automate؛ کدام ابزار اتوماسیون برای کسب‌وکار شما بهتر است؟

۲۲ دقیقه