~/ / Статьи об ИИ / Локальные LLM на VPS / Подключаем Dify к Ollama на собственном VPS
Подключаем Dify к Ollama на собственном VPS
Dify — это платформа для создания ИИ-приложений, которую можно запустить на собственном сервере. Модель запускает Ollama. В этой статье мы соединяем их на одном VPS: какого размера должен быть сервер, как запустить Dify, какие поля просит плагин Ollama и почему адрес, который работает на ноутбуке, может не работать внутри Docker. Здесь также сказано, где документация заканчивается, чтобы вы знали, что нужно проверить самостоятельно.
Опубликовано: · 6 мин чтения · Факты проверены по официальной документации и репозиториям 2026-10-27. Dify быстро меняется, поэтому прочитайте примечания к выпуску той версии, которую устанавливаете.
Что нужно перед началом
В руководстве Dify по самостоятельному хостингу указан минимум для самого Dify. Модели нужна собственная память сверх этого, поэтому два числа нужно сложить. Оценка ниже даёт цифру для модели. Прибавлять её к минимуму Dify — наше практическое правило, а не утверждение из документации Dify.
| Пункт | Что говорится в руководстве Dify |
|---|---|
| CPU | CPU >= 2 Core |
| Память | RAM >= 4 GiB |
| Docker Compose | Для Dify нужен Docker Compose версии 2.24.0 или новее. |
| Git, curl, jq | Команда клонирования ниже использует git, curl и jq. |
Попробовать: Local LLM Memory Estimator
Оценка
- Веса модели
- 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 |
| Перейти в папку Docker | cd dify/docker |
| Скопировать файл настроек | cp .env.example .env |
| Создать токен для бэкенда агента | openssl rand -base64 32 |
| Запустить Dify | docker 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 Type | Chat — для чата, вызова инструментов и работы с изображениями. На странице в 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, примените свои изменения заново к файлу нового выпуска, потому что в выпуск могут добавиться обязательные службы.
Источники
- Dify documentation: Deploy with Docker Compose
- Dify documentation: Model providers
- Dify documentation: Environment variables
- Dify official plugins: Ollama plugin README
- Dify Marketplace: Ollama plugin
- Dify repository: docker-compose.yaml
- Docker documentation: docker container run (--add-host)
- Docker documentation: Compose services (extra_hosts)
- Ollama documentation: FAQ
Читайте дальше
- Локальная LLM без дорогого ПК: руководство для начинающих по работе через VPSНет мощного ПК? Арендуйте VPS и запустите небольшую локальную LLM из браузера: шесть шагов от оценки памяти до защищённого экрана чата, с честным описанием ограничений.
- nginx перед Ollama: базовая аутентификация, HTTPS и настройки потоковой передачиБезопасный доступ к Ollama снаружи: nginx как прокси, базовая аутентификация, HTTPS, настройки потоковой передачи и таймаутов, правило файрвола, по официальной документации.
- Open WebUI на VPS: запуск в Docker и подключение к OllamaЗапуск Open WebUI в Docker и подключение к Ollama на собственном сервере: команды, первая учётная запись, два типа подключения и обновление.
- Вызов локальной модели из кода: структурированный вывод и OpenAI-совместимый API в OllamaОграничьте вывод локальной модели с помощью JSON Schema и обращайтесь к Ollama из клиентов в стиле OpenAI: что говорит официальная документация и что не поддерживается.