Короткий ответ: что взять и сколько это стоит
Базу знаний, которая отвечает сотрудникам по вашим регламентам, можно поднять на одном VPS: Dify 1.18 в Docker плюс Ollama с двумя открытыми моделями — qwen2.5:3b отвечает, bge-m3 ищет нужный кусок документа. Документы и вопросы не уходят ни к какому внешнему сервису. Нужен сервер с 4 ядрами и 8 ГБ памяти: AdminVPS Start — 1 289 ₽/мес при оплате за месяц, Timeweb Cloud MSK 80 — 7 000 ₽/мес при оплате за месяц. На стенде 23.10 такая связка ответила верно на 10 вопросов из 10 по выдуманному регламенту, на процессоре без видеокарты — за 17–29 секунд на ответ.
Как это работает: поиск по фрагментам, а не «обучение» на документах
Модель ничего не запоминает о вашей компании. Dify режет документ на фрагменты, а модель эмбеддингов (у нас bge-m3) превращает каждый фрагмент в вектор. Вопрос сотрудника превращается в вектор тем же способом, находятся три ближайших фрагмента, и только их чат-модель получает вместе с вопросом. Такой способ называют RAG — поиск с дополнением ответа.
Отсюда два практических следствия. Обновить базу — значит заменить документ, переобучать ничего не надо. А качество ответа упирается в поиск: если нужный фрагмент не нашёлся, даже большая модель ответит мимо. Поэтому при проверке мы считали две вещи отдельно — нашёл ли поиск нужный кусок и верен ли ответ.
Какой сервер взять
Документация Dify называет минимум для самой платформы: 2 ядра и 4 ГиБ памяти, Docker 19.03+ и Docker Compose 2.24.0+. Это без локальных моделей. На стенде память распределилась так:
| Что запущено | Занято памяти из 7,9 ГБ |
|---|---|
| Dify 1.18.0 после запуска, 16 служб | 2,8 ГБ |
| Dify и Ollama с двумя моделями | 5,1 ГБ |
| Во время ответов на вопросы | 5,4 ГБ (из них Ollama — 2,95 ГБ) |
То есть в 4 ГБ связка не помещается, а в 8 ГБ остаётся около 2,5 ГБ запаса. Диска ушло 25 ГБ: образы Dify весят 11,35 ГБ, модели — 3,1 ГБ.
- AdminVPS Start (линейка «Стандартные 3,6 ГГц») — 4 ядра, 8 ГБ, 80 ГБ NVMe: 1 289 ₽/мес при оплате за месяц, сверено на странице провайдера 23.10.2026.
- Timeweb Cloud MSK 80 — 4 ядра 3,3 ГГц, 8 ГБ, 80 ГБ NVMe: 7 000 ₽/мес при оплате за месяц, списание почасовое. Цена сверена на странице провайдера 23.10.2026, после подорожания тарифов VPS в тот же день.
Видеокарта для такой базы не обязательна: модель на 3 миллиарда параметров отвечает и на процессоре, только медленнее. Если ответ за 20 секунд для вас слишком долгий, смотрите в сторону серверов с видеокартой.
Реклама · ООО «Админвпс»
AdminVPS
Start за 1 289 ₽/мес при оплате за месяц: 4 ядра 3,6 ГГц, 8 ГБ RAM, 80 ГБ NVMe — хватает Dify и Ollama с моделью на 3B.
Промокод EASYLINK — скидка 60 % на первый месяц при оплате за 1 месяц, кроме тарифов Lite.
Реклама · АО «ТаймВэб»
Timeweb Cloud
Cloud MSK 80: 4 ядра 3,3 ГГц, 8 ГБ, 80 ГБ NVMe — 7 000 ₽/мес при оплате за месяц, списание почасовое.
Как мы проверяли
Стенд 23.10.2026: сервер Timeweb Cloud на час — 4 ядра 2,0 ГГц, 8 ГБ, 77 ГБ, площадка в Новосибирске, Ubuntu 24.04. Команды ниже — те, что выполнялись там, в том же порядке; из них убраны только служебные строки, засекавшие время. Документом был выдуманный «Регламент ООО „Пример-Сервис“» на 424 слова: отпуск, пароли, удалёнка, питание, командировки, резервные копии, поддержка, приём на работу. К нему — 10 вопросов с заранее известным ответом, один из них про то, чего в регламенте нет.
Чего такая проверка не показывает: работу через веб-интерфейс (первый вход, модели и приложение мы настраивали через API консоли Dify — это те же действия, что кнопки мастера), большие документы и десятки одновременных пользователей, другие модели и процессоры, работу с видеокартой, многодневную работу и HTTPS с доменом.
Шаг 1. Docker из репозитория Docker
Dify требует Docker Compose 2.24.0 или новее, поэтому Docker ставим из репозитория самого Docker, как в его документации. Команды — от root:
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" > /etc/apt/sources.list.d/docker.list
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin git jq
docker compose versionНа стенде установка заняла 32 секунды, встали Docker 29.9.2 и Compose v5.6.1.
Шаг 2. Dify: свои секреты до первого запуска
Берём ровно выпуск 1.18.0, а не текущую ветку, — так установка повторяется. В .env.example лежат образцы секретов, их надо заменить своими. INIT_PASSWORD закрывает страницу первой установки: пока администратор не создан, без этого пароля чужой человек, открывший адрес сервера, не заберёт себе вашу базу.
cd /root
git clone --depth 1 --branch 1.18.0 https://github.com/langgenius/dify.git
cd /root/dify/docker
cp .env.example .env
sed -i "s|^SECRET_KEY=.*|SECRET_KEY=$(openssl rand -base64 42 | tr -d '\n/+=' | head -c 50)|" .env
sed -i "s|^INIT_PASSWORD=.*|INIT_PASSWORD=$(openssl rand -hex 12)|" .env
sed -i "s|^DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN=.*|DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN=$(openssl rand -hex 24)|" .env
grep '^INIT_PASSWORD=' .env
docker compose pull
docker compose up -dТретья строка с sed — шаг из документации Dify на docs.dify.ai: без токена песочницы две службы агентов не стартуют. В README репозитория этого шага нет — мы шли по README и поймали падение (подробно — в разделе «Что ломается»). Запишите INIT_PASSWORD, он понадобится при первом входе.
На стенде docker compose pull скачивал 16 служб 269 секунд, а консоль Dify ответила через 355 секунд от начала скачивания.
Шаг 3. Закрыть порт отладки плагинов
Dify публикует наружу не только сайт (80 и 443), но и порт 5003 — для отладки плагинов. На стенде он был открыт из интернета, и ufw deny 5003 это не исправил: Docker публикует порты в обход ufw. Помогла привязка порта к локальному адресу в docker-compose.yaml:
cd /root/dify/docker
sed -i 's|- "${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003}:|- "127.0.0.1:${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003}:|' docker-compose.yaml
docker compose up -d
ss -ltn | grep ':5003'Последняя команда должна показать 127.0.0.1:5003. После правки снаружи порт закрыт, а сайт Dify отвечает как раньше. Остальную защиту сервера — SSH по ключу, fail2ban — разбираем в чеклисте безопасности VPS.
Шаг 4. Ollama и две модели
Ollama ставим отдельным контейнером в ту же сеть Docker, что и Dify (docker_default), — тогда Dify обращается к ней по имени ollama, а наружу порт 11434 не публикуется вовсе.
docker run -d --name ollama --network docker_default --restart unless-stopped -v ollama:/root/.ollama ollama/ollama
docker exec ollama ollama pull qwen2.5:3b
docker exec ollama ollama pull bge-m3
docker exec ollama ollama listНа стенде встала Ollama 0.40.9; qwen2.5:3b (1,9 ГБ) скачалась за 176 секунд, bge-m3 (1,2 ГБ) — за 106. qwen2.5 мы взяли потому, что она отвечает по-русски, а размер 3B — потому, что помещается в 8 ГБ вместе с Dify. Как подбирать модели под память, мы разбирали в статье про свой ChatGPT на VPS.
Шаг 5. Первый вход, плагин Ollama и модели
Откройте http://АДРЕС_СЕРВЕРА/install, введите INIT_PASSWORD из шага 2 и создайте администратора. Дальше три действия в настройках:
- Установить плагин Ollama из маркетплейса Dify. Серверу нужен выход на marketplace.dify.ai: со стенда в Новосибирске он ответил, установка плагина заняла 12 секунд.
- Добавить модель qwen2.5:3b как языковую модель, адрес —
http://ollama:11434. - Добавить bge-m3 как модель эмбеддингов с тем же адресом и сделать обе моделями по умолчанию.
После этого обе модели активны, память сервера — 5,1 ГБ из 7,9.
Dify умеет подключать и облачные модели, но тогда фрагменты ваших документов уходят к поставщику модели. Если внешний API всё же нужен, оплатить его в рублях можно у российских сервисов — разбор в статье про API нейросетей в рублях.
Шаг 6. Документ в базу знаний и приложение-чат
Создайте базу знаний, загрузите документ и выберите индексацию «высокое качество» с моделью bge-m3. Мы загрузили регламент открытым API баз знаний Dify: 424 слова разбились на 9 фрагментов, индексация заняла 13 секунд.
Затем создайте приложение типа «Чат», подключите к нему базу знаний и задайте модель qwen2.5:3b. Мы поставили температуру 0,1 (чтобы модель не сочиняла), три фрагмента на вопрос и такую инструкцию:
Ты помощник сотрудников. Отвечай только по фрагментам документов из контекста, коротко и по-русски. Если в контексте нет ответа, так и скажи: в документах этого нет.Последняя фраза инструкции — для вопросов, ответа на которые в документах нет: на стенде модель на такой вопрос так и ответила.
Шаг 7. Проверить на вопросах с известным ответом
Не верьте базе знаний, пока не задали ей вопросы, ответ на которые вы знаете. Так выглядел прогон на стенде 23.10.2026 (Ollama на 4 ядрах 2,0 ГГц, без видеокарты):
| Вопрос | Ответ модели | Время |
|---|---|---|
| За сколько дней до отпуска подать заявление? | Не позднее чем за 14 календарных дней | 17 с |
| Как часто менять пароль? | Каждые 90 дней | 28 с |
| Минимальная длина пароля? | 12 символов | 29 с |
| Сколько дней в неделю можно работать удалённо? | Два дня в неделю | 24 с |
| Сколько компенсируют за питание? | 350 за каждый рабочий день в офисе | 26 с |
| Суточные по России? | 1 200 за сутки командировки | 24 с |
| Сколько хранятся копии сервера бухгалтерии? | 30 дней | 26 с |
| Срок реакции на обычную заявку? | 4 рабочих часа | 23 с |
| Что пройти для доступа к CRM? | Инструктаж по информационной безопасности | 23 с |
| Премия за работу в выходные? | «О премиях за работу в выходные нет информации» | 19 с |
Поиск нашёл нужный фрагмент в 9 случаях из 9, верных ответов — 10 из 10, включая честное «нет информации» на последний вопрос. Тот же вопрос про копии, заданный позже ещё раз, занял 12 секунд.
Задать вопрос можно и из своей программы — открытым API приложения. Ключ API создаётся в настройках приложения; эту команду мы выполнили на стенде:
curl -s -X POST http://localhost/v1/chat-messages -H "Authorization: Bearer КЛЮЧ_ПРИЛОЖЕНИЯ" -H 'Content-Type: application/json' -d '{"inputs":{},"query":"Сколько дней хранятся резервные копии сервера бухгалтерии?","response_mode":"blocking","user":"stend"}'Что ломается
- Две службы падают по кругу сразу после установки.
agent_backendиlocal_sandboxперезапускались с ошибкой «local_sandbox_auth_token is required»: в.env.exampleвыпуска 1.18.0 строкаDIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKENпустая, а README про неё молчит — шаг есть только в документации на docs.dify.ai. Базе знаний и чату это не мешало, но после случайного значения иdocker compose up -dобе службы работают. Поэтому эта строка уже стоит в шаге 2. - Порт 5003 открыт в интернет, и ufw его не закрывает. Docker пишет свои правила в обход ufw — проверено на стенде: после
ufw deny 5003порт снаружи оставался открытым. Закрывает только привязка к 127.0.0.1 из шага 3. - Страница /install открыта, пока нет администратора. Её защищает только
INIT_PASSWORD; не оставляйте пустой и создайте администратора сразу после запуска. - Плагину Ollama нужен выход в интернет. Плагины берутся из маркетплейса Dify; установку на сервер, закрытый от интернета, мы не проверяли.
- Ответ на процессоре — десятки секунд. 17–29 секунд на нашем стенде. Как связка держит много одновременных вопросов, мы не проверяли.
- Если пишете в API консоли сами, пароль при входе — в Base64. Без этого Dify 1.18.0 отвечает «Invalid encrypted data»; в веб-интерфейсе это делает страница сама.
Документы, данные и лицензия
Если в регламентах есть персональные данные сотрудников или клиентов, обязанности оператора по 152-ФЗ остаются на компании, где бы ни стоял сервер. Часть 5 статьи 18 закона не допускает запись и хранение персональных данных граждан России в базах данных за пределами страны, кроме случаев, названных в самом законе, — площадку сервера выбирайте с этим в голове. Свой сервер с локальной моделью снимает одну частую проблему: фрагменты документов не уходят внешнему поставщику модели.
Dify распространяется по изменённой лицензии Apache 2.0. Пользоваться им в своей компании, в том числе коммерчески, можно. Без письменного разрешения разработчика нельзя две вещи: держать на нём многоарендный сервис (один арендатор — одно рабочее пространство) и убирать логотип и копирайт Dify из консоли и приложений.
Сколько стоит в месяц
| Что | Сколько |
|---|---|
| Сервер AdminVPS Start, 4 ядра, 8 ГБ, 80 ГБ NVMe | 1 289 ₽/мес при оплате за месяц |
| Сервер Timeweb Cloud MSK 80, 4 ядра, 8 ГБ, 80 ГБ NVMe | 7 000 ₽/мес при оплате за месяц |
| Dify, Ollama, qwen2.5:3b, bge-m3 | ничего не платите: открытые программы и модели |
Платите вы только за сервер. Если в ваших документах нет ничего, кроме текстов, а нужен просто чат с моделью на своём сервере, проще взять Open WebUI — разбор здесь. Если нужна не справка, а действия — разослать письмо, завести задачу, — смотрите ИИ-агента на n8n и Ollama.
Коротко
- База знаний с ИИ на своём сервере — это Dify и Ollama в Docker на VPS с 4 ядрами и 8 ГБ памяти.
- Сервер: AdminVPS Start — 1 289 ₽/мес при оплате за месяц, Timeweb Cloud MSK 80 — 7 000 ₽/мес при оплате за месяц; программы и модели бесплатны.
- До первого запуска задайте свои секреты, закройте порт 5003 привязкой к 127.0.0.1 — ufw его не закрывает.
- На стенде 23.10.2026: 10 верных ответов из 10, 17–29 секунд на ответ без видеокарты.
- Проверяйте базу вопросами с известным ответом, прежде чем отдавать её сотрудникам.
Плюсы и минусы
Преимущества
- Документы и вопросы остаются на вашем сервере, модели открытые и бесплатные.
- Все команды выполнены на чистой Ubuntu 24.04, с двумя найденными поломками и их исправлением.
- Проверка вопросами с известным ответом, а не «на глаз».
Недостатки
- Ответ на процессоре идёт десятки секунд.
- Проверены один документ и одна модель на 3B; большие базы и нагрузку мы не проверяли.
- Веб-интерфейс Dify описан по шагам, но на стенде те же действия выполнялись через API консоли.
Реклама · ООО «Админвпс»
AdminVPS
Start за 1 289 ₽/мес при оплате за месяц: 4 ядра 3,6 ГГц, 8 ГБ RAM, 80 ГБ NVMe — хватает Dify и Ollama с моделью на 3B.
Промокод EASYLINK — скидка 60 % на первый месяц при оплате за 1 месяц, кроме тарифов Lite.
Реклама · АО «ТаймВэб»
Timeweb Cloud
Cloud MSK 80: 4 ядра 3,3 ГГц, 8 ГБ, 80 ГБ NVMe — 7 000 ₽/мес при оплате за месяц, списание почасовое.
Частые вопросы
Сколько памяти нужно серверу для базы знаний на Dify и Ollama?
8 ГБ. Сама Dify, по её документации, требует минимум 4 ГиБ, но это без локальной модели. На нашем стенде 23.10.2026 Dify с Ollama и моделями qwen2.5:3b и bge-m3 заняли 5,4 ГБ во время ответов. В 4 ГБ связка не помещается; диска нужно около 25 ГБ.
Нужна ли видеокарта для базы знаний с ИИ?
Нет, для модели на 3 миллиарда параметров хватает процессора. На стенде с 4 ядрами 2,0 ГГц ответ занимал 17–29 секунд, повторный вопрос — 12 секунд. Работу с видеокартой и одновременные вопросы многих сотрудников мы не проверяли.
Уходят ли документы во внешний сервис?
Нет, если модели локальные. В нашей схеме и поиск (bge-m3), и ответ (qwen2.5:3b) работают в Ollama на том же сервере, порт Ollama наружу не открыт. Если подключить к Dify облачную модель, фрагменты документов будут уходить её поставщику.
Насколько точно отвечает маленькая модель?
На нашем выдуманном регламенте из 424 слов — 10 верных ответов из 10, включая честное «нет информации» на вопрос, ответа на который в документе нет. Это проверка на одном документе и одной модели: на больших и запутанных документах точность придётся проверять своими вопросами.
Можно ли пользоваться Dify в компании бесплатно?
Да, лицензия разрешает использовать Dify в своей компании, в том числе коммерчески. Без письменного разрешения разработчика нельзя держать многоарендный сервис и убирать логотип и копирайт Dify из интерфейса. Платить придётся только за сервер.
Почему после установки Dify перезапускаются службы agent_backend и local_sandbox?
В .env.example выпуска 1.18.0 пустая строка DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN, и обе службы падают с ошибкой «local_sandbox_auth_token is required». Документация Dify велит задать этот токен, README — нет. Задайте случайное значение командой sed из шага 2 и выполните docker compose up -d — на стенде обе службы после этого заработали.
Подобрать сервер под задачу
Смотреть тарифыРеклама · ООО «Админвпс»
Ссылки на провайдеров в этом материале партнёрские: если вы оформите услугу, мы получим комиссию. На цену для вас это не влияет. Подробнее