نصب n8n روی لپتاپ و با داکر — راهنمای عملی
دو راه برای بالا آوردن n8n روی دستگاه خودتان: سریعترین راه برای امتحان کردن، و راه درست با داکر که بعداً عین همان روی سرور هم کار میکند. با دستورهای دقیق و نکتهی نگهداشتن داده.
قبل از هر چیز یک تصمیم بگیرید، چون بقیهی مسیر به همین بستگی دارد.

اگر فقط میخواهید ببینید n8n چیست، راه اول کافی است. اگر قرار است چیزی بسازید که واقعاً استفاده شود، از همان اول با داکر شروع کنید — چون همان ستاپ، بیکموکاست، روی سرور هم بالا میآید.
راه اول: سریعترین حالت (npx)
اگر Node.js نسخهی ۱۸ یا بالاتر دارید، یک دستور کافی است:
npx n8n
چند دقیقه صبر کنید تا دانلود شود. بعد در مرورگر بروید به http://localhost:5678.
ندارید؟ از nodejs.org نسخهی LTS را بگیرید. برای بررسی:
node -v
npm -v
محدودیتهایی که باید بدانید: تا وقتی این پنجرهی ترمینال باز است، n8n زنده است. ببندیدش، فلوها هم میخوابند. ضمناً هیچ وبهوکی از بیرون به لپتاپ شما نمیرسد — یعنی تریگرهایی مثل تلگرام یا فرم سایت کار نمیکنند مگر با تونل.
برای یاد گرفتن عالی است. برای کار واقعی نه.
راه دوم: داکر
اگر نمیدانید داکر چیست، این مقاله در ده دقیقه توضیحش میدهد. خلاصهاش: برنامه را با هر چیزی که لازم دارد در یک جعبه میبندد، و آن جعبه همهجا یکجور اجرا میشود.
گام ۱ — نصب داکر
روی ویندوز و مک، Docker Desktop را از سایت داکر بگیرید و نصب کنید. روی ویندوز اگر گفت WSL2 لازم است، اجازه بدهید نصبش کند.
برای بررسی، در ترمینال:
docker --version
گام ۲ — جایی برای نگه داشتن داده
این مهمترین نکتهی کل مقاله است، پس اول میگویمش:
کانتینر حافظه ندارد. اگر بدون تنظیم مخصوص اجرایش کنید، با اولین بهروزرسانی همهی فلوها و اعتبارنامههایتان پاک میشوند. برای همین یک «حجم» میسازیم که داده بیرون از کانتینر بماند:
docker volume create n8n_data
گام ۳ — اجرا
docker run -d --name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
-e GENERIC_TIMEZONE="Asia/Tehran" \
-e TZ="Asia/Tehran" \
docker.n8n.io/n8nio/n8n
هر خط چه میکند:
-dدر پسزمینه اجرا کن، ترمینال را اشغال نکن--name n8nاسمی که بعداً با آن صدایش میزنید-p 5678:5678پورت داخل کانتینر را به پورت دستگاه وصل کن-v n8n_data:...همان حجمی که ساختیم — داده اینجا میماندGENERIC_TIMEZONEبدون این، زمانبندیها با ساعت گرینویچ کار میکنند و «هر روز ۹ صبح» میشود ۱۲:۳۰ ظهر
حالا http://localhost:5678 را باز کنید. اولین بار یک حساب مدیر میسازد.
دستورهای روزمره
docker logs -f n8n # دیدن لاگ زنده
docker stop n8n # خاموش کردن
docker start n8n # روشن کردن دوباره
بهروزرسانی
docker stop n8n
docker rm n8n
docker pull docker.n8n.io/n8nio/n8n
# بعد همان docker run بالا را دوباره بزنید
چون داده در حجم است نه در کانتینر، حذف کانتینر چیزی را از بین نمیبرد. اگر گام ۲ را رد کرده باشید، همینجا همه چیز را از دست میدهید.
وقتی وبهوک لازم دارید
برای تریگرهایی مثل تلگرام، سرویس بیرونی باید بتواند به n8n شما وصل شود. روی لپتاپ این ممکن نیست، مگر یک تونل موقت بسازید:
npx localtunnel --port 5678
یک نشانی عمومی میدهد. آن را در متغیر WEBHOOK_URL بگذارید و n8n را دوباره اجرا کنید.
این راهحل موقت است: نشانی هر بار عوض میشود و اتصال پایدار نیست. برای چیزی که باید همیشه کار کند، نصب روی سرور اوبونتو جواب درست است.
سه خطای رایج
port is already allocated
چیز دیگری روی ۵۶۷۸ نشسته. یا پیدایش کنید و ببندید، یا پورت را عوض کنید: -p 5679:5678
صفحه بالا نمیآید.
اول docker ps بزنید ببینید کانتینر واقعاً بالاست. اگر نبود، docker logs n8n علتش را میگوید.
زمانبندیها سر ساعت اشتباه اجرا میشوند.
متغیر منطقهی زمانی را جا انداختهاید. باید هر دو متغیر TZ و GENERIC_TIMEZONE ست شوند.
قدم بعد
حالا که n8n بالاست، یک فلوی واقعی بسازید: ساخت ربات تلگرام قدمبهقدم.