Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама
Новини 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

Читати в документації

Коментарі

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

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

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

Fresh Package
Новини 19 вересня 2026

Fresh Package: новий скелет для розробки Laravel-пакетів з Testbench, CI та інтеграцією Boost

Fresh Package від Mazen Touati - це сучасний скелет для створення Laravel-пакетів, який включає тестове середовище, статичний аналіз, CI/CD, workbench-додаток та шаблони навичок для AI-агентів. Підтримує як backend-only, так і full-stack пакети.

5
Jev: модель, яка повертає рішення замість тексту - і вже є в Laravel AI SDK Рекомендовано
Новини 18 вересня 2026

Jev: модель, яка повертає рішення замість тексту - і вже є в Laravel AI SDK

TypeSafe AI випустила Jev - модель, яка не генерує текст, а повертає типізовані рішення з каліброваними ймовірностями за 70-500 мс. Через два дні підтримка приїхала в гілку 1.x пакета laravel/ai у вигляді API Classification з питаннями Boolean, Choice і Score.

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

Bitmotive LLC
18 днів тому

Fullstack Developer (Laravel + React)

Fullstack розробник для роботи над живими клієнтськими проєктами на Laravel API з React Native та Filament. Потрібна глибока експертиза в PHP/Laravel, компетенція в TypeScript/React, досвід роботи з PostgreSQL, AWS. Вимагається англійська B2+, тестова дисципліна, вміння швидко адаптуватися до різних стеків.

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

Laravel Activitylog

spatie/laravel-activitylog

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

5,895 5.1.1 13 21

Telescope

laravel/telescope

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

5,224 v5.24.0 13 6