میزبانی n8n در فضای ابری هتزنر
این راهنمای میزبانی به شما نشان میدهد که چگونه n8n را روی یک سرور ابری Hetzner خود میزبانی کنید. این راهنما از موارد زیر استفاده میکند:
- Caddy (یک پروکسی معکوس) برای دسترسی به سرور از طریق اینترنت.
- Docker Compose برای ایجاد و تعریف اجزای برنامه و نحوه همکاری آنها.
ایجاد یک سرور
- وارد پنل سایت شده .
- یک سرویس هتزنر خریداری کنید.
وارد سرور خود شوید
ادامهی این راهنما مستلزم آن است که با استفاده از یک ترمینال و از طریق SSH به سرور وارد شوید.
نصب Docker Compose
با دستورات زیر آن را نصب کنید:
apt update && apt -y upgrade
apt install docker-compose-plugin
Clone configuration repository
Docker Compose، n8n و Caddy به یک سری پوشه و فایل پیکربندی نیاز دارند. میتوانید این فایلها را از این مخزن در پوشه کاربر root سرور کپی کنید. مراحل زیر به شما میگوید کدام فایل را تغییر دهید و چه تغییراتی ایجاد کنید.
git clone https://github.com/n8n-io/n8n-docker-caddy.git
و دایرکتوری را به ریشه مخزنی که کلون کردهاید تغییر دهید:
cd n8n-docker-caddy
پوشهها و فایلهای پیشفرض
سیستم عامل میزبان (سرور) دو پوشهای که ایجاد کردهاید را در کانتینرهای داکر کپی میکند تا آنها را در دسترس داکر قرار دهد. این دو پوشه عبارتند از:
- caddy_config: فایلهای پیکربندی Caddy را در خود نگه میدارد.
- local_files: پوشهای برای فایلهایی که با استفاده از n8n آپلود یا اضافه میکنید.
ایجاد Docker volume
برای حفظ حافظه پنهان Caddy بین راهاندازیهای مجدد و افزایش سرعت زمان شروع، یک حجم Docker ایجاد کنید که Docker بین راهاندازیهای مجدد از آن استفاده مجدد کند:
docker volume create caddy_data
یک درایو داکر برای دادههای n8n ایجاد کنید:
sudo docker volume create n8n_data
تنظیم دیاناس
n8n معمولاً روی یک زیردامنه عمل میکند. یک رکورد DNS با ارائهدهنده خود برای زیردامنه ایجاد کنید و آن را به آدرس IP سرور ارجاع دهید. مراحل دقیق این کار به ارائهدهنده DNS شما بستگی دارد، اما معمولاً باید یک رکورد “A” جدید برای زیردامنه n8n ایجاد کنید.
پورت های باز (Open ports)
n8n به عنوان یک برنامه وب اجرا میشود، بنابراین سرور باید اجازه دسترسی ورودی به ترافیک را از طریق پورت ۸۰ برای ترافیک غیرایمن و از طریق پورت ۴۴۳ برای ترافیک امن بدهد.
با اجرای دو دستور زیر، پورتهای زیر را در فایروال سرور باز کنید:
sudo ufw allow 80
sudo ufw allow 443
پیکربندی n8n
n8n برای انتقال به برنامهای که در کانتینر Docker اجرا میشود، به تعدادی متغیر محیطی نیاز دارد. فایل .env مثال شامل متغیرهایی است که باید آنها را با مقادیر دلخواه خود جایگزین کنید.
فایل را با دستور زیر باز کنید:
nano .env
این فایل شامل کامنتهای درونخطی است تا به شما کمک کند بدانید چه چیزی را باید تغییر دهید.
فایل Docker Compose
فایل Docker Compose (docker-compose.yml) سرویسهایی را که برنامه به آنها نیاز دارد، تعریف میکند که در این مورد Caddy و n8n هستند.
- تعریف سرویس Caddy، پورتهایی که از آنها استفاده میکند و والیومهای محلی که باید در کانتینرها کپی شوند را تعریف میکند.
- تعریف سرویس n8n پورتهایی که استفاده میکند، متغیرهای محیطی که n8n باید اجرا کند (برخی در فایل .env تعریف شدهاند) و حجمهایی که باید در کانتینرها کپی کند را تعریف میکند.
فایل Docker Compose از متغیرهای محیطی تنظیمشده در فایل .env استفاده میکند، بنابراین نیازی به تغییر محتوای آن نیست، اما برای بررسی، دستور زیر را اجرا کنید:
nano docker-compose.yml
پیکربندی Caddy
Caddy باید بداند که به کدام دامنهها باید سرویس دهد و کدام پورت را در معرض دنیای خارج قرار دهد. فایل Caddyfile را در پوشه caddy_config ویرایش کنید.
nano caddy_config/Caddyfile
زیردامنهی جایگزین را به نام خود تغییر دهید. اگر مراحل نامگذاری زیردامنه n8n را دنبال کرده باشید، دامنهی کامل شما مشابه n8n.example.com خواهد بود. n8n در تنظیم reverse_proxy به Caddy میگوید که از تعریف سرویس تعریف شده در فایل docker-compose.yml استفاده کند:
n8n.<domain>.<suffix>
{
reverse_proxy n8n:5678
{
flush_interval -1
}
}
Start Docker Compose
n8n و Caddy را با دستور زیر شروع کنید:
docker compose up -d
این دستور ممکن است چند دقیقه طول بکشد .
آزمایش مراحل انجلم شده
در مرورگر خود، URL تشکیل شده از زیر دامنه و نام دامنه که قبلاً تعریف شده است را باز کنید. نام کاربری و رمز عبوری که قبلاً تعریف شده است را وارد کنید، و باید بتوانید به n8n دسترسی پیدا کنید.
متوقف کردن n8n and Caddy
شما میتوانید n8n و Caddy را با دستور زیر متوقف کنید:
sudo docker compose stop
به روز رسانی یا Update
اگر n8n را با استفاده از فایل Docker Compose اجرا میکنید، برای بهروزرسانی n8n این مراحل را دنبال کنید:
# Navigate to the directory containing your docker compose file
cd </path/to/your/compose/file/directory>
# Pull latest version
docker compose pull
# Stop and remove older version
docker compose down
# Start the container
docker compose up -d