ترکیب n8n و Ollama روی یک سرور، یک سکوی اتوماسیون هوشمند کامل در اختیار شما میگذارد: n8n ورکفلوها را اجرا میکند و Ollama مدل زبانی را بدون هزینه بهازای توکن و بدون ارسال داده به بیرون در اختیارش قرار میدهد. اما رایجترین مشکل این ترکیب، اتصال n8n به Ollama است؛ خطای «ECONNREFUSED» یا «fetch failed» که بیشتر کاربران در اولین تلاش با آن روبهرو میشوند. در این راهنما سه سناریوی نصب، تنظیم درست اتصال در هرکدام، انتخاب مدل و رفع خطاهای رایج را توضیح میدهیم.
فهرست مطالب
سه سناریوی نصب
نکته کلیدی برای درک خطاهای اتصال این است که داخل یک کانتینر Docker، آدرس localhost به خود همان کانتینر اشاره میکند، نه به سرور. پس آدرسی که n8n برای رسیدن به Ollama استفاده میکند، به محل اجرای هرکدام بستگی دارد:
| سناریو | آدرس Ollama در n8n |
|---|---|
| هر دو در یک Docker Compose | http://ollama:11434 |
| Ollama روی سیستمعامل، n8n در Docker | http://host.docker.internal:11434 |
| هر دو روی سیستمعامل (بدون Docker) | http://127.0.0.1:11434 |
| Ollama روی سرور دیگر | http://IP-خصوصی:11434 |
سناریو ۱: هر دو در Docker Compose
سادهترین و توصیهشدهترین روش. وقتی دو سرویس در یک فایل Compose تعریف شوند، در یک شبکه داخلی قرار میگیرند و با نام سرویس یکدیگر را پیدا میکنند:
services:
ollama:
image: ollama/ollama:latest
restart: unless-stopped
volumes:
- ollama_data:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
n8n:
image: docker.n8n.io/n8nio/n8n:latest
restart: unless-stopped
ports:
- "127.0.0.1:5678:5678"
environment:
N8N_SECURE_COOKIE: "false"
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- ollama
volumes:
ollama_data:
n8n_data:
به این نکات توجه کنید:
- برای Ollama هیچ پورتی منتشر نشده است. n8n از طریق شبکه داخلی به آن دسترسی دارد و نیازی نیست پورت ۱۱۴۳۴ روی اینترنت باز باشد.
- پورت n8n فقط روی
127.0.0.1منتشر شده است. برای دسترسی از بیرون، آن را پشت Reverse Proxy با HTTPS قرار دهید و تنظیمN8N_SECURE_COOKIEرا حذف کنید. این تنظیم فقط برای تست موقت از طریق تونل SSH است. - بخش
deployفقط وقتی لازم است که سرور GPU انویدیا دارد و NVIDIA Container Toolkit نصب شده است. روی سرور بدون GPU آن را حذف کنید.
برای محیط عملیاتی با PostgreSQL، HTTPS خودکار و بکاپ، از نسخه کاملتر در راهاندازی n8n + PostgreSQL + Ollama استفاده کنید. بعد از اجرا، مدل را دانلود کنید:
docker compose up -d
docker compose exec ollama ollama pull qwen2.5:7b
سناریو ۲: Ollama روی سیستمعامل، n8n در Docker
اگر Ollama را با اسکریپت رسمی مستقیماً روی سرور نصب کردهاید (راهنما در نصب Ollama روی سرور GPU)، دو کار لازم است:
۱. نام host.docker.internal را برای کانتینر n8n تعریف کنید. در لینوکس این نام بهطور خودکار وجود ندارد:
n8n:
extra_hosts:
- "host.docker.internal:host-gateway"
۲. Ollama را روی رابط شبکه Docker در دسترس کنید. بهطور پیشفرض Ollama فقط روی 127.0.0.1 گوش میدهد و از داخل کانتینر قابل دسترسی نیست:
sudo systemctl edit ollama
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
sudo systemctl restart ollama
هشدار مهم: با این تنظیم، Ollama روی همه رابطهای شبکه گوش میدهد. حتماً پورت ۱۱۴۳۴ را در فایروال برای اینترنت ببندید و فقط برای شبکه Docker باز بگذارید. Ollama احراز هویت ندارد و API باز آن را هر کسی میتواند استفاده کند.
سناریو ۳: Ollama روی سرور جداگانه
در این معماری، n8n روی یک VPS معمولی و Ollama روی یک سرور GPU اجرا میشود. مزیت آن این است که سرور GPU را میتوان بین چند سرویس مشترک کرد. ارتباط دو سرور باید از طریق شبکه خصوصی یا VPN برقرار شود و پورت ۱۱۴۳۴ در سرور GPU فقط برای IP سرور n8n باز باشد:
sudo ufw allow from 10.0.0.5 to any port 11434 proto tcp
ساخت Credential در n8n
- در n8n از منوی Credentials، گزینه Add Credential را انتخاب و نوع Ollama را جستجو کنید.
- در فیلد Base URL، آدرس متناسب با سناریوی خود را از جدول بالا وارد کنید.
- روی Save کلیک کنید. اگر اتصال برقرار باشد، پیام موفقیت نمایش داده میشود.
- در ورکفلو، نود AI Agent یا Basic LLM Chain را اضافه کنید و نود Ollama Chat Model را به آن متصل کنید. مدلهای دانلودشده در فهرست ظاهر میشوند.
یک نمونه کامل ساخت ایجنت را در ساخت AI Agent شخصی با n8n و Ollama دنبال کنید.
انتخاب مدل برای n8n
- برای نود AI Agent مدل باید از Tool Calling پشتیبانی کند. Qwen ۲.۵ و Llama ۳.۱ از گزینههای مناسب هستند. مدلهایی که این قابلیت را ندارند، ابزارها را صدا نمیزنند یا خروجی نامعتبر تولید میکنند.
- برای کارهای ساده مثل دستهبندی، خلاصهسازی و استخراج اطلاعات، مدلهای ۳ تا ۸ میلیاردی سریع و کافی هستند.
- برای فارسی و استدلال پیچیدهتر، مدلهای ۱۴ تا ۳۲ میلیاردی نتیجه بهتری دارند، اما به VRAM بیشتری نیاز دارند. محاسبه آن را در VRAM مورد نیاز هوش مصنوعی ببینید.
- طول متن: ایجنتها با تاریخچه گفتگو و توضیح ابزارها، متن طولانی میسازند. اگر مدل دستورها را «فراموش» میکند، پارامتر Context Length را در نود افزایش دهید.
رفع خطاهای رایج
| خطا | علت محتمل | راهحل |
|---|---|---|
| ECONNREFUSED 127.0.0.1:11434 | استفاده از localhost داخل کانتینر | آدرس را طبق جدول سناریوها اصلاح کنید |
| getaddrinfo ENOTFOUND ollama | دو سرویس در یک شبکه Docker نیستند | هر دو را در یک فایل Compose یا یک شبکه مشترک قرار دهید |
| Timeout یا پاسخ بسیار کند | مدل روی CPU اجرا میشود یا در VRAM جا نشده | ollama ps را بررسی کنید؛ مدل کوچکتر یا GPU |
| model not found | مدل دانلود نشده یا نام اشتباه است | ollama list و نام دقیق با برچسب |
| ایجنت ابزارها را صدا نمیزند | مدل از Tool Calling پشتیبانی نمیکند | مدلی مثل Qwen ۲.۵ یا Llama ۳.۱ انتخاب کنید |
برای تست مستقیم اتصال از داخل کانتینر n8n:
docker compose exec n8n wget -qO- http://ollama:11434/api/tags
اگر فهرست مدلها با فرمت JSON برگردانده شد، مشکل شبکه وجود ندارد و باید تنظیمات Credential یا نام مدل را بررسی کنید.
سوالات متداول
حداقل مشخصات سرور برای n8n و Ollama چیست؟
برای مدلهای ۷ تا ۸ میلیاردی: ۴ هسته پردازنده، ۱۶ گیگابایت RAM و ترجیحاً یک کارت گرافیک با حداقل ۸ تا ۱۲ گیگابایت VRAM. بدون GPU هم کار میکند، اما پاسخها چند برابر کندتر است. جزئیات در منابع مورد نیاز n8n.
آیا باید پورت ۱۱۴۳۴ را باز کنم؟
خیر. در سناریوی Docker Compose، n8n از شبکه داخلی به Ollama وصل میشود و هیچ پورتی لازم نیست. باز کردن این پورت روی اینترنت، مدل شما را در اختیار همه قرار میدهد.
میتوانم همزمان از Ollama و OpenAI در n8n استفاده کنم؟
بله. برای هر نود میتوانید مدل متفاوتی انتخاب کنید؛ مثلاً کارهای حساس یا پرحجم با Ollama و کارهای پیچیده با یک API تجاری.
چرا اولین درخواست کند است و بعدیها سریع؟
در اولین درخواست، مدل از دیسک در حافظه GPU بارگذاری میشود. با تنظیم OLLAMA_KEEP_ALIVE روی مقدار بالاتر، مدل در حافظه باقی میماند.
سرور آماده برای n8n و هوش مصنوعی محلی
با سرورهای GPU تراست هاست n8n و Ollama را روی یک سرور اجرا کنید، یا n8n را روی سرور مجازی و مدل را روی سرور GPU جداگانه قرار دهید.