Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти
Інше
Події Про нас
Новини 17 червня 2026

Filament Storage Monitor: відстежуйте використання дискового простору у Filament-панелі

Filament Storage Monitor - це плагін, який додає віджет до вашої Filament-панелі для моніторингу використання дискового простору сервера. Він зчитує статистику через нативні функції файлової системи PHP і відображає її у вигляді віджета, що органічно вписується в інтерфейс панелі. Плагін підтримує роботу з кількома розділами диска, користувацькі мітки та багато інших можливостей.

Реєстрація дисків

Плагін реєструється в панелі, де ви вказуєте, які шляхи потрібно відстежувати. Метод addDisk() приймає шлях і мітку безпосередньо, тоді як laravelDisk() підключає диск з вашого конфігураційного файлу config/filesystems.php:

use AchyutN\FilamentStorageMonitor\FilamentStorageMonitor;

return $panel
    ->plugins([
        FilamentStorageMonitor::make()
            ->addDisk('/mnt/data', label: 'Data Partition')
            ->laravelDisk(name: 'public', label: 'Media Storage'),
    ]);

Для більш детального контролю над окремим диском доступний метод add(), який приймає DTO Disk. Тут можна встановити колір, іконку Heroicon, а також шлях і мітку:

use AchyutN\FilamentStorageMonitor\DTO\Disk;
use AchyutN\FilamentStorageMonitor\FilamentStorageMonitor;
use Filament\Support\Colors\Color;
use Filament\Support\Icons\Heroicon;

FilamentStorageMonitor::make()
    ->add(
        Disk::make('web-root')
            ->path('/var/www/html')
            ->label('Web Root')
            ->color(Color::Green)
            ->icon(Heroicon::ComputerDesktop),
    )
    ->addDisk(
        path: '/mnt/backup',
        label: 'Backups',
        color: Color::Blue,
        icon: Heroicon::ArchiveBox,
    );

Авторизація на рівні окремих дисків

Інформація про використання диска може бути конфіденційною серверною інформацією, тому плагін дозволяє контролювати видимість на двох рівнях. Closure visible() на віджеті керує тим, чи відображатиметься весь віджет, а closure isVisible на окремому диску приховує лише цей конкретний запис:

FilamentStorageMonitor::make()
    ->visible(fn () => auth()->user()->is_admin) // Приховати весь віджет
    ->addDisk(
        path: '/var/www/html',
        label: 'App Files',
        isVisible: fn () => auth()->user()->can('view_server_stats') // Приховати конкретний диск
    );

Компактний режим

Для економії місця на дашборді компактний режим зменшує відображення кожного диска до його мітки та вільного простору:

FilamentStorageMonitor::make()
    ->compact();

Віджет також надає стандартні методи керування розміщенням: columnSpan(), columnStart(), sort() та lazy() для гнучкого позиціонування на дашборді.

Обробка помилок

За замовчуванням шлях, який неможливо розпізнати (наприклад, відсутня точка монтування), не призведе до краху панелі - віджет перехоплює помилку і продовжує рендеринг. Якщо ж ви хочете виявляти такі проблеми під час розробки, метод throwException() знову вмикає винятки. Він приймає closure, тому ви можете обмежити суворий режим лише локальним оточенням:

FilamentStorageMonitor::make()
    ->throwException(fn () => app()->isLocal());

Обмеження

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

Вихідний код, документацію та інструкції для контрибуторів можна знайти на GitHub.

36

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

Читайте також

CPX 2.0
Новини 01 серпня 2026

CPX: Інструмент для виконання Composer-пакетів без встановлення

CPX 2.0 - офіційний інструмент Laravel для запуску команд з будь-якого Composer-пакета без його встановлення в проєкт. Працює як npx для npm, усуває конфлікти залежностей і підтримує виконання PHP-файлів, gist-скриптів та REPL.

Human-in-the-Loop
Новини 31 липня 2026

Laravel AI SDK отримав функцію Human-in-the-Loop для підтвердження дій

На Laracon US 2026 команда Laravel представила API human-in-the-loop для Laravel AI SDK. Тепер агенти можуть зупинятися перед виконанням інструмента та чекати на підтвердження, відхилення або редагування аргументів людиною.

Вакансії за темою

SushiBang Нова
2 дн. тому

Middle Laravel / Filament Developer

Розробка та підтримка кастомної CRM-системи для доставки з використанням Laravel 12, Filament 5 та Livewire. Спеціаліст займатиметься проектуванням бази даних, розробкою модулів прийому/обробки замовлень, інтеграцією через REST API та оптимізацією. Вимагається глибоке розуміння Laravel, Filament та PostgreSQL, досвід з Livewire та SQL-оптимізацією. Важливі автономність і відповідальність.

Сайтпарк, ООО
23 дн. тому

Middle Full-Stack Developer (Laravel, Filament, Vue, Nuxt)

Віддалено B2B Middle ₴30,000 - ₴42,000

Middle Full-Stack Developer для розробки gifting-платформи. Потрібні глибокі знання Laravel, FilamentPHP (розробка адмін-панелей та компонентів), Vue 3 та Nuxt. Вимагається 2+ років комерційного досвіду, практичні навички роботи з REST API, архітектурою бекенду, кешуванням та реляційними БД (MySQL/PostgreSQL).

Пакети за темою

Laravel Activitylog

spatie/laravel-activitylog

Простий логер активності для моніторингу користувачів вашого веб-сайту або додатку.

5,870 5.0.0 13 16

Telescope

laravel/telescope

Елегантний помічник для налагодження фреймворку Laravel, який допомагає розробникам в розробці та тестуванні додатків.

5,204 v5.21.0 13 6