آسانترین روش نصب و راهاندازی n8n روی سرور مجازی با HTTPS
نصب n8n روی یک سرور مجازی (VPS) ممکن است در ابتدا پیچیده به نظر برسد، اما در واقع بسیار ساده است! با استفاده از Docker و Caddy، میتوانید به سرعت یک نسخه آماده به کار از n8n را با رمزنگاری خودکار HTTPS در عرض چند دقیقه راهاندازی کنید.
در این راهنمای جامع نصب، شما یاد خواهید گرفت که چگونه n8n را با استفاده از Docker روی VPS نصب کنید، گواهی SSL خودکار را با Caddy تنظیم کنید و پلتفرم اتوماسیون گردش کار خود را به طور ایمن راهاندازی کنید.
نصب n8n روی VPS (سرور مجازی) با HTTPS
اگر به دنبال سریعترین روش برای نصب n8n بر روی سرور مجازی اوبونتو هستید، دستورات اصلی به شرح زیر است:
-
نصب Docker (براساس مستندات رسمی Docker)
sudo apt update -
دستور ایجاد حجم داده n8n
docker volume create n8n_data -
اجرای کانتینر n8n
docker run -d --rm \ --name n8n \ -p 5678:5678 \ -e GENERIC_TIMEZONE="America/New_York" \ -e TZ="America/New_York" \ -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \ -e N8N_RUNNERS_ENABLED=true \ -e VUE_APP_URL_BASE_API=https://n8n.yourdomain.com/ \ -e N8N_EDITOR_BASE_URL=https://n8n.yourdomain.com/ \ -e WEBHOOK_URL=https://n8n.yourdomain.com/ \ -e WEBHOOK_BASE_URL=https://n8n.yourdomain.com/ \ -e WEBHOOK_TUNNEL_URL=https://n8n.yourdomain.com/ \ -v n8n_data:/home/node/.n8n \ docker.n8n.io/n8nio/n8n -
نصب و پیکربندی Caddy
sudo apt install caddy sudo nano /etc/caddy/Caddyfile # پیکربندی خود را اضافه کنید sudo systemctl restart caddy
استفاده از Docker و Caddy سادهترین روش برای نصب و راهاندازی n8n است. برای دستورات دقیقتر و انجام تنظیمات، ادامه مقاله را بخوانید.

مراحل نصب n8n با Docker بر روی سرور مجازی
n8n چیست؟
قبل از اینکه به نصب n8n بپردازیم، بیایید به طور ساده بررسی کنیم که n8n چیست؟ n8n یک ابزار قدرتمند و متنباز است که برای اتوماسیون فرآیندها و گردش کارها طراحی شده. با استفاده از n8n میتوانید برنامهها و سرویسهای مختلف را به هم متصل کنید تا کارها به صورت خودکار انجام شوند. وقتی n8n را روی VPS خود نصب میکنید، شما کنترل کامل بر پلتفرم اتوماسیون خود خواهید داشت به این معنی که میتوانید دادههای خود را به طور کامل محفوظ نگه دارید، تنظیمات را به دلخواه خود تغییر دهید و پلتفرم را به راحتی بر اساس نیازهای خود گسترش دهید.
برخلاف سرویسهای ابری که دادههای شما را در اختیار دیگران میگذارند، VPS به شما این امکان را میدهد که صاحب کامل دادهها و گردش کارهای خود باشید. این ویژگی برای کسبوکارهایی که نیاز به امنیت بالا دارند یا نمیخواهند هزینههای اشتراک ماهانه پرداخت کنند، گزینهای عالی است.
نیازمندیهای سرور مجازی (VPS) برای نصب n8n
برای دنبال کردن این آموزش و نصب موفق n8n روی VPS، به موارد زیر نیاز دارید:
- Ubuntu 24.04 با دسترسی root یا sudo
- یک دامنه که به آدرس IP سرور شما اشاره کند (مثلاً n8n.yourdomain.com)
- پورتهای فایروال باز: 80 (HTTP)، 443 (HTTPS) و 5678 (پورت پیشفرض n8n)
- آشنایی ابتدایی با دستورات خط فرمان
نکته: قبل از ادامه نصب، اطمینان حاصل کنید که پورتهای TCP 80، 443 و 5678 در فایروال سرور شما باز هستند. پورت 80 برای تایید دامنه برای گواهیهای SSL، پورت 443 برای ترافیک رمزنگاری شده HTTPS و پورت 5678 برای دسترسی به برنامه n8n استفاده میشود.
مرحله 1: نصب Docker روی VPS
برای اجرای کارآمد n8n روی سرور خود، از Docker استفاده میکنیم که محیطی تمیز و ایزوله برای اجرای n8n فراهم میکند. ابتدا پکیجهای سرور خود را با دستور زیر بهروزرسانی کنید:
sudo apt update

سپس، دستورالعملهای رسمی Docker را برای نصب Docker Engine دنبال کنید.
پس از نصب Docker، برای راحتی بیشتر، میتوانید کاربر خود را به گروه docker اضافه کنید:
sudo usermod -aG docker $USER
newgrp docker
با این کار میتوانید دستورات Docker را بدون نیاز به sudo اجرا کنید.
حالا، Docker را راهاندازی کنید و آن را برای شروع خودکار در هنگام راهاندازی سیستم فعال کنید:
sudo systemctl start docker
sudo systemctl enable docker
برای بررسی وضعیت Docker و اطمینان از درست اجرا شدن آن از دستور زیر استفاده کنید:
sudo systemctl status docker
مرحله 2: اجرای n8n با Docker
حال که Docker نصب شده است، میتوانید n8n را روی VPS خود اجرا کنید. ابتدا یک حجم داده پایدار برای n8n ایجاد کنید تا دادهها، گواهیها و تنظیمات شما حتی اگر کانتینر متوقف یا ریستارت شود، حفظ شوند:
docker volume create n8n_data
سپس کانتینر n8n را با تنظیمات لازم اجرا کنید. این مرحله را به صورت تعاملی آغاز میکنیم تا همه چیز درست کار کند:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e GENERIC_TIMEZONE="America/New_York" \
-e TZ="America/New_York" \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
-e N8N_RUNNERS_ENABLED=true \
-e VUE_APP_URL_BASE_API=https://n8n.yourdomain.com/ \
-e N8N_EDITOR_BASE_URL=https://n8n.yourdomain.com/ \
-e WEBHOOK_URL=https://n8n.yourdomain.com/ \
-e WEBHOOK_BASE_URL=https://n8n.yourdomain.com/ \
-e WEBHOOK_TUNNEL_URL=https://n8n.yourdomain.com/ \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
توجه داشته باشید که در تنظیمات بالا “America/New_York” را با منطقه زمانی خود جایگزین کنید و n8n.yourdomain.com را با نام دامنه واقعی خود تعویض کنید.
باید خروجیای ببینید که نشان دهد ویرایشگر اکنون قابل دسترسی است:
ویرایشگر حالا از طریق آدرس زیر قابل دسترسی است:
http://localhost:5678
این حالت تعاملی (-it) برای آزمایش مفید است، اما برای استفاده در محیط تولید روی VPS، باید کانتینر را در حالت جداشده (Detached) اجرا کنید. کانتینر فعلی را متوقف کنید (Ctrl+C) و آن را دوباره با استفاده از فلگ -d اجرا کنید:
docker run -d --rm \
--name n8n \
-p 5678:5678 \
-e GENERIC_TIMEZONE="America/New_York" \
-e TZ="America/New_York" \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
-e N8N_RUNNERS_ENABLED=true \
-e VUE_APP_URL_BASE_API=https://n8n.yourdomain.com/ \
-e N8N_EDITOR_BASE_URL=https://n8n.yourdomain.com/ \
-e WEBHOOK_URL=https://n8n.yourdomain.com/ \
-e WEBHOOK_BASE_URL=https://n8n.yourdomain.com/ \
-e WEBHOOK_TUNNEL_URL=https://n8n.yourdomain.com/ \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
بعد از اجرا، باید یک شناسه کانتینر مشابه این دریافت کنید:
af1eb22262acc60fc205b80e57ad76b3c50909f83d0036e4921db517ba95ec6f
این شناسه طولانی و عددی، شناسه منحصر به فرد کانتینر شماست که تأیید میکند n8n اکنون در پسزمینه در حال اجرا است.
برای بررسی اینکه n8n به درستی در حال اجرا است، میتوانید از دستور curl استفاده کنید:
curl localhost:5678
خروجیای خواهید دید که اشاره میکند نیاز به JavaScript دارید. این کاملاً طبیعی است و نشان میدهد که n8n در حال پاسخگویی است:
n8n is successfully running on a VPS

این خروجی تأیید میکند که n8n به درستی روی پورت 5678 در حال اجرا است و حالا میتوانید از طریق مرورگر به آن دسترسی پیدا کنید.
مرحله 3: نصب و پیکربندی Caddy برای HTTPS خودکار
حال که n8n در حال اجرا است، باید HTTPS را برای ایمنسازی ارتباط خود راهاندازی کنید. Caddy این کار را بسیار ساده میکند و به صورت خودکار گواهیهای SSL را از Let’s Encrypt دریافت و تجدید میکند.
برای نصب Caddy، دستورات زیر را وارد کنید:
sudo apt update
sudo apt install caddy
caddy version
دستور caddy version تأیید میکند که Caddy به درستی نصب شده است و نسخهای را که اجرا میکنید به شما نشان میدهد:

در مرحله بعد، Caddy را طوری پیکربندی کنید که درخواستهای پروکسی را به نمونه n8n شما معکوس کند و به طور خودکار گواهینامههای SSL را مدیریت کند. فایل Caddy را باز کنید:
sudo nano /etc/caddy/Caddyfile
این پیکربندی را در بالای فایل اضافه کنید:
{
email your-email@example.com
}
n8n.yourdomain.com {
reverse_proxy localhost:5678
}
توجه: به جای your-email@example.com آدرس ایمیل واقعی خود را قرار دهید (این آدرس توسط Let’s Encrypt برای ارسال اطلاعیههای انقضای گواهی استفاده میشود) و به جای n8n.yourdomain.com نام دامنه واقعی خود را قرار دهید.
پیکربندی کامل Caddyfile شما باید به شکل زیر باشد:
email your-email@example.com
}
:80 {
# Set this path to your site's directory.
root * /usr/share/caddy
# Enable the static file server.
file_server
# Another common task is to set up a reverse proxy:
# reverse_proxy localhost:8080
# Or serve a PHP site through php-fpm:
# php_fastcgi localhost:9000
}
n8n.yourdomain.com {
reverse_proxy localhost:5678
}
فایل را ذخیره کرده و ببندید (Ctrl+X، سپس Y، و در نهایت Enter بزنید)
مرحله 4: راهاندازی Caddy و فعالسازی HTTPS خودکار
پس از پیکربندی Caddy، آن را راهاندازی کرده تا به صورت خودکار در هنگام راهاندازی سرور شروع به کار کند:
sudo systemctl restart caddy
sudo systemctl enable caddy
دستور restart پیکربندی جدید شما را اعمال میکند، در حالی که enable تضمین میکند که Caddy هنگام راهاندازی مجدد سرور شما به طور خودکار شروع به کار کند.
با استفاده از دستور زیر، بررسی کنید که Caddy به درستی فعال شده است یا خیر:
sudo systemctl status caddy
باید خروجی را ببینید که نشان میدهد Caddy فعال و در حال اجرا است:
● caddy.service - Caddy
Loaded: loaded (/usr/lib/systemd/system/caddy.service; enabled)
Active: active (running)
اگر عبارت «active (running)» را با متن سبز مشاهده میکنید، تبریک میگویم! Caddy اکنون در حال اجرا است و به طور خودکار یک گواهی SSL برای دامنه شما دریافت کرده است.
مرحله 5: دسترسی به n8n از طریق HTTPS
حالا میتوانید از طریق مرورگر به n8n دسترسی پیدا کنید. کافی است به آدرس دامنه خود (به عنوان مثال https://n8n.yourdomain.com به یاد داشته باشید که نام دامنه واقعی خود را جایگزین کنید) بروید. اگر همه چیز درست پیش رفته باشد، باید صفحه ورود یا پیکربندی n8n را مشاهده کنید.

تبریک میگویم! شما با موفقیت n8n را روی VPS خود با HTTPS خودکار راهاندازی کردهاید. پلتفرم اتوماسیون گردش کار شما اکنون امن، آماده تولید و از هر کجای دنیا قابل دسترسی است.
رفع مشکلات رایج در نصب n8n روی VPS
حتی با سادهترین روش برای راهاندازی n8n روی VPS، ممکن است گاهی با مشکلاتی مواجه شوید. در اینجا راهحلهایی برای مشکلات رایج آورده شده است:
1. خطای 502 Bad Gateway
اگر هنگام دسترسی به دامنه خود با خطای 502 Bad Gateway مواجه شدید:
- بررسی کنید که آیا n8n در حال اجرا است: با دستور
docker psبررسی کنید (باید کانتینر n8n در لیست باشد). - لاگهای Caddy را چک کنید: با دستور
sudo journalctl -u caddy -f(به دنبال پیامهای خطا بگردید). - DNS را بررسی کنید: با دستور
dig n8n.yourdomain.comمطمئن شوید که دامنه شما به آدرس IP درست اشاره میکند.
2. مشکلات گواهینامه
اگر HTTPS کار نمیکند یا هشدارهای گواهینامه مشاهده میکنید:
- مطمئن شوید که دامنه شما به IP صحیح اشاره میکند (انتقال DNS ممکن است تا 48 ساعت طول بکشد).
- بررسی کنید که پورتهای 80 و 443 باز هستند: با دستور
sudo ufw allow 80 && sudo ufw allow 443این پورتها را باز کنید. - ایمیل موجود در فایل Caddyfile را بررسی کنید تا صحیح باشد (Let’s Encrypt از این ایمیل برای ارسال اعلانهای مهم استفاده میکند).
3. n8n شروع به کار نمیکند
اگر n8n راهاندازی نمیشود یا بلافاصله کرش میکند:
- لاگهای Docker را بررسی کنید: با دستور
docker logs n8n(این دستور پیامهای خطای دقیق را نشان میدهد). - مطمئن شوید که منطقه زمانی (Timezone) صحیح است (منطقههای زمانی اشتباه میتوانند باعث شکست در راهاندازی شوند).
- بررسی کنید که پورت 5678 توسط فایروال شما مسدود نشده باشد یا توسط برنامه دیگری در حال استفاده نباشد.
اجرای n8n به عنوان یک سرویس دائمی (پیشنهاد شده)
دستور docker run که در بالا استفاده شده، از پرچم --rm بهره میبرد که به این معناست که وقتی کانتینر متوقف میشود، حذف میشود. برای راهاندازی n8n در VPS به صورت دائمی و در محیط تولید، باید n8n به طور مداوم در حال اجرا باشد و اگر کرش کند یا سرور شما راهاندازی مجدد شود، به طور خودکار دوباره شروع به کار کند.
بهترین روش برای انجام این کار استفاده از Docker Compose است. یک فایل docker-compose.yml ایجاد کنید:
nano docker-compose.yml
سپس پیکربندی زیر را به فایل اضافه کنید:
version: '3.8'
services:
n8n:
image: docker.n8n.io/n8nio/n8n
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- GENERIC_TIMEZONE=America/New_York
- TZ=America/New_York
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_RUNNERS_ENABLED=true
- VUE_APP_URL_BASE_API=https://n8n.yourdomain.com/
- N8N_EDITOR_BASE_URL=https://n8n.yourdomain.com/
- WEBHOOK_URL=https://n8n.yourdomain.com/
- WEBHOOK_BASE_URL=https://n8n.yourdomain.com/
- WEBHOOK_TUNNEL_URL=https://n8n.yourdomain.com/
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
external: true
یادآوری: منطقه زمانی (timezone) و نام دامنه را با مقادیر واقعی خود جایگزین کنید.
حال اگر n8n را در حال حاضر با دستور docker run اجرا میکنید، ابتدا آن را متوقف کنید:
docker stop n8n
سپس n8n را با استفاده از Docker Compose راهاندازی کنید:
docker compose up -d
با این پیکربندی، n8n به طور خودکار اگر کرش کند، دوباره راهاندازی خواهد شد و در صورت راهاندازی مجدد سرور شما، به طور خودکار شروع به کار خواهد کرد، که این به شما کمک میکند تا حداکثر زمان کار (uptime) برای گردش کارهای خود داشته باشید.
نصب n8n روی VPS شما اکنون تکمیل شده است! حالا میتوانید به طور امن اتوماسیونهای گردش کار را ایجاد و اجرا کنید، صدها سرویس مختلف را یکپارچه کنید و کنترل کامل بر دادههای خود داشته باشید. با HTTPS خودکار و ذخیرهسازی پایدار، شما یک پایه محکم برای ساخت گردش کارهای قدرتمند اتوماسیون در اختیار دارید.
سؤالات متداول درباره نصب n8n بر روی vps
آیا میتوانم n8n را روی VPS نصب کنم؟
بله، حتماً! در واقع، نصب n8n روی VPS یکی از بهترین روشها برای اجرای n8n است. با انجام این کار، شما کنترل کامل بر دادههایتان خواهید داشت، امکان ایجاد و اجرای بیحد و مرز گردش کارها (در مقایسه با طرحهای میزبانی ابری) را فراهم میآورد و به شما این امکان را میدهد که نصب خود را دقیقاً مطابق با نیازتان سفارشی کنید. این راهنما سادهترین روش برای نصب n8n روی VPS با استفاده از Docker و Caddy را آموزش میدهد.
حداقل نیازمندیهای VPS برای n8n چیست؟
برای استفاده پایه از n8n، حداقل به 1GB حافظه RAM و 10GB فضای ذخیرهسازی (هارد) نیاز دارید. با این حال، برای استفاده در تولید، پیشنهاد میکنیم حداقل 2GB RAM و 20GB فضای ذخیرهسازی داشته باشید. نیازهای دقیق بستگی به پیچیدگی و تعداد دفعات اجرای گردش کارهای شما دارد. اگر از گردش کارهای همزمان زیادی استفاده میکنید یا با دادههای زیادی سر و کار دارید، به فکر ارتقاء به VPS قویتری باشید.
آیا میزبانی n8n روی VPS ارزانتر از سرویسهای ابری است؟
بله، میزبانی n8n روی VPS معمولاً هزینه بسیار کمتری نسبت به سرویسهای میزبانی ابری دارد، به خصوص زمانی که استفاده شما افزایش مییابد. با VPS، شما یک هزینه ماهانه ثابت پرداخت میکنید، بدون توجه به تعداد گردش کارها یا اجراها. علاوه بر این، شما مالک کامل دادهها و حریم خصوصی خود هستید.
چطور میتوانم نصب n8n روی VPS خود را ایمن کنم؟
این راهنما شامل نحوه به کارگیری HTTPS خودکار از طریق Let’s Encrypt است که تمام ترافیک n8n شما را رمزگذاری میکند. علاوه بر این، مطمئن شوید که یک رمز عبور قوی برای حساب n8n خود انتخاب کردهاید، Docker و VPS خود را با پچهای امنیتی بهروز نگه میدارید، قوانین فایروال را بهطور صحیح تنظیم کردهاید تا تنها پورتهای ضروری باز باشند و به فکر تنظیم پشتیبانگیری خودکار از حجم دادههای n8n خود باشید.
چطور میتوانم از گردش کارها و دادههای n8n خود پشتیبانگیری کنم؟
دادههای n8n شما در حجم Docker با نام n8n_data ذخیره میشود. میتوانید این حجم را با استفاده از دستورات Docker پشتیبانگیری کنید یا موقعیت آن را روی دیسک (معمولاً در مسیر /var/lib/docker/volumes/n8n_data) پشتیبانگیری نمایید. برای پشتیبانگیری خودکار، میتوانید یک job کرون تنظیم کنید که به طور منظم این دادهها را به یک مکان امن یا سرویس ذخیرهسازی ابری کپی کند.
اگر گواهینامه Let’s Encrypt منقضی شود چه اتفاقی میافتد؟
هیچ مشکلی پیش نخواهد آمد! این یکی از مزایای استفاده از Caddy برای میزبانی n8n روی VPS است. Caddy به طور خودکار گواهینامههای Let’s Encrypt شما را قبل از انقضا تمدید میکند (معمولاً 30 روز قبل از انقضا برای گواهینامههای 90 روزه). شما نیازی به انجام هیچ کاری ندارید. فقط مطمئن شوید که سرور شما آنلاین و به اینترنت متصل است و Caddy بقیه کارها را انجام میدهد.
