اتصال n۸n به Ollama روی یک سرور؛ نصب، تنظیم و رفع خطا

اتصال n8n به Ollama روی یک سرور؛ نصب، تنظیم و رفع خطا

جدول محتوا 👇

ترکیب 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

  1. در n8n از منوی Credentials، گزینه Add Credential را انتخاب و نوع Ollama را جستجو کنید.
  2. در فیلد Base URL، آدرس متناسب با سناریوی خود را از جدول بالا وارد کنید.
  3. روی Save کلیک کنید. اگر اتصال برقرار باشد، پیام موفقیت نمایش داده می‌شود.
  4. در ورک‌فلو، نود 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 جداگانه قرار دهید.

cPanel چیست؟ آموزش ۷ بخش اصلی پنل مدیریت هاست

مشاوره تراست‌هاست​

با متخصصان و کارشناسان به صورت رایگان!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *