Найти в Дзене
Экспансия ИИ ботов

Как установить n8n в docker c возможностью запуска локальных ИИ моделей.

В этой статье мы установим локально n8n + платформу Ollama которая позволит нам запускать ИИ модели локально и также встанет Qdrant это система управления векторными базами данных. Это позволит одной установкой закрыть все вопросы для начинающих энтузиастов n8n. Все это хозяйство сейчас в состоянии покоя кушает около 920Мб оперативной памяти. Моя тестовая машина, на которой это все крутиться, состоит из: Самое тяжелое, что я делал, и делаю постоянно это транскрибация разговора двух людей длительностью в час. Это грузит проц примерно на 30-40%. При загрузке в векторную базу данных с подключенной локальной Ollama Embedding файла Excel на 3256 строк тоже примерно 30%-40%. Так что, если будете что то серьезное ворочать, вот вам инфа для пристрела. Видеокарты у меня нет, все обрабатывается процессором. Как и в первой статье все будем лепить на Ubuntu 22.04. Собственно для начала нам нужен сам docker sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properti
Оглавление

Требования к железу.

В этой статье мы установим локально n8n + платформу Ollama которая позволит нам запускать ИИ модели локально и также встанет Qdrant это система управления векторными базами данных. Это позволит одной установкой закрыть все вопросы для начинающих энтузиастов n8n. Все это хозяйство сейчас в состоянии покоя кушает около 920Мб оперативной памяти. Моя тестовая машина, на которой это все крутиться, состоит из:

  1. Ryzen 7950х
  2. Kingston FURY Renegade Silver RGB DDR5, 16 ГБx2 шт, 6000 МГц, 32(CL)-38-38
  3. ASUS TUF GAMING X670E-PLUS WIFI
  4. Какой то M2 SSD диск )

Самое тяжелое, что я делал, и делаю постоянно это транскрибация разговора двух людей длительностью в час. Это грузит проц примерно на 30-40%. При загрузке в векторную базу данных с подключенной локальной Ollama Embedding файла Excel на 3256 строк тоже примерно 30%-40%. Так что, если будете что то серьезное ворочать, вот вам инфа для пристрела. Видеокарты у меня нет, все обрабатывается процессором. Как и в первой статье все будем лепить на Ubuntu 22.04.

Установка docker

Собственно для начала нам нужен сам docker

sudo apt update

sudo apt install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

sudo apt update

sudo apt install docker-ce -y

sudo systemctl status docker

Если видим

-2

Значит все в порядке.

Далее ставим docker compose

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

Можно шагать дальше.

Self-hosted-ai-starter-kit

В этот раз будет немного полегче, ведь кто то заранее подумал и создал self-hosted-ai-starter-kit, которым мы и воспользуемся.

Идём на

GitHub - n8n-io/self-hosted-ai-starter-kit: The Self-hosted AI Starter Kit is an open-source template that quickly sets up a local AI environment. Curated by n8n, it provides essential tools for creating secure, self-hosted AI workflows.

И начинаем читать, особенно раздел Installation

Если у вас видеокарта NVidia то для установки используем:

git clone https://github.com/n8n-io/self-hosted-ai-starter-kit.git
cd self-hosted-ai-starter-kit

docker compose --profile gpu-nvidia up

Если у вас видеокарта от AMD:

git clone https://github.com/n8n-io/self-hosted-ai-starter-kit.git
cd self-hosted-ai-starter-kit

docker compose --profile gpu-amd up

С Mac версией маководы думаю разберутся ) и если вам нужна просто процессорная версия то ставим:

git clone https://github.com/n8n-io/self-hosted-ai-starter-kit.git
cd self-hosted-ai-starter-kit

docker compose --profile cpu up

-3

Терпеливо ждем когда все скачается и установится.

Когда все остановится на

-4

Установка закончена.

Набираем:

docker ps

-5

Весь комплект установлен и готов к бою.

Если вдруг вы не планируете этот сервер публиковать в интернет, уже сейчас можно пройти по http://11.22.33.44:5678 (11.22.33.44 ip адрес сервера на который производилась установка) и увидите

-6

n8n требует подключения по https что бы это обойти в конфиг нужно добавить строку

N8N_SECURE_COOKIE=false

Но ее нужно вставить не как прошлый раз в .env, а в файл docker-compose.yml который находится в папке

/root/self-hosted-ai-starter-kit

если вы ставили из под root. Если ставили под пользователем то

/home/vasya/self-hosted-ai-starter-kit

Где vasya это имя пользователя

Открываем

nano /root/self-hosted-ai-starter-kit/docker-compose.yml

Добавляем строку

-7

После того как добавили, нажимаем CTRL+X, потом жмем Y, затем Enter

Перезапускаем docker. Команды эти нужно выполнять из папки где лежит файл docker-compose.yml

docker compose down && docker compose up -d

Теперь еще раз пробуем

http://11.22.33.44:5678

-8

Все работает.

Nginx и доступ через https

Далее, делаем все через https. Я просто скопирую блок о том, как это делать из предыдущей статьи.

sudo apt install -y nginx

Создадим и активируем конфигурацию nginx для n8n

sudo nano /etc/nginx/sites-available/n8n

откроется редактор nano с пустым файлом, нужно в него вставить

server {
listen 80;
server_name n8n.chetko.ru;

location / {
proxy_pass http://localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

# WebSocket headers
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}

server_name соответственно меняем на свой домен

После того как вставили, нажимаем CTRL+X, потом жмем Y, затем Enter

Это конфиг для прокси, который будет перенаправлять запросы с 80 порта на локально запущенный сервис n8n который работает на порту 5678.

Теперь включим нашу конфигурацию и перезапустим nginx

sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Поставим Certbot что бы получить сертификат Let's Encrypt.

У некоторых провайдеров вместе с ubuntu ставиться firewall ufw, который будет блокировать проверку домену в момент выдачи сертификата. Что бы выяснить есть ли он, идем на Checkhost и делаем проверку

-9

Если у вас 200 ОК то firewall не блокирует, если Connection Timeout, значит блокировка есть. Делаем

sudo ufw status

в ответ вы должны получить как минимум

Status: active

To Action From

-- ------ ----

22/tcp ALLOW Anywhere

22/tcp (v6) ALLOW Anywhere (v6)

Это минимальный набор правил что бы вы могли зайти на свой сервер по ssh. Добавим сюда разрешения к нужным нам портам командами

sudo ufw allow 80/tcp

sudo ufw allow 443/tcp

Теперь повторите проверку через check-host и должно быть по всем странам 200 ОК

Ставим Certbot и запрашиваем сертификат

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d n8n.chetкo.ru

Домен вместо n8n.chetкo.ru вставляем свой !

Вам зададут 3 вопроса, первый это email куда отправить уведомление для продления сертификата, вводим в ответ на первый вопрос свою электронную почту. Второй вопрос принимаете ли лицензионное соглашение, на него нужно ответить Y. Третий вопрос типа разрешить партнерам вас спамить на эту почту, можно ответить на третий вопрос N.

Если ваша А запись для домена сделала правильно, то certbot сам проверит ваш домен, запросит и получит сертификат и пропишет его в конфиг nginx.

На этом конфигурация n8n закончена.

Установка локальных моделей через Ollama

Теперь если вернемся к

docker ps

-10

Мы видим что у нас есть контейнер ollama. Через него мы и будем устанавливать модели ИИ для локального использования.

Идём

https://ollama.com/search

И для пример выберем

https://ollama.com/library/nomic-embed-text

Копируем строку

-11

И запускаем ее в контейнере ollama

docker exec -it ollama ollama pull nomic-embed-text

Модель nomic-embed-text скачается и установится. Теперь если вы будете загружать данные в векторную базу данных в n8n это модель будет доступна

-12

Таким же образом вы можете скопировать установку любой модели с сайта ollama и установить ее через контейнер ollama.

Так же обратите внимание как настроен доступ к локальной ollama

-13

Векторная база данных Qdrant

И последнее, вернемся к docker ps

-14

Мы видим что Qdrant работает на порту 6333. Посмотрим что там.

-15

Собственно это и есть dashboard локально запущенного Qdrant.

Можете в ней наблюдать свои загруженные Collections

-16

Вот в принципе и все на сегодня. Надеюсь будет полезно.

P.S. Я не нашел в телеге группу русскоязычных энтузиастов n8n и создал свою, кто хочет разбираться и делиться опытом приглашаю:

ИИ агенты в n8n