javascript

Mini Bucket 3.6.4: теперь с плагинами — двери для разработки открыты

  • четверг, 11 июня 2026 г. в 00:00:11
https://habr.com/ru/articles/1046167/
Данное изображение продукт генерации ии и моих скринов.
Данное изображение продукт генерации ии и моих скринов.

Как мы превратили панель управления NAS в платформу для расширений, зачем туда Log Manager и для чего Plugin Template.

Сегодня на Хабре уже была похожая статья, но модератор её снял. Поэтому те, кто её уже видел, могут не тратить время на чтение этой версии.


Вместо введения

В прошлой статье (Mini Bucket 3.6.2: от беты к релизу) я показал, как панель доросла до стабильного состояния: закрыли дыры, разнесли базы, добавили HTTPS.

Но панель как панель. SMB, FTP и прочее — это стандартный набор почти любой админки. Пришло время расширять функционал.

Лучшим решением оказалось:

  • не городить модуль на модуле;

  • не гадать, кому и что может пригодиться;

  • не навязывать лишнего;

  • не отнимать у таких же, как я, энтузиазм и желание сделать что-то своё.

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

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


Итак, плагины

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

Не проблема: механизм уже наработан. За вечер я реализовал модуль плагинов.


Тут снова возникает вопрос:

А что, если на главном сервере плагин установлен, а на Slave — нет?

Во избежание этого был реализован механизм проверки плагина на сервере. Если на Slave-сервере плагина нет, а мы пытаемся им управлять, то увидим сообщение об отсутствии плагина и предложение его установить.

Вот здесь как раз и пригодится хранение в репозитории. Если согласиться с этим заманчивым предложением, то одним нажатием кнопки плагин будет загружен на целевой сервер и установлен. Страница перезагрузится — и теперь плагином можно управлять.

Позже сделаю контроль разности версий.


Что это даёт?

Все загруженные плагины могут храниться в репозитории Root-мастер-сервера и передаваться на узлы, а с них — на их подчинённые Slave-серверы. Не придётся ходить на каждый сервер и устанавливать плагин вручную. Ну разве не лепота?


Теперь расскажу о плагинах подробнее

Log Manager

Этот плагин был первым. Собственно, он и работал, помогая писать всю эту затею, чтобы потом писать другие.

Что умеет Log Manager:

  • Выбирать логи, которые всегда будут под рукой. Вы можете выбрать лог-файл в системе или указать путь к нему и сохранить в список. Больше не придётся ничего запоминать или, что ещё хуже, лезть в Google, чтобы найти нужный лог.

  • Отображать содержимое лог-файла.

  • Искать в реальном времени и работать в режиме живого обновления (удобно, когда ищешь проблему).

  • Очищать лог (обзорно или полностью удалить содержимое файла).

  • Экспортировать лог-файл.

Возможно, позже я реализую некий брокер логов, но думаю, для начала и этого достаточно.

Особенно удобно смотреть нужные логи на определённых серверах: переключаешься на нужный сервер и видишь список его логов с содержимым.


Plugin Template

Как понятно из названия, это шаблон плагина для разработки. Я постарался разнести всю стандартную логику по файлам.

Шаблон уже включает:

  • стандартные проверки безопасности;

  • режим определения хостов для переключения;

  • режим проверки наличия плагина на сервере.

Думаю, те, кто захочет присоединиться к расширению функционала, оценят.


Надеюсь найдутся те кто сможет обуздать шаблон и присоединится к расширению функционала. На этом все) спасибо за внимание!


P.S Оставлю полезные линки по статье:

Сайт проекта: https://mini-bucket.ru/

Плагины: https://mini-bucket.ru/plugins/

Раздел для плагинов на форуме: https://mini-bucket.ru/community/community/плагины/

WiKi for Developers: https://mini-bucket.ru/wiki/knowledge-base/dev-pugins/plugin-development/

Установка: https://mini-bucket.ru/install/

Для тех у кого уже установлен Mini Bucket готово обновление в интерфейсе в разделе Update.