SSD Nodes Learn Hosting plans →
Руководства Matt ConnorАвтор: Matt Connor · Обновлено 2026-08-28

Установка Dify через Docker Compose на VPS

Пошаговое руководство по развертыванию Dify на сервере. Учитывайте требования к 4 ГБ оперативной памяти для шести контейнеров. Обязательно смените ключи в .env и создайте аккаунт.

Что такое Dify и что именно вы собираетесь запускать

Dify — это платформа для самостоятельного развертывания, предназначенная для создания приложений на базе больших языковых моделей. Вы получаете веб-интерфейс для проектирования чат-ботов, агентов и конвейеров поиска (retrieval pipelines), API для вызова этих инструментов из вашего кода, а также единую точку управления промптами, наборами данных и ключами моделей. Это инструмент, который небольшая команда разворачивает для того, чтобы все работали на общей закрытой базе, а не распределяли API-ключи по разным скриптам.

Самостоятельный запуск означает, что нужно обслуживать несколько компонентов. Dify поставляется в виде набора Docker-контейнеров: API-сервера, фонового worker, web frontend, базы данных Postgres, кэша Redis и векторной базы данных. Все они соединены с помощью Docker Compose. Это больше, чем один бинарный файл, но Compose управляет связями между компонентами, а VPS с несколькими свободными гигабайтами RAM обычно без проблем запускает такую конфигурацию. Если на этом VPS будут работать и другие сервисы, выбирайте его размер по измеренным значениям, а не по заявленным требованиям. Фактический минимальный объём RAM для PhotoPrism и Immich значительно выше опубликованных минимумов. Фото-сервер на том же хосте сначала начнёт вытеснять базу данных и векторное хранилище Dify. С CPU возникает такая же проблема: библиотека Jellyfin, стилизованная под видеопрокат 90-х годов, почти не создаёт нагрузку, пока пользователь только просматривает обложки. Но после запуска транскодирования worker Dify встанет в очередь за этой задачей. Преимущество в том, что количество контейнеров Dify не зависит от числа созданных приложений. Это делает расходы более предсказуемыми, чем в случае с OpenBot, где каждый AI-помощник получает собственный контейнер и собственный браузер, а каждый новый помощник снова повышает минимальный объём необходимой памяти.

Поскольку Dify хранит ваши API-ключи к моделям и часто конфиденциальные документы, загруженные для поиска, с первой же минуты относитесь к серверу, на котором она работает, как к критически важному узлу. В этом руководстве описывается установка, а затем — усиление защиты (hardening) системы, как это делается для любого сервиса, работающего с секретными данными.

Предварительные требования

Вам потребуется VPS под управлением Ubuntu 24.04 с установленными Docker и плагином Docker Compose, а также пользователь с правами sudo или членством в группе docker. Если вы новичок в Docker, в руководстве основы Docker Compose на VPS описаны установка и базовые команды, которые подразумеваются в этом руководстве. Рекомендуется иметь доменное имя, направленное на сервер, так как для Dify предпочтительнее использовать TLS, а не прямой IP-адрес.

Шаг 1: Получение Dify и файлов Compose

Dify хранит настройки Docker в основном репозитории. Клонируйте его и перейдите в каталог docker:

git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env

Файл .env содержит всю конфигурацию. Изучите его перед началом работы. В первую очередь важны параметры, задающие пароли и секретные ключи: SECRET_KEY, пароль Postgres и пароль Redis. В поставляемом примере указаны значения-заглушки, и использование их в исходном виде — самая частая причина, по которой скомпрометированными оказываются экземпляры Dify, развернутые самостоятельно. Сгенерируйте настоящий секретный ключ:

openssl rand -base64 42

Вставьте его в SECRET_KEY и установите надежные уникальные значения для всех полей с паролями в этом файле.

Шаг 2: Запуск

Запустите стек:

docker compose up -d

При первом запуске загружаются образы и инициализируется база данных, поэтому подождите около минуты. Проверьте состояние контейнеров:

docker compose ps

Все сервисы должны иметь статус running. По умолчанию Dify предоставляет доступ к веб-интерфейсу через встроенный контейнер nginx на 80 порту. При первом посещении http://YOUR_SERVER/install необходимо создать учетную запись администратора. Сделайте это незамедлительно, до того как кто-либо другой получит доступ к порту, так как до создания этой учетной записи любой пользователь, открывший страницу, может зарегистрировать её на себя и получить полный контроль над вашим экземпляром.

Шаг 3: Не оставляйте сервис открытым. Настройте TLS и межсетевой экран

На этом этапе большинство быстрых установок заканчиваются, а большинство инцидентов начинаются. Встроенный nginx в Dify слушает порт 80 в открытом виде на всех интерфейсах. Не следует допускать передачу данных администратора и ключей моделей по протоколу HTTP, а также оставлять внутренние сервисы доступными извне.

Ограничьте доступ к серверу с помощью межсетевого экрана с политикой default-deny, разрешающей только SSH и веб-трафик:

sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Помните, что межсетевой экран, настроенный только для IPv4, может оставить те же порты открытыми в IPv6 — это проблема IPv6-фильтрации, на которой попадаются многие владельцы собственных серверов. Убедитесь, что фильтрация настроена для обоих стеков.

Для TLS оптимальный вариант — привязать веб-порт Dify к loopback и разместить перед ним reverse proxy с сертификатом Let's Encrypt. Тогда в публичном Интернете будет доступен только прокси, который работает по HTTPS. Параметр .env в Dify позволяет изменить внешний порт. Настройте его на привязку к 127.0.0.1 и укажите этот адрес в конфигурации прокси. Рекомендации по усилению безопасности агента из материала безопасный запуск AI-агента на VPS применимы и здесь: размещайте компоненты на loopback, открывайте только необходимые публичные интерфейсы и используйте один защищённый внешний вход для TLS. Если интерфейс инструмента нужен только вам и сертификат для него не требуется, откажитесь от прокси и подключайтесь через SSH-туннель. Именно так в материале самостоятельное размещение сканера безопасности open-kritt панель управления привязывается к loopback и перенаправляется на ваш ноутбук, а не публикуется в Интернете. Если Dify нужен целой команде, но не должен быть доступен из публичного Интернета, overlay-сеть расширяет этот подход за пределы одного ноутбука. Материал публикация частной подсети сервера в tailnet позволяет каждому разрешённому устройству обращаться к builder по приватному адресу, пока firewall блокирует всё, кроме SSH. Если вы администрируете этот сервер с помощью coding agent, а не вручную, заранее определите, какие действия он может выполнять без контроля, прежде чем предоставлять ему ключи. В материале режим разрешений, в котором вы оставляете Claude Code, показано, будет ли агент запрашивать подтверждение перед изменением .env или перезапуском стека. Если одна сессия отслеживает логи контейнеров, а другая изменяет конфигурацию прокси, эти две сессии могут обмениваться текстом на одном сервере, поэтому после каждого перезапуска стека не придётся переносить вывод между терминалами.

Шаг 4: Поддержание актуальной версии

Проект Dify развивается быстро, и обновления включают исправления безопасности. Обновление выполняется путем получения актуального кода и перезапуска из каталога docker:

git pull
docker compose pull
docker compose up -d

Ознакомьтесь с примечаниями к выпуску перед переходом на мажорную версию, так как Dify периодически изменяет схему .env между релизами, и новая переменная, которую вы не задали, может привести к остановке контейнера при запуске.

Шаг 5: Резервное копирование данных, которые нельзя восстановить

Два компонента в системе Dify являются незаменимыми: база данных Postgres, в которой хранятся ваши приложения, пользователи и настройки, а также том, где размещены загруженные документы и векторный индекс. Оба они находятся в Docker-томах в директории docker. Создавайте их снимки по расписанию и копируйте эти снимки за пределы сервера. API-ключ для модели можно перевыпустить, а приложение, на создание которого вы потратили неделю, — нет. Тот же принцип применим к любому агенту, состояние которого должно сохраняться дольше, чем время работы самой машины: поддержание KiroCrew в виде постоянно запущенного контейнера сводится к созданию снимков памяти и расписаний, которые в противном случае исчезнут при следующей перезагрузке.

Если вы хотите, чтобы созданные здесь агенты выходили за рамки ваших собственных наборов данных и искали информацию в реальном интернете, настройка на собственный экземпляр SearXNG позволит удерживать поток запросов на оборудовании, которое вы контролируете. Однако перед включением этой функции стоит изучить информацию о векторе атак через prompt injection. Для получения более автономного агента, способного выполнять код, см. самостоятельный хостинг Agent Zero, а в руководстве создание собственного AI-агента на VPS описаны основы, лежащие в фундаменте всех подобных решений.

FAQ

Каковы системные требования для самостоятельного размещения Dify?

Dify работает как стек Docker Compose из примерно шести контейнеров. Планируйте использование VPS с объемом свободной оперативной памяти не менее 2 ГБ (идеально — 4 ГБ), парой ядер CPU и достаточным объемом дискового пространства для загружаемых документов и векторного индекса. Основная нагрузка на память приходится на базу данных и векторное хранилище, а не на сам Dify.

Безопасно ли открывать Dify напрямую на 80 порту?

Нет. Встроенный веб-сервер Dify работает по протоколу HTTP без шифрования, через него проходят данные для входа администратора и API-ключи моделей. Установите перед ним reverse proxy с сертификатом Let's Encrypt, привяжите порт Dify к интерфейсу loopback и разрешите доступ из Интернета только для HTTPS-прокси. Дополнительно настройте межсетевой экран с политикой запрета по умолчанию для IPv4 и IPv6.

Как обновить Dify при самостоятельном размещении?

Находясь в директории docker, выполните git pull, а затем docker compose pull и docker compose up -d, чтобы загрузить новые образы и перезапустить контейнеры. Предварительно ознакомьтесь с примечаниями к релизу, так как в новых версиях Dify иногда добавляются переменные .env, отсутствие которых может привести к сбою запуска контейнера.

Что нужно сделать в первую очередь после установки Dify?

Перейдите по адресу /install и немедленно создайте учетную запись администратора. Пока эта учетная запись не создана, любой, кто имеет доступ к странице, может зарегистрировать её на себя. Настройте её сразу после того, как контейнеры перейдут в рабочее состояние, и до того, как вы откроете доступ к межсетевому экрану для внешних подключений.