В официальном списке выпусков Dify версия 1.18.0 датирована 23 октября 2026 года — дата и материалы выпуска. Если плагины перестали устанавливаться, сначала проверьте связь из контейнера API с Plugin Daemon, адрес сервиса и согласованность ключей, а затем сопоставьте версии образов с Compose-файлом. Не меняйте наугад IP-адреса и порты: сообщение SDK в журнале само по себе ещё не доказывает, что Daemon недоступен.
Эта инструкция подойдёт тем, у кого в самостоятельно размещённом Dify не устанавливается плагин или не загружается страница управления.
Она также пригодится разработчикам, которые поддерживают собственный Dify Docker Compose и получили ошибки после обновления.
Руководителям небольших команд она поможет отделить сбой конфигурации от обоснованной потребности в другой инфраструктуре.
Что именно не работает: установка, страница управления или запрос API
Ошибка установки — это наблюдаемый результат, а не готовый диагноз. До изменения конфигурации зафиксируйте, что именно видит пользователь, какой ответ возвращает API и в каком состоянии находятся API и Plugin Daemon. Если доступна только одна строка журнала без времени, контекста запроса и статуса сервисов, по ней нельзя надёжно установить первопричину.
Разделяйте как минимум три ситуации:
- Установка плагина завершается ошибкой. Запишите полный текст сообщения из интерфейса, время операции и название плагина. Затем проверьте, поступил ли соответствующий запрос в журналы API и Daemon.
- Страница управления плагинами не загружается или отображается неполно. Это может быть связано с ответом API, правами, состоянием приложения или сетевым запросом, а не обязательно с отказом самого Daemon.
- В ответе API есть ошибка соединения или HTTP-ошибка. Важны конкретный маршрут, код ответа и момент возникновения ошибки: отказ установить соединение отличается от ответа уже доступного сервиса.
Фраза Failed to request plugin daemon — полезная подсказка для поиска, но не причина сама по себе. Уточните, какой компонент её записал: API, фоновая задача или Plugin Daemon. Если журнал показывает предупреждение SDK, но при этом сервис здоров и запросы проходят, не следует автоматически объявлять Daemon неисправным.
Для сопоставления используйте один временной интервал: сохраните время операции, последние записи API и Daemon, а также состояние контейнеров. В примерах ниже строки вывода условные: формат и точные сообщения зависят от образа и версии. Отдельные сообщения пользователей в репозитории могут подсказать, какие симптомы искать, но они не доказывают, что у вашей установки та же причина.
Связь API с Daemon: проверяйте имя сервиса, а не запомнившийся IP
В конфигурации Docker Compose имя сервиса обычно служит стабильным способом обращения между контейнерами в одной сети. Контейнерный IP может измениться после пересоздания, поэтому постоянный адрес, взятый из старого вывода inspect, часто превращает временную диагностику в будущую неисправность. Поведение сети и поиск сервисов по имени описаны в документации Docker Compose о сетях.
Сначала посмотрите, какие сервисы запущены и к каким сетям они подключены:
docker compose ps
docker network ls
docker network inspect <имя_сети>
Подставляйте фактическое имя сети из вывода Compose. В docker network inspect проверьте, присутствуют ли в одной ожидаемой сети контейнеры API и Plugin Daemon. Если Daemon отсутствует, сначала выясните, не завершился ли он при запуске, не остановлен ли профилем и не находится ли за другим именем проекта Compose.
Затем выполняйте проверку из контейнера API, а не с хоста:
docker compose exec api sh
getent hosts <имя_сервиса_daemon>
Здесь api и <имя_сервиса_daemon> — примеры обозначений, а не универсальные имена для каждого файла. Найдите реальные имена в своём Compose. Если в образе нет getent, используйте доступный диагностический инструмент, например nslookup, если он установлен. Важно проверить разрешение имени именно из окружения API: успешный запрос с хоста ничего не говорит о доступе между двумя контейнерами.
Если имя разрешается, проверьте соединение с адресом и портом, которые заданы в текущей конфигурации для данного режима развёртывания. Сначала определите их в Compose и переменных окружения; не подставляйте номер порта из инструкции для другой версии:
nc -vz <имя_сервиса_daemon> <порт_из_конфигурации>
Интерпретируйте результат осторожно. Ошибка разрешения имени направляет проверку к названию сервиса и общей сети. Отказ соединения может указывать на неверный порт, незапущенный процесс или доступность только на другом интерфейсе. Успешное TCP-соединение подтверждает лишь доступность порта: оно не проверяет секрет, правильность HTTP-запроса или возможность выполнить операцию плагина.
Если требуется проверить порядок запуска зависимостей, сопоставьте его с фактической готовностью процесса. Само наличие depends_on не означает, что приложение уже принимает запросы. В документации Compose о порядке запуска описано, как учитывать проверки готовности, если конфигурация и используемые механизмы поддерживают такой вариант.
API-контейнер не видит Plugin Daemon: как проверить сетевую связь?
Начните с разрешения имени Daemon внутри API-контейнера, затем проверьте TCP-соединение с портом из активной версии конфигурации. Если имя не разрешается, выясните, подключены ли контейнеры к общей сети и совпадает ли имя с именем сервиса. Если имя разрешается, но соединение отвергается, проверьте состояние Daemon, его фактический порт и привязку процесса. Не фиксируйте временный IP вручную, если официальный файл для вашей версии использует сервисное имя.
Для каждой проверки записывайте команду, время и результат. Например, getent вернул имя и адрес, а nc сообщил об отказе соединения. Это гораздо полезнее, чем заметка «сеть вроде работает»: она позволяет увидеть, на каком именно этапе возникает сбой. Так можно ответить и на вопрос, связана ли ошибка установки с сетью: связь подтверждается не фактом запуска контейнеров, а проверками из нужного контейнера и соответствующими записями API и Daemon.
URL и секреты: сверяйте параметры одной схемы развёртывания
Следующий шаг — проверить, совпадают ли адреса и секреты, которыми пользуются компоненты. Не объединяйте значения из разных примеров и режимов запуска: разработческая среда с промежуточными сервисами и полноценный контейнерный запуск могут ожидать разные настройки.
В частности, localhost внутри контейнера означает сам этот контейнер. Поэтому адрес localhost в параметре API не станет адресом Plugin Daemon только потому, что оба процесса запущены на одном сервере. Чтобы подтвердить, куда направляется запрос, найдите фактическую переменную в среде API и проследите, откуда она получает значение: из файла .env, Compose-описания, переменной окружения при запуске или другого источника.
В официальном шаблоне переменных Plugin Daemon можно проверить назначение параметров, связанных с его работой. Однако шаблон из ветки main может измениться; для исправления действующей установки сопоставляйте значения с тем релизом, который у вас реально развёрнут. Не копируйте ключи из примера или чужого контейнера: проверьте, что компоненты одной установки используют согласованные значения согласно актуальной документации этой версии.
Что проверить в адресах и секретах
- Получите актуальный Compose-файл и
.env, по которым действительно запущен проект. Не считайте локальный файл актуальным, если развёртывание запускается из другого каталога или автоматизированного процесса. - Найдите параметры API, относящиеся к Plugin Daemon, и соответствующие параметры самого Daemon. Сопоставьте адрес, порт и секрет по именам и назначениям, сверяясь с официальным шаблоном для своей версии.
- Проверьте, не указывает ли адрес на
localhost, если целевой компонент находится в другом контейнере. - Убедитесь, что в API и Daemon не попали разные значения после ручного редактирования, обновления секрета или восстановления из резервной копии.
- После изменения примените конфигурацию тем способом, который предусмотрен для вашей версии, и вновь проверьте журналы обоих сервисов.
Не публикуйте значения секретов в заявке, снимке экрана или открытом журнале. Для диагностики достаточно показать, что параметр задан и согласован, не раскрывая его содержимое. Если страница управления плагинами не загружается, одновременно проверьте, какой именно запрос в ней завершился ошибкой и какой компонент записал соответствующую запись: интерфейсный симптом не указывает автоматически на неверный ключ.
Dify Plugin Daemon доступен, но запрос завершается ошибкой?
Тогда разделите транспортную и прикладную проверки. Доступный порт не подтверждает корректность секрета, совместимость интерфейсов или успешный запуск конкретного плагина. Сопоставьте время запроса в API и Daemon, проверьте HTTP-ответ и изучите записи Daemon, относящиеся именно к этой операции. Если запрос дошёл, а ошибка возникает при инициализации одного плагина, не делайте вывод, что недоступен весь Daemon.
Для проверки соответствия конфигурации используйте официальный Compose-файл Dify версии 1.18.0 и шаблон переменных окружения этой версии. Эти материалы помогают сопоставить структуру и переменные, но не являются готовой заменой вашей настройке: локальные изменения, профиль запуска и дополнительные сервисы нужно учитывать отдельно.
После обновления: установите, не разошлись ли версии файлов и образов
Ошибка, возникшая после обновления, часто требует проверки не только тега основного приложения, но и полной согласованности комплекта: Compose-файла, .env, образов сервисов и сохранённых изменений. Нельзя считать, что старый файл развёртывания автоматически подходит к новому образу, или что обновление только одного контейнера завершает обновление всей установки.
Для версии 1.18.0 используйте опубликованные инструкции Dify по Docker-развёртыванию вместе с соответствующими Compose-описанием и шаблоном окружения. В официальной ленте выпусков версия 1.18.0 указана как выпущенная 23 октября 2026 года. Это подтверждает дату релиза, но само по себе не означает, что конкретная ошибка плагинов была исправлена именно в нём.
Сделайте сверку в контролируемом порядке:
- Запишите версии и теги образов, фактически запущенных контейнеров. Важны реальные теги, а не только предполагаемое значение в файле.
- Сравните текущие Compose и
.envс файлами того релиза, который вы устанавливаете. Изменения, внесённые вручную, переносите осознанно, а не копированием всего старого файла поверх нового. - Проверьте, присутствует ли Plugin Daemon в обновлённой конфигурации и совпадают ли его ожидаемые адреса и параметры с настройками API.
- Проверьте журналы запуска после пересоздания контейнеров. Ошибка загрузки конфигурации и ошибка отдельного запроса плагина — разные этапы.
- Сохраните копии файлов и журналов до следующего изменения, чтобы иметь возможность сравнить результат и откатить ошибочное редактирование.
Не используйте старый номер порта или готовый блок окружения из отдельного обсуждения, пока не подтвердили его соответствие текущему релизу и схеме запуска. Вопросы пользователей в репозитории показывают, что ошибки запроса Plugin Daemon встречались в разных версиях и режимах, но отдельные сообщения не доказывают общей первопричины. Для итогового вывода нужны воспроизводимая проверка и сведения о конкретной установке.
Проверка после исправления: подтвердите работу плагина от интерфейса до сервиса
Успешное прохождение одной сетевой команды — промежуточный результат, не критерий завершённого исправления. Проведите тест через ту же операцию, которая раньше завершалась ошибкой, и зафиксируйте результаты по всей цепочке: действие в интерфейсе, запрос API, обращение к Plugin Daemon и итоговое состояние плагина.
Перед тестированием проверьте, что все обязательные контейнеры находятся в ожидаемом состоянии. Выполните одну контролируемую операцию с плагином и сохраните время её запуска. Затем проверьте, что страница управления загружается, API не возвращает ошибку соединения, а журналы Daemon относятся к этой же операции. Если тест не прошёл, сопоставьте запись API с записью Daemon по времени и характеру ответа, прежде чем менять следующий параметр.
Для воспроизводимости сохраните:
- версию Dify и теги используемых образов;
- Compose-файл и перечень изменённых переменных без открытых секретов;
- схему сетей и реальные имена сервисов;
- команды проверки DNS и соединения с их выводом;
- результат установки и состояние страницы управления;
- относящиеся к тесту записи API и Plugin Daemon.
Означает ли ошибка установки, что нужен другой сервер?
Нет, не сама по себе. Если проблема вызвана неверным DNS-именем, несогласованным секретом, ошибкой Compose или смешанными версиями файлов, перенос на другую машину не исправит конфигурацию. Оценивать инфраструктуру следует после подтверждения, что цепочка запросов настроена правильно, а сбой связан с устойчивой нехваткой ресурсов или требованиями длительной эксплуатации.
При таком решении отдельно учитывайте потребление памяти всеми сервисами, объём документов и журналов, рост базы данных и резервное копирование. Не переносите данные, не согласовав, где хранятся каталоги и тома, и как будет проверено восстановление. Для предварительной оценки требований к памяти и дискам полезно составить собственный перечень сервисов и фактических данных, а не ориентироваться на единый универсальный минимум. До выбора размещения также проверьте границы и условия услуги, чтобы не приписывать серверу возможности, которые не заявлены в условиях.
| Наблюдение | Что оно подтверждает | Следующая проверка |
|---|---|---|
| API-контейнер не разрешает имя Daemon | Запрос не находит адрес по текущему имени сервиса | Сверить имя в Compose и общую сеть контейнеров |
| Имя разрешается, TCP-соединение не устанавливается | DNS работает, но доступ к заданному порту не подтверждён | Проверить состояние Daemon, порт и настройки прослушивания |
| Порт доступен, но API получает отказ | Транспортный доступ есть, успешный запрос не подтверждён | Сверить URL, секрет и версионную схему параметров |
| Запрос доходит, ошибка появляется при запуске одного плагина | Общая доступность Daemon не исключает ошибку конкретного плагина | Сопоставить журналы этой операции и состояние плагина |
| Сбой начался после обновления | Временная связь с изменением требует проверки | Сравнить версии образов, Compose, .env и локальные правки |
Чтобы исключить пропущенный шаг, пройдите проверку перед повторным развёртыванием или переносом:
- [ ] Сохранены полный текст ошибки, время операции и имя компонента, который записал сообщение.
- [ ] Проверено состояние API и Plugin Daemon по фактически запущенным контейнерам.
- [ ] Из контейнера API проверяется имя сервиса Daemon, указанное в актуальном Compose.
- [ ] API и Daemon подключены к ожидаемой общей сети.
- [ ] Порт взят из файлов текущего релиза, а не из чужого примера.
- [ ] Адрес и секреты сверены между компонентами без публикации самих секретов.
- [ ] После обновления сопоставлены теги образов, Compose и шаблон окружения.
- [ ] Проведена повторная установка или другая прежняя операция через интерфейс.
- [ ] Результат подтверждён по журналам API и Daemon за один и тот же временной интервал.
| Вариант решения | Когда он подходит | Ограничение, которое важно учесть |
|---|---|---|
| Исправить текущий Compose | Найдено неверное имя, сеть, адрес, секрет или несовпадение версий | Нужно проверить конфигурацию после применения и сохранить изменения |
| Оставить приложение на текущей инфраструктуре | Связь и конфигурация восстановлены, а постоянный дефицит ресурсов не подтверждён | При росте нагрузки потребуется повторная оценка памяти, хранения и резервирования |
| Перейти на выделенный сервер | Нужна длительная работа нескольких сервисов с отдельной машиной и предсказуемым распределением ресурсов | Сервер не исправляет ошибку сети, ключей или версий; эксплуатацию и резервные копии всё равно нужно организовать |
Если после исправления Plugin Daemon работает, а ресурсов текущей среды достаточно, менять размещение ради одной ошибки не требуется. Если же вы планируете постоянно обслуживать Dify, базу знаний и сопутствующие сервисы, сравните совместно используемый VPS с выделенной машиной: у общей среды могут проявляться конкуренция с соседними задачами, ограничения на системные настройки и непрозрачность распределения ресурсов. Аренда независимого AMD-сервера у OSFP Cloud может быть уместна именно при потребности в выделенной машине для длительной эксплуатации, но не как универсальный способ чинить Plugin Daemon. Перед выбором сверьте фактические требования к памяти, хранилищу, ОС и резервному копированию с текущими условиями услуги.
Разверните собственную инфраструктуру на OSFP Cloud
Получите физический сервер целиком в Токио — без разделения ресурсов с другими арендаторами.
от $462 / мес.