Dify — платформа для сборки ИИ-приложений: чат-ботов, цепочек действий и поиска по вашим документам. Модели подключаются по API, а сама платформа работает на вашем сервере. Подробнее: Dify в каталоге ИИ-агентов.
Команды взяты со страницы официальной документации (адрес в sources) и проверены 6 октября 2026 года на VPS с Ubuntu 24.04, 4 ядрами и 6 ГБ памяти. Версия Dify на момент проверки: 1.17.1. Docker и Compose должны быть установлены: установка Docker на VPS. Выполняйте команды под пользователем с доступом к Docker, как его создать, написано в статье первая настройка VPS.
Требования
Документация Dify указывает: CPU не менее 2 ядер (CPU >= 2 Core) и память не менее 4 ГиБ (RAM >= 4 GiB). Для Linux также нужны Docker 19.03 или новее и Docker Compose 2.24.0 или новее. Плагин Compose из нашей статьи про Docker этому условию соответствует: проверьте версию командой docker compose version.
Платформа запускает много контейнеров сразу: в версии 1.17.1 их 15 (база данных, очередь, хранилище векторов, веб-часть, обработчики задач и другие). Наши замеры после запуска, без единого приложения и пользователя:
- память: все контейнеры Dify вместе занимают около 2,4 ГБ;
- диск: образы и данные заняли около 12 ГБ, сама папка с релизом ещё 0,8 ГБ. Свободного места нужно не меньше 15 ГБ;
- время: скачивание релиза 40 секунд, первый запуск контейнеров чуть больше 2 минут, ещё 1–2 минуты платформа готовится внутри и на запросы не отвечает.
Отсюда вывод: 4 ГБ из документации на практике минимум, а не запас. На таком сервере Dify займёт больше половины памяти, и рядом с ним лучше ничего тяжёлого не держать. Конфигурации «2 ядра, 4 ГБ» в нашей базе стоят от 650 ₽ до 5 620 ₽ в месяц (на 8 октября 2026 года). Смотрите страницу 2 ядра, 4 ГБ и общий подбор. Мы запуск Dify на таких серверах не тестировали: если планируете много пользователей или большие базы знаний, берите сервер мощнее.
Шаг 1. Скачайте релиз
В документации команда клонирует последний релиз, определяя его номер через API GitHub. Для неё нужна утилита jq:
sudo apt update
sudo apt install git jq
Команды ставят git и jq. Затем клонируйте репозиторий:
git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git
Внутренняя часть команды запрашивает у GitHub номер последнего релиза, а git clone --branch скачивает именно эту версию, а не нестабильную основную ветку.
Шаг 2. Подготовьте настройки
cd dify/docker
cp .env.example .env
Первая команда переходит в папку с файлами для Docker, вторая создаёт рабочий файл настроек из примера. Все следующие команды выполняйте из этой папки. В .env лежат пароли базы данных, секретные ключи и порты. Откройте его редактором (nano .env) и прочитайте комментарии: файл рассчитан на запуск по умолчанию, но для сервера в интернете смените значения паролей и секретов, которые в нём помечены как примерные. Какие именно поля обязательны к смене, смотрите в комментариях самого файла и в документации: мы не проверяли их по каждому пункту.
Ограничьте доступ к файлу, потому что в нём секреты:
chmod 600 .env
Команда разрешает читать файл только владельцу. Ключи API моделей вводятся в интерфейсе платформы, не храните их в публичных репозиториях.
Строку SECRET_KEY= в .env можно оставить пустой: в файле прямо написано, что тогда ключ создаётся сам и сохраняется в хранилище платформы. У нас так и вышло.
Закройте порты от интернета
С настройками по умолчанию Dify после запуска открывает всему интернету три порта: 80, 443 и 5003. У нас страница установки, на которой создаётся администратор, открылась по внешнему адресу сервера сразу после запуска. Пока вы её не заполнили, это может сделать любой, кто знает адрес. Поэтому до первого запуска привяжите порты к локальному адресу.
Порты 80 и 443 меняются в .env. Команда заменяет две строки:
sed -i "s/^EXPOSE_NGINX_PORT=80/EXPOSE_NGINX_PORT=127.0.0.1:80/; s/^EXPOSE_NGINX_SSL_PORT=443/EXPOSE_NGINX_SSL_PORT=127.0.0.1:443/" .env
Порт 5003 (отладка плагинов) так закрывать нельзя. Мы попробовали записать 127.0.0.1:5003 в переменную EXPOSE_PLUGIN_DEBUGGING_PORT, и платформа перестала запускаться: контейнер api падал с ошибкой PLUGIN_REMOTE_INSTALL_PORT must be a bare port number. Эта переменная должна оставаться просто числом. Порт закрывается отдельным файлом рядом с основным:
cat > docker-compose.override.yaml <<EOF
services:
plugin_daemon:
ports: !override
- "127.0.0.1:5003:5003"
EOF
Команда создаёт файл docker-compose.override.yaml. Скопируйте блок целиком, от cat до EOF. Docker Compose подхватывает этот файл сам и заменяет публикацию порта на локальную. Основной файл релиза при этом остаётся нетронутым, что упростит обновление.
Шаг 3. Запустите контейнеры
docker compose up -d
Команда скачивает образы и запускает все сервисы Dify в фоне. У нас первый запуск занял чуть больше двух минут и скачал около 11 ГБ: заранее проверьте свободное место командой df -h. Состояние контейнеров показывает:
docker compose ps
Подождите, пока все сервисы перейдут в рабочее состояние: у контейнера api в столбце STATUS должно появиться healthy. Пока этого нет, страница отвечает ошибкой 502 Bad Gateway: это не поломка, платформа ещё запускается. Если api показывает Restarting, посмотрите причину командой docker compose logs --tail 20 api.
Убедитесь, что порты привязаны к локальному адресу: в столбце PORTS у nginx и plugin_daemon должно стоять 127.0.0.1:, а не 0.0.0.0:.
Шаг 4. Первый вход
Порты открыты только на самом сервере, поэтому зайдите через SSH-туннель. На своём компьютере выполните:
ssh -L 8080:127.0.0.1:80 имя@адрес_сервера
Пока это подключение открыто, Dify доступен в браузере вашего компьютера по адресу http://127.0.0.1:8080. Откройте страницу http://127.0.0.1:8080/install и создайте учётную запись администратора. Пароль используйте длинный и уникальный. После этого страница установки больше не работает, а вход идёт по тому же адресу без /install.
Туннель удобен для одного человека. Чтобы платформой пользовались другие люди и ваши приложения были доступны снаружи, поставьте обратный прокси с сертификатом и направьте его на 127.0.0.1:80: бесплатный SSL на VPS. Без HTTPS пароль идёт по сети открытым текстом.
Обновление
В документации обновление описано общим порядком, одной команды там нет. Суть такая: откройте страницу релиза на GitHub-репозитории Dify и найдите инструкцию по обновлению именно до этой версии, сравните новый .env.example с вашим .env и перенесите новые переменные, затем заново примените свои правки в docker-compose.yaml к файлу нового релиза.
Перед обновлением обязательно сделайте резервную копию: данные платформы лежат в томах и папках внутри dify/docker, поэтому копируйте всю папку вместе с каталогом volumes, если он есть. Точный перечень путей уточните в документации вашей версии.
Свой файл docker-compose.override.yaml и правки портов в .env после обновления проверьте заново: убедитесь командой docker compose ps, что порты по-прежнему привязаны к 127.0.0.1.
Что проверено, а что нет
Проверено на сервере: скачивание релиза, запуск, закрытие трёх портов, создание администратора, остановка и повторный запуск с сохранением данных. Не проверено: работа приложений с подключённой моделью (нужен платный ключ API), обновление на следующую версию, работа через обратный прокси с доменом.
Что делать дальше
Подберите сервер: VPS с 2 ядрами и 4 ГБ или с запасом, если ожидаете нагрузку. Затем подключите в панели Dify поставщика моделей и соберите первое приложение. Задачи для ИИ-агентов: VPS для ИИ-агента.
