cmsmaxinc / filament-system-versions
A comprehensive Filament plugin that provides real-time visibility into all package versions within your Filament PHP application. This essential developer tool creates a centralized dashboard where you can instantly view, monitor, and track the current versions of all installed packages in your pro
Installs: 5 042
Dependents: 0
Suggesters: 0
Security: 0
Stars: 12
Watchers: 0
Forks: 6
Open Issues: 0
Requires
- php: ^8.2
- filament/filament: ^4.0.0
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.1
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
README
This package provides a comprehensive system information page and widgets for Filament panels, showcasing current system versions, PHP information, and Composer dependencies.
Features
- 📊 System Versions Page - A dedicated page displaying system information
- 🔍 Dependency Monitoring - Track outdated Composer dependencies
- 📈 System Stats Widget - Display Laravel and Filament versions
- ⚙️ System Info Widget - Show environment, PHP version, and Laravel version
- 🎨 Customizable Navigation - Configure navigation group, icon, label, and sort order
Installation
You can install the package via composer:
composer require cmsmaxinc/filament-system-versions
Setup
1. Register the Plugin
Add the plugin to your Filament panel configuration:
use Cmsmaxinc\FilamentSystemVersions\FilamentSystemVersionsPlugin; use Filament\Panel; public function panel(Panel $panel): Panel { return $panel // ... other configuration ->plugin(FilamentSystemVersionsPlugin::make()); }
2. Publish and Run Migrations
php artisan vendor:publish --tag="filament-system-versions-migrations"
php artisan migrate
3. Configuration (Optional)
Publish the config file:
php artisan vendor:publish --tag="filament-system-versions-config"
This is the contents of the published config file:
return [ 'database' => [ 'table_name' => 'composer_versions', ], 'widgets' => [ 'dependency' => [ 'show_direct_only' => true, ], ], 'paths' => [ 'php_path' => env('PHP_PATH', ''), 'composer_path' => env('COMPOSER_PATH', ''), ], ];
4. Translations (Optional)
If you want to customize the translations, you can publish the translations file:
php artisan vendor:publish --tag="filament-system-versions-translations"
Usage
Basic Usage
Once the plugin is registered, a "System Versions" page will automatically be added to your Filament panel under the "Settings" navigation group. This page displays:
- System version statistics (Laravel & Filament versions)
- Outdated dependency information
- System environment details
Customizing Navigation
You can customize the navigation appearance and behavior using fluent methods when registering the plugin:
use Cmsmaxinc\FilamentSystemVersions\FilamentSystemVersionsPlugin; public function panel(Panel $panel): Panel { return $panel // ... other configuration ->plugin( FilamentSystemVersionsPlugin::make() ->navigationLabel('System Info') ->navigationGroup('Administration') ->navigationIcon('heroicon-o-cpu-chip') // Or use Enum ->navigationSort(10) ); }
Available Configuration Methods
navigationLabel(string $label)
- Set the navigation menu label (default: 'System Versions')navigationGroup(string $group)
- Set the navigation group (default: 'Settings')navigationIcon(string $icon)
- Set the navigation icon (default: 'heroicon-o-document-text')navigationSort(int $sort)
- Set the navigation sort order (default: 99999)
Dependency Versions Command
Note
Make sure you run this command at least once to store the current composer dependencies.
To check for outdated composer dependencies:
php artisan dependency:versions
Automatic Scheduling
Add the command to your scheduler to run it automatically:
use Cmsmaxinc\FilamentSystemVersions\Commands\CheckDependencyVersions; // In your Console Kernel or service provider Schedule::command(CheckDependencyVersions::class)->daily();
Using Individual Widgets
You can also use the widgets independently in your own pages or dashboards:
DependencyWidget
Displays all outdated composer dependencies with current and latest versions:
use Cmsmaxinc\FilamentSystemVersions\Filament\Widgets\DependencyWidget; ->widgets([ DependencyWidget::class ])
SystemInfoWidget
Shows system environment information:
use Cmsmaxinc\FilamentSystemVersions\Filament\Widgets\SystemInfoWidget; ->widgets([ SystemInfoWidget::class ])
DependencyStat
Create custom stat widgets for specific dependencies:
use Cmsmaxinc\FilamentSystemVersions\Filament\Widgets\DependencyStat; use Filament\Widgets\StatsOverviewWidget as BaseWidget; class CustomStats extends BaseWidget { protected function getStats(): array { return [ DependencyStat::make('Laravel') ->dependency('laravel/framework'), DependencyStat::make('FilamentPHP') ->dependency('filament/filament'), DependencyStat::make('Livewire') ->dependency('livewire/livewire'), ]; } }
Adding Widgets to Blade Views
To add widgets to custom blade views:
<x-filament-panels::page> @livewire(\Cmsmaxinc\FilamentSystemVersions\Filament\Widgets\DependencyWidget::class) @livewire(\Cmsmaxinc\FilamentSystemVersions\Filament\Widgets\SystemInfoWidget::class) </x-filament-panels::page>
Custom Theme Support
If you're using a custom theme, add the following to your theme.css
file to ensure proper styling:
@source '../../../../vendor/cmsmaxinc/filament-system-versions/resources/**/*.blade.php';