n8n и нейросеть на своём сервере: подключение без облака за 10 минут
Автоматизация заявок с помощью n8n и нейросети на своём сервере занимает десять минут, если знать, где ждут подводные камни с сетью, приватностью и хранением данных.
Связка n8n с локальной языковой моделью позволяет обрабатывать тексты без отправки в облако, но текст заявки всё равно оседает в истории запусков, журналах контейнеров и бэкапах, и об этом забывают чаще всего.
Платформа n8n (визуальный конструктор автоматизаций, работающий на вашем сервере) умеет вызывать нейросеть через обычный HTTP-запрос. Ollama (программа для запуска языковых моделей локально) поднимается в соседнем контейнере Docker и отвечает по API. Вместе они дают рабочую цепочку: триггер принимает заявку, нейросеть пишет резюме и ставит категорию, следующий узел разбирает ответ. Пример ниже собран на n8n 2.43.5 и Ollama 0.40.4, названия узлов и формат настроек от версии к версии меняются.
Что понадобится?
- Сервер с Docker и Docker Compose (подойдёт даже VPS с 4 ГБ оперативной памяти)
- n8n версии 2.43.5 или новее
- Ollama версии 0.40.4 или новее
- Модель для Ollama, например qwen2.5:1.5b (работает на процессоре без видеокарты, но отвечает не мгновенно)
- SSH-доступ к серверу для туннеля к интерфейсу n8n
- 10 минут на базовую настройку, ещё 15 на проверку приватности
Пошаговая инструкция
1. Создайте файл docker-compose.yml с двумя сервисами и изолированной сетью.
services:
n8n:
image: docker.n8n.io/n8nio/n8n:2.43.5
ports:
- "127.0.0.1:5678:5678"
networks: [frontend, inference]
ollama:
image: ollama/ollama:0.40.4
environment:
- OLLAMA_NO_CLOUD=1
networks: [inference]
networks:
frontend: {}
inference:
internal: true
Ollama подключена только к сети inference с флагом internal: она не может выйти в интернет, и её порт снаружи не виден. n8n стоит в двух сетях: через frontend интерфейс слушает на 127.0.0.1, вы подключаетесь к нему по SSH-туннелю. У n8n выход наружу остаётся, поэтому приватность дальше держится на его настройках и проверке трафика.
2. Скачайте модель до переключения на изолированную сеть.
Пока Ollama стоит в обычной сети (до включения флага internal), выполните:
docker exec -it ollama ollama pull qwen2.5:1.5b
Из internal-сети команда ollama pull до реестра не достучится.
3. Проверьте связь между контейнерами.
Отправьте из контейнера n8n запрос к Ollama по имени сервиса:
curl http://ollama:11434/api/tags
Этот запрос вернёт список скачанных моделей. Генерацию (инференс, то есть процесс получения ответа от модели) он не запускает и модель в память не грузит. После него отправьте короткий тестовый запрос к /api/chat, чтобы убедиться, что модель отвечает.
4. Выберите один из двух API и придерживайтесь его.
У Ollama два маршрута с разными адресами и разными полями ответа:
- Нативный API:
POST http://ollama:11434/api/chat, текст ответа в полеmessage.content - OpenAI-совместимый API:
POST http://ollama:11434/v1/chat/completions, текст ответа в полеchoices[0].message.content
В примере используется нативный /api/chat без стриминга (потоковой передачи), чтобы узел HTTP Request получал ответ одним JSON-объектом.
5. Соберите workflow из трёх узлов в интерфейсе n8n.
Цепочка: триггер (форма или вебхук) принимает текст заявки, узел HTTP Request отправляет POST на http://ollama:11434/api/chat с моделью и промптом (текстовой инструкцией для нейросети), третий узел достаёт ответ из JSON.
6. Настройте credentials, если между сервисами стоит шлюз.
По умолчанию Ollama ключей не проверяет, её защищает изоляция сети. Если добавляете обратный прокси с авторизацией, ключ храните в n8n Credentials через Generic Credential Type с Header Auth. Ключ шифрования базы n8n бэкапьте вместе с базой: потеряете его, и все сохранённые секреты станут нечитаемыми.
При подключении n8n к локальному OpenAI-совместимому API вы увидите обязательное поле API Key, даже если сервер ключи не проверяет. Вписать можно любую строку: проверять её некому.
7. Составьте карту данных перед первым прогоном с реальными заявками.
Для каждого шага распишите: что он получает, куда обращается, что сохраняет. Добавьте фоновые обращения наружу: телеметрию (автоматическая отправка статистики использования), проверку обновлений, DNS-запросы. На первом прогоне с выдуманной заявкой и без внешних интеграций такая карта займёт три-четыре строки, и каждую легко проверить.
Заявка в форме: «Не работает принтер на третьем этаже, модель HP LaserJet, мигает красный индикатор после замены картриджа».
Промпт для модели:
Сделай короткое резюме заявки в одно предложение и укажи категорию из списка: оборудование, ПО, сеть, доступ.
Ответ модели qwen2.5:1.5b (нативный API, поле message.content):
Резюме: Принтер HP LaserJet на третьем этаже мигает красным после замены картриджа. Категория: оборудование.
Качество резюме у маленькой модели скромное: на длинных или нестандартных заявках категория может определяться неверно. На своих данных результат придётся проверить.
localhost не работает из контейнера. Curl с хоста к localhost:11434 отвечает, а n8n получает отказ в соединении. Внутри контейнера localhost указывает на сам контейнер n8n. Обращайтесь по имени сервиса из Compose, здесь это ollama.
Текст заявки оседает не только в модели. n8n по умолчанию хранит входы и выходы каждого узла в истории запусков. Туда же попадают ошибки, ручные прогоны и закреплённые тестовые данные. Журналы контейнеров и бэкапы базы n8n тоже содержат полный текст.
Экспорт workflow выдаёт секреты. JSON-файл процесса содержит имена credentials и ссылки на них. Узел, созданный импортом команды curl, может унести заголовок с ключом прямо в параметры. Перед отправкой кому-либо вычистите закреплённые данные, реальные заголовки и внутренние адреса.
Токен в URL или в тексте узла. Ключ авторизации не должен оказаться в адресной строке, тексте заявки или коде узла. Храните его только в credentials n8n, где он зашифрован.
Что делать с этим прямо сейчас?
Авторам Дзена. Связка n8n с нейросетью на своём сервере подойдёт для автоматической обработки комментариев, классификации обращений от читателей или генерации черновиков ответов. Модель не отправляет данные в облако, но проверьте, что история запусков n8n не хранит тексты подписчиков дольше, чем нужно.
Маркетологам. Можно автоматизировать сортировку лидов из форм: n8n принимает заявку, нейросеть категоризирует и пишет резюме, результат уходит в CRM. Экономия на API платных моделей ощутима при потоке от нескольких сотен заявок в день.
Предпринимателям в РФ и СНГ. Ollama и n8n бесплатны и ставятся на любой российский VPS. Данные не покидают сервер (при правильной настройке сети), что упрощает соответствие требованиям 152-ФЗ о персональных данных. Из локальных моделей для русского языка стоит попробовать варианты на базе Qwen или Mistral, доступные через Ollama.
Десять минут на подключение n8n к нейросети, это правда. Десять минут на то, чтобы сделать это безопасно, нет. По моему опыту, основная работа начинается после первого «Hello World»: нужно вычистить историю запусков от чувствительных данных, проверить, что контейнер Ollama действительно не ходит наружу, и протестировать качество ответов маленькой модели на реальных текстах. Маленькая qwen2.5:1.5b годится для демонстрации и простых задач, но для серьёзной классификации на русском языке я бы взял модель покрупнее и проверил результат на полусотне реальных заявок, прежде чем пускать в работу. Честная оговорка: стриминг, structured output (структурированный вывод) и вызов инструментов (tools) в связке n8n и Ollama от версии к версии ведут себя по-разному, готового рецепта на все случаи нет.
Попробуйте AI-ассистент dzen.guru
Автоматизируйте рутину с контентом, пока нейросеть разбирает заявки за вас
Попробовать бесплатноГлавное, что стоит вынести: n8n с локальной нейросетью работает, но «локальное» не значит «приватное по умолчанию». Прежде чем пускать реальные данные, пройдитесь по карте: где оседает текст, кто имеет доступ к истории запусков и куда контейнер n8n ходит в фоне.

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».
Читайте также

ИИ-браузер нажал «купить» сам: как отказ от LLM снизил цену прогона в 10 раз
Когда ИИ управляет браузером, главный вопрос не в том, насколько умна модель, а в том, сколько свободы ей давать: разработчики расширения для поиска промокодов…

Оживление фото нейросетью за минуту: какой подход даёт меньше артефактов
Оживление фото с помощью нейросетей перестало требовать навыков анимации или дорогого софта: сегодня достаточно одного снимка и текстового описания, чтобы…

Безопасность роботов Eilik оказалась нулевой: фото и записи владельцев лежали в открытом доступе
Компания Energize Lab, выпускающая миниатюрных роботов-компаньонов Eilik и Eiliko с облачным ИИ-диалогом, подтвердила критические проблемы с безопасностью…
Комментарии