SSD Nodes Learn
Посібники Matt ConnorВід Matt Connor · Оновлено 2026-07-24

Як розгорнути Dify на VPS через Docker Compose

Інструкція з інсталяції Dify за допомогою Docker Compose. Для стабільної роботи шести контейнерів потрібно мінімум 4 GB RAM та налаштування .env файлу.

Що таке Dify та до чого ви готуєтеся

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

Самостійне розгортання означає запуск кількох компонентів. Dify постачається як набір Docker-контейнерів: API-сервер, фоновий воркер, веб-фронтенд, база даних Postgres, кеш Redis та векторна база даних; усі вони з'єднані за допомогою Docker Compose. Це складніше за один бінарний файл, але Compose бере на себе налаштування зв'язків. Для стабільної роботи достатньо VPS з наявним об'ємом RAM у кілька гігабайт.

Оскільки Dify зберігає ваші API-ключі моделей та часто приватні документи для пошуку, ставтеся до сервера як до критично важливого об'єкта з першої хвилини. Цей посібник інсталює систему, а потім налаштовує її захист так само, як будь-який інший сервіс, що зберігає конфіденційні дані.

Prerequisites

Вам потрібен VPS під керуванням Ubuntu 24.04 з встановленими Docker та плагіном Docker Compose, а також користувач з правами sudo або в групі docker. Якщо ви вперше працюєте з Docker, основи Docker Compose на VPS пояснюють встановлення та основні команди, які використовуються в цьому посібнику. Бажано мати доменне ім'я, спрямоване на сервер, оскільки вам знадобиться TLS перед Dify замість простої IP-адреси.

Step 1: Get Dify and its Compose files

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 та встановіть складні унікальні значення для кожного поля пароля у файлі.

Step 2: Start it

Запустіть стек:

docker compose up -d

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

docker compose ps

Кожен сервіс має відображатися в running. За замовчуванням Dify надає веб-інтерфейс через вбудований контейнер nginx на порту 80. При першому переході на http://YOUR_SERVER/install ви створите обліковий запис адміністратора. Зробіть це негайно, поки ніхто інший не отримав доступ до порту, оскільки до створення цього акаунта будь-хто зможе перехопити контроль над вашим екземпляром.

Step 3: Do not expose it raw. Put TLS and a firewall in front

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

Заблокуйте доступ за допомогою фаєрвола з політикою "заборонено все, що не дозволено", залишивши доступ лише для 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 і запустити реверс-проксі з сертифікатом Let's Encrypt попереду. Таким чином, у відкритому інтернеті буде лише проксі, що працює через HTTPS. Параметр .env у Dify дозволяє змінити відкритий порт; встановіть його на 127.0.0.1 і спрямуйте ваш проксі на цей порт. Ідеї щодо захисту агентів з безпечного запуску AI-агента на VPS також застосовні тут: тримайте компоненти на loopback, відкривайте лише необхідне для публічного доступу та використовуйте один захищений шлюз для TLS.

Step 4: Keep it patched

Dify швидко розвивається, і оновлення включають виправлення безпеки. Оновлення виконується шляхом завантаження нових файлів та перезапуску з директорії docker:

git pull
docker compose pull
docker compose up -d

Читайте примітки до релізу перед переходом на нову мажорну версію, оскільки Dify іноді змінює схему .env між релізами, і нова змінна, яку ви не налаштували, може завадити запуску контейнера.

Step 5: Back up what you cannot regenerate

Є дві речі в Dify, які неможливо відновити: база даних Postgres (ваші застосунки, користувачі та налаштування) та volume, де зберігаються завантажені документи та векторний індекс. Обидва знаходяться у Docker volumes у директорії docker. Створюйте знімки (snapshots) за розкладом і копіюйте їх на інший сервер. API-ключ моделі можна перевипустити, а застосунок, на створення якого витрачено тиждень, — ні.

Для створення автономних агентів, що виконують код, див. self-hosting Agent Zero, а building your own AI agent on a VPS описує основи для всіх подібних систем.

FAQ

What are the system requirements to self-host Dify?

Dify працює як стек Docker Compose з приблизно шістьма контейнерами. Плануйте VPS з мінімум 2 GB вільної RAM (бажано 4 GB), кількома ядрами CPU та достатнім дисковим простором для документів та векторного індексу. Основне навантаження на пам'ять створюють база даних та векторне сховище, а не сам Dify.

Is it safe to expose Dify directly on port 80?

Ні. Вбудований веб-сервер Dify працює через незашифрований HTTP, через який проходять ваші дані адміністратора та API-ключі моделей. Використовуйте реверс-проксі з сертифікатом Let's Encrypt, прив'яжіть порт Dify до loopback і залиште в інтернеті лише проксі з HTTPS. Додайте це до фаєрвола з політикою "заборонено все, що не дозволено" для IPv4 та IPv6.

How do I update a self-hosted Dify?

З директорії docker виконайте git pull, потім docker compose pull та docker compose up -d, щоб завантажити нові образи та перезапустити систему. Спочатку прочитайте примітки до релізу, оскільки Dify іноді додає нові змінні .env між версіями, і відсутність такої змінної може завадити запуску контейнера.

What is the first thing to do after installing Dify?

Негайно перейдіть на /install і створіть обліковий запис адміністратора. Поки цей акаунт не створено, будь-хто, хто має доступ до сторінки, може його захопити. Налаштуйте його одразу після того, як контейнери перейдуть у стан healthy, і до того, як ви відкриєте фаєрвол для зовнішнього світу.