toolkitbox

~/ / Статьи об ИИ / Локальные LLM на VPS / Подключаем Dify к Ollama на собственном VPS

Подключаем Dify к Ollama на собственном VPS

Dify — это платформа для создания ИИ-приложений, которую можно запустить на собственном сервере. Модель запускает Ollama. В этой статье мы соединяем их на одном VPS: какого размера должен быть сервер, как запустить Dify, какие поля просит плагин Ollama и почему адрес, который работает на ноутбуке, может не работать внутри Docker. Здесь также сказано, где документация заканчивается, чтобы вы знали, что нужно проверить самостоятельно.

Опубликовано: · 6 мин чтения · Факты проверены по официальной документации и репозиториям 2026-10-27. Dify быстро меняется, поэтому прочитайте примечания к выпуску той версии, которую устанавливаете.

Что нужно перед началом

В руководстве Dify по самостоятельному хостингу указан минимум для самого Dify. Модели нужна собственная память сверх этого, поэтому два числа нужно сложить. Оценка ниже даёт цифру для модели. Прибавлять её к минимуму Dify — наше практическое правило, а не утверждение из документации Dify.

ПунктЧто говорится в руководстве Dify
CPUCPU >= 2 Core
ПамятьRAM >= 4 GiB
Docker ComposeДля Dify нужен Docker Compose версии 2.24.0 или новее.
Git, curl, jqКоманда клонирования ниже использует git, curl и jq.

Попробовать: Local LLM Memory Estimator

Модель

Тег Ollama qwen3:8b, квантование Q4_K_M, размер загрузки 5.2 GB.

Оценка

Веса модели
4.84 GiB
Кэш KV
0.56 GiB
Запас
1.00 GiB
Итого
6.41 GiB (6.88 GB)
Наименьший распространённый объём памяти, в который помещается
8 GiB

Это оценка. Она не включает вычислительные буферы рантайма и предполагает, что у каждого слоя одинаковая форма KV. Измерьте реальный запуск, прежде чем выбирать тариф.

Данные о модели проверены 2026-10-26.

Источники: Ollama library · Конфигурация модели (config.json) · Ollama FAQ

Всё выполняется в вашем браузере. Ничего не загружается.

Шаг 1: запускаем Dify через Docker Compose

Это команды из руководства Dify по самостоятельному хостингу. Первая из них скачивает с GitHub тег последнего выпуска, так что вы начинаете с релиза, а не с незавершённой ветки. На момент нашей проверки последним выпуском была версия 1.18.0 (опубликована 2026-10-23).

ШагКоманда
Клонировать последний выпускgit clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git
Перейти в папку Dockercd dify/docker
Скопировать файл настроекcp .env.example .env
Создать токен для бэкенда агентаopenssl rand -base64 32
Запустить Difydocker compose up -d

Перед запуском впишите токен, который выведет openssl, в .env как DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN. В руководстве сказано, что без него бэкенд агента и его песочница не запускаются.

Шаг 2: создаём учётную запись администратора

После того как контейнеры запущены, в руководстве сначала предлагается открыть страницу инициализации администратора: http://your_server_ip/install на сервере или http://localhost/install на вашем собственном компьютере. Создайте там учётную запись, затем войдите по адресу http://your_server_ip.

В документации не сказано, кто может открыть эту страницу до того, как учётная запись создана. Наша рекомендация, а не утверждение из документов: создайте учётную запись сразу после запуска и прочитайте статью о защите сервера, прежде чем оставлять Dify открытым в интернет.

Шаг 3: добавляем плагин Ollama и модель

В актуальной документации Dify поставщики моделей устанавливаются через Integrations > Model Provider или через Marketplace, после чего на карточке поставщика нужно нажать Setup. Названия меню меняются от версии к версии, поэтому найдите список поставщиков в своей версии. На странице плагина Ollama в Marketplace (версия 1.0.3 на момент нашей проверки) сказано: установите Ollama, запустите модель и убедитесь, что её локальный API работает, прежде чем добавлять её в Dify.

Вот поля плагина — по его README и по странице в Marketplace.

ПолеЧто ввести
Model NameМодель Ollama, например gemma3, qwen3, deepseek-r1 или gpt-oss.
Base URLКорень хоста Ollama, http://<your-ollama-host>:11434 для локального Ollama. Не добавляйте /api: плагин сам добавляет /api/chat, /api/generate и /api/embed.
API KeyДля локального Ollama необязателен. Нужен только для Ollama cloud.
Model TypeChat — для чата, вызова инструментов и работы с изображениями. На странице в Marketplace также перечислены текстовые эмбеддинги и rerank.
Model Context LengthУкажите размер контекстного окна модели.
Upper bound for max tokensНаибольшее значение max tokens (num_predict), которое разрешает Dify.
Vision support / Function call supportВыбирайте Yes только для модели, которая это поддерживает.
Attach Dify app_id as request headersПо умолчанию выключено. Если включить, Dify добавляет заголовки X-Dify-App-Id и X-Dify-Source в свои вызовы к Ollama. Ollama их не использует.

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

Шаг 4: адрес, который работает изнутри Docker

Dify работает в контейнерах, а Ollama — на самом сервере. Внутри контейнера localhost — это сам контейнер, а не сервер. В README плагина сказано: используйте адрес хоста, до которого может дотянуться контейнер Dify, например http://host.docker.internal:11434 или IP-адрес в LAN.

Это имя объясняет документация Docker. Параметр --add-host поддерживает специальное значение host-gateway, которое преобразуется во внутренний IP-адрес хоста, и для этого имени принято использовать host.docker.internal. Там же сказано, что Docker Desktop разрешает это имя автоматически. Пример из документации: --add-host host.docker.internal=host-gateway.

Что мы проверилиРезультат
Определяет ли docker-compose.yaml из Dify имя host.docker.internal?Нет. В файле из ветки main мы не нашли ни host.docker.internal, ни записи extra_hosts.
Описывает ли справочник Docker Compose параметр extra_hosts?Да, как сопоставления имён хостов в виде HOSTNAME=IP, которые попадают в /etc/hosts. На прочитанной нами странице host-gateway для extra_hosts не упоминается.
Слушает ли Ollama адреса, кроме 127.0.0.1?По умолчанию нет. В FAQ Ollama сказано, что он привязывается к 127.0.0.1, порт 11434, и что адрес привязки меняет переменная окружения OLLAMA_HOST.

Наше прочтение, а не утверждение из документов: на сервере с Linux имя хоста нужно добавить самостоятельно или использовать адрес самого сервера, и, возможно, придётся также изменить адрес, который слушает Ollama. Такое сочетание мы не проверяли. Если вы измените OLLAMA_HOST, порт 11434 станет доступен с других машин, а у Ollama нет собственного пароля, поэтому закройте этот порт от внешнего мира в файрволе. Параметры описаны в статьях об установке Ollama и о том, как поставить перед ним nginx.

Шаг 5: эмбеддинги и то, чего плагин не делает

На странице плагина в Marketplace сказано, что он поддерживает потоковую передачу, размышление (thinking), работу с изображениями, вызов инструментов и текстовые эмбеддинги, а векторы эмбеддингов имеют нормализацию L2-normalized. Для эмбеддингов вы добавляете вторую модель типа text embeddings с моделью эмбеддингов из библиотеки Ollama.

Там же перечислено, что не входит в плагин. У Ollama нет собственной конечной точки rerank, поэтому для модели rerank нужен совместимый с OpenAI сервис rerank. Веб-поиск тоже не входит в комплект. Для него нужен отдельный плагин-инструмент Dify или внешний рабочий процесс.

Если подключение не удаётся

  • Выполните ollama ps и проверьте, что модель загружена, а затем откройте на сервере http://127.0.0.1:11434, чтобы убедиться, что Ollama отвечает.
  • Проверьте Base URL. Это корень хоста, с портом и без /api.
  • Проверьте, что контейнеры Dify могут добраться до этого адреса. В документации Dify сказано, что его исходящие запросы идут через прокси, который блокирует внутренние и частные диапазоны IP-адресов. На странице названы узлы HTTP и загрузка изображений, а о том, идут ли запросы поставщиков моделей тем же путём, не сказано. Если вы используете частный адрес и он отклоняется, загляните и сюда.
  • Прочитайте журналы контейнеров командой docker compose logs. Списка сообщений об ошибках в документации мы не нашли.

Как поддерживать Dify в актуальном состоянии

В руководстве сказано, что шаги обновления различаются между выпусками, поэтому следуйте руководству по обновлению для той версии, на которую переходите; оно находится на странице Dify Releases. После обновления сравните .env.example со своим .env: там могут быть новые или изменённые переменные. Если вы меняли docker-compose.yaml, примените свои изменения заново к файлу нового выпуска, потому что в выпуск могут добавиться обязательные службы.

Источники

Читайте дальше