- Ollama с загруженной локальной моделью (актуальный тег и размер сверьте в каталоге моделей Ollama)
- n8n: self-hosted через npx n8n или в Docker
- curl для проверки HTTP-API
- Свободные порты: 11434 (Ollama), 5678 (n8n по умолчанию)
- Запас ОЗУ/VRAM под выбранную модель

df -h.npx, а не в контейнере.ss -ltnp | grep -E '11434|5678' (пустой вывод — хорошо).localhost указывает на сам контейнер, а не на хост — это разбирается в Шаге 2.Что сделать: поставить Ollama, убедиться, что HTTP-API отвечает, скачать одну модель.
curl -fsSL https://ollama.com/install.sh | sh
ollama --version
Зачем: Ollama — локальный рантайм (программа, которая держит модель в памяти и отдаёт её по HTTP). После установки она поднимает сервис на 127.0.0.1:11434, и n8n общается с моделью обычными HTTP-запросами, без облака и ключей.
Как проверить: сервис жив и отдаёт список моделей.
curl -s http://localhost:11434/api/tags
Ожидаемый вывод на чистой установке:
{"models":[]}
Пример: загрузка модели и проверка списка.
ollama pull llama3.1
ollama list
ollama list печатает таблицу с колонками NAME, ID, SIZE, MODIFIED. Например, строка вида:
NAME ID SIZE MODIFIED
llama3.1:latest <id> <размер> <дата>
Значения <id>, <размер>, <дата> у вас будут свои — тег llama3.1 взят как пример, актуальное имя и размер сверьте в каталоге моделей Ollama.
Как проверить генерацию:
ollama run llama3.1 "Ответь одним словом: работает?"
На экране появится короткий ответ (например, Работает), после чего вернётся приглашение ввода — модель отвечает, память хватает.

Что сделать: запустить n8n, создать credential (сохранённые учётные данные подключения) типа Ollama с правильным Base URL и собрать минимальный workflow (рабочий поток из узлов).
Зачем: n8n не «встраивает» модель, а вызывает её HTTP-эндпоинт. Всё, что нужно, — указать адрес, по которому n8n дотянется до Ollama.
Вариант A — n8n на хосте:
npx n8n
Вариант B — n8n в Docker. Сохраните docker-compose.yml:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
ports:
- "5678:5678"
volumes:
- n8n_data:/home/node/.n8n
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
n8n_data:
Запуск: docker compose up -d.
Зачем нужен extra_hosts: строка host.docker.internal:host-gateway создаёт внутри контейнера имя, указывающее на хост-машину. Без неё localhost внутри контейнера — это сам контейнер, где Ollama нет.
Как проверить, что n8n поднялся:
curl -s http://localhost:5678/healthz
Ожидаемо: {"status":"ok"}. Откройте http://localhost:5678 — должен появиться интерфейс n8n.
Дальше в интерфейсе:
1. Credentials → Add credential → в поиске Ollama.
2. В поле Base URL укажите:
- http://localhost:11434 — если n8n запущен на хосте;
- http://host.docker.internal:11434 — если n8n в Docker.
3. Сохраните. n8n выполнит проверку соединения — успехом считается отсутствие красной ошибки и подтверждение подключения (точную формулировку интерфейса сверьте с вашей версией n8n).
Пример проверки до похода в UI — Ollama отдаёт OpenAI-совместимый эндпоинт:
curl -s http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"llama3.1","messages":[{"role":"user","content":"Ответь одним словом: работает?"}]}'
В ответе будет JSON с полем choices[0].message.content. Если этот запрос проходит, а credential в n8n — нет, проблема в адресе (см. раздел про ошибки).
Сборка workflow: добавьте узел-триггер (например, Chat Trigger или Manual Trigger), затем узел Ollama Chat Model и свяжите его с Basic LLM Chain либо с агентом. В узле модели выберите созданный credential и ту же модель, что загружали через ollama pull.

Что сделать: прогнать workflow вручную и убедиться, что ответ пришёл от локальной модели.
Зачем: это end-to-end проверка всей цепочки: браузер → n8n → HTTP → Ollama → модель → обратно.
Как проверить: нажмите Execute workflow и отправьте тестовое сообщение, например Сколько будет 2+2?. В панели результата узла появится JSON с ответом модели (поле с текстом ответа зависит от типа узла — сверьтесь с выводом на экране). В списке executions (Executions в левом меню) запуск должен иметь статус Success.
Пример проверки структурированного ответа — попросите модель вернуть JSON, это часто нужно для автоматизации:
curl -s http://localhost:11434/api/chat -d '{
"model": "llama3.1",
"stream": false,
"format": "json",
"messages": [{"role": "user", "content": "Верни JSON вида {\"status\":\"ok\"}"}]
}'
Параметр format: "json" заставляет модель вернуть валидный JSON — его можно сразу разбирать следующим узлом n8n.
Финальный чек-лист:
ollama list показывает загруженную модельcurl http://localhost:11434/api/tags возвращает JSON без ошибкиcurl http://localhost:5678/healthz возвращает {"status":"ok"}Executions запуск отмечен как SuccessТот же стек (локальная модель + n8n-подобная автоматизация) разбирается в гайде Как собрать ИИ-помощника для интернет-магазина на локальной модели — полезно, когда базовая связка уже работает.
Проблема. n8n в Docker не видит Ollama
connect ECONNREFUSED 127.0.0.1:11434127.0.0.1, то есть к самому контейнеру, где Ollama не запущена.http://host.docker.internal:11434 и убедитесь, что в docker-compose.yml есть extra_hosts с host.docker.internal:host-gateway. Перезапустите: docker compose up -d. Проверка изнутри контейнера: docker compose exec n8n curl -s http://host.docker.internal:11434/api/tags
Проблема. Модель не найдена при запуске workflow
model "llama3.1" not found, try pulling it firstllama3.1:8b, а в узле стоит другой тег).ollama list и впишите его в узел посимвольно. Если модели нет — ollama pull <точный-тег>, затем повторите запуск.Проблема. Модель падает при загрузке
signal: killed (в логах Ollama), в n8n — таймаут или пустой ответ.ollama ps.Связка работает, когда ollama list показывает модель, curl http://localhost:11434/api/tags отвечает JSON, а credential в n8n сохраняется без ошибки соединения. Дальше добавляйте в workflow узлы обработки (парсинг JSON, запись в базу, отправка в мессенджер) и проверяйте каждый шаг отдельным запуском.
Можно ли подключить n8n Cloud к Ollama на моём компьютере?
По умолчанию нет: n8n Cloud работает на своих серверах и не имеет доступа к вашему localhost. Нужен либо self-hosted n8n рядом с Ollama, либо публикация эндпоинта через туннель с защитой — конкретные требования сверьте с документацией n8n.
Нужен ли API-ключ для Ollama?
Нет, локальный сервис на 127.0.0.1:11434 по умолчанию отвечает без авторизации. Если вы выставляете порт наружу, закройте его прокси с аутентификацией и файрволом.
Какая модель подойдёт для машины с небольшим объёмом памяти?
Зависит от размера и квантизации: чем сильнее сжатие, тем меньше памяти нужно и тем ниже качество. Ориентируйтесь на таблицу RAM/VRAM по ссылке выше, а точный размер конкретного тега смотрите в ollama list.
Обязательно ли использовать узел Ollama, или хватит OpenAI-совместимого?
Ollama отдаёт эндпоинт /v1/chat/completions, поэтому подойдёт и credential/узел OpenAI-типа с Base URL на ваш локальный адрес. Если позже понадобится облачная модель, схема выдачи доступа разобрана в гайде Как подключить модели OpenAI через Google Cloud.