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

Вместо предисловия
Прошлой статьёй (Mini Bucket 3.6.2: от беты к релизу) я показал, как панель доросла до стабильного состояния. Закрыли дыры, разнесли базы, добавили HTTPS. Ну и что? Панель как панель.
Но меня всегда напрягало одно: в любой такой системе «из коробки» есть 80% нужного и 20% того, чего лично вам не хватает. Ну вот нету там твоего любимого инструмента для бэкапов или кастомного виджета. И ты либо страдаешь, либо лезешь в чужой код.
Я помню чудное мгновение,
передо мной явилась ты.
Отобразив Error 500
я понял, серверу кранты.
Ну примерно как то так выглядели одни из попыток поправить код того же джилпи)
Поэтому:
С версии 3.6.4 Mini Bucket становится открытой платформой для плагинов.
Теперь любой желающий может дописать то, что нужно именно ему. И поделиться с сообществом.
? Двери открыты: что это значит на практике
Я не просто добавил кнопку «Установить плагин». Я переработал архитектуру так, чтобы:
✅ Плагин мог работать на локальном хосте (где стоит Mini-Bucket)
✅ Плагин мог работать на удалённых хостах через API
✅ Плагин мог быть установлен из репозитория основного сервера на удалённые серверы при первом использовании
✅ У плагина могла быть своя SQLite-база (без костылей)
✅ Плагин использовал системные API и аутентификацию — никаких дыр в безопасности
И всё это — на чистом PHP 7.0+, без фреймворков. Потому что мы помним про старый NAS на коленке.
? Первые плагины: Log Manager и Plugin Template
С открытием платформы я выпускаю два плагина. Один — для реальной работы. Второй — для тех, кто хочет создавать свои. Плагины реализованы по-разному, оба варианта рабочие.
? Log Manager — тот, кому надоел SSH ради логов
Вы знаете эту боль: что-то упало на сервере, нужно посмотреть логи. Вы лезете в SSH, cd /var/log/, grep, tail, less… А если серверов несколько — удовольствие растягивается.
Log Manager решает это.

Что умеет:
Добавлять любые логи на сервере — Nginx, Apache, MySQL, vsftpd, системные, свои.
Искать в реальном времени — вбил слово, строки подсветились моментально.
Смотреть в Live-режиме — новые записи подгружаются сами.
Экспортировать в TXT/JSON — скинул админу, он разбирается.
Очищать лог одной кнопкой — когда файл уже на гигабайт.

Главный плюс: не надо помнить пути к логам. Встроенный файловый браузер показывает структуру папок — выбираешь файл и работаешь.
? Plugin Template — стартовый набор для разработчика
Если вы хотите написать свой плагин — берите этот шаблон. Внутри уже есть:
Готовая структура файлов (
info.json, основной PHP, API-обработчик, JS, CSS).Авторизация и проверка API-ключа.
Поддержка своей SQLite-базы.
Примеры работы с API (
apiCall,showAlert).Готовый механизм удалённой установки на другие хосты.
Это как скелет, к которому остаётся приделать мясо вашей логики.
php
// Пример из API-обработчика — всё уже работает case 'get_plugin_status': echo json_encode(['success' => true, 'available' => true]); break;
Вы просто копируете, переименовываете по правилам (внимание, золотое правило: все имена должны совпадать!) и добавляете свои action.

? Как это работает внутри (очень кратко без технички)
Плагин — это ZIP-архив с определённой структурой.
Вы загружаете его в разделе Система → Плагины → Репозиторий.
Нажимаете «Установить». Скрипт распаковывает архив, кладёт файлы в нужные места, даёт права.
Плагин появляется в меню (или в разделе Установленные плагины).
Если плагин поддерживает удалённые хосты — при первом обращении к удалённому серверу он предложит установку туда (через API).

Всё. Никаких ручных копирований по SSH.
Более подробно https://mini-bucket.ru/wiki/knowledge-base/dev-pugins/plugin-development/
? Экосистема: документация, форум, обновления
Проект живёт не только кодом. Я подготовил три опоры для сообщества разработчиков:
? Документация по разработке плагинов
Полное руководство: от создания info.json до готового Todo-листа.
Что внутри:
Жёсткие правила именования (чтобы плагин точно работал).
Описание всех файлов (какой за что отвечает).
JavaScript API (
apiCall,showAlert,escapeHtml).PHP API (валидация ключей, работа с БД).
Пример полного плагина (Todo List).
? Форум для обсуждения плагинов
Вопросы, идеи, готовые наработки, баг-репорты. Если застряли с разработкой — пишите, поможем.
? Страница всех плагинов
Один клик — и плагин скачан, загружен в репозиторий, готов к установке.
⚙️ Как получить эту красоту
Если у вас уже стоит Mini-Bucket (версия 3.6.2 и выше):
Зайдите в System → Update.
Нажмите «Проверить обновления».
Установите версию 3.6.4.
Если вы новый пользователь:
Скачайте установщик с официальной страницы установки.
Поставьте на чистый Debian 9 (инструкция есть на сайте).
После установки вы сразу получите версию 3.6.4 с поддержкой плагинов.
? Мои мысли вслух: почему это важно
Когда я начинал Mini Bucket, я просто хотел удобные странички для SAMBA и NFS. Потом подтянулись диски, крон, фаервол, пользователи. Панель разрослась. Но я понимал, что кому-то хватит и этого, а кому-то нужна фича, которой нет.
С открытием платформы плагинов я снимаю с себя ответственность «знать все потребности». Теперь каждый администратор или разработчик может дописать то, что нужно лично ему.
Хотите свой бэкап на S3? Пишите плагин.
Хотите мониторинг температуры дисков? Плагин.
Хотите интеграцию с Telegram-ботом? Пожалуйста.
И не нужно ждать, пока я раскачаюсь и добавлю это в ядро. Просто берёте шаблон и делаете.
Mini Bucket превращается из продукта в платформу. А это, знаете, совсем другой уровень.
? Полезные ссылки
P.S. Обратная связь и призыв
Если вы уже пишете плагин — дайте знать на форуме. Если у вас есть идея, но нет времени — напишите, может, я возьмусь.
И помните: плагины — это не только про расширение функционала. Это про то, что Mini Bucket теперь ваш. Вы можете его изменять, дополнять, адаптировать под свои сумасшедшие серверные задачи.
А я пойду дальше — готовить следующие плагины. Идеи уже есть.
P.S. Скриншоты в статье с реального сервера. Всё работает именно так, как показано.