This package provides a comprehensive system information page and widgets for Filament panels, showcasing current system versions, PHP information, and Composer dependencies.
You can install the package via composer:
composer require cmsmaxinc/filament-system-versions
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());}
php artisan vendor:publish --tag="filament-system-versions-migrations"php artisan migrate
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', ''), ],];
If you want to customize the translations, you can publish the translations file:
php artisan vendor:publish --tag="filament-system-versions-translations"
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:
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) );}
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)[!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
Add the command to your scheduler to run it automatically:
use Cmsmaxinc\FilamentSystemVersions\Commands\CheckDependencyVersions; // In your Console Kernel or service providerSchedule::command(CheckDependencyVersions::class)->daily();
You can also use the widgets independently in your own pages or dashboards:
Displays all outdated composer dependencies with current and latest versions:
use Cmsmaxinc\FilamentSystemVersions\Filament\Widgets\DependencyWidget; ->widgets([ DependencyWidget::class])
Shows system environment information:
use Cmsmaxinc\FilamentSystemVersions\Filament\Widgets\SystemInfoWidget; ->widgets([ SystemInfoWidget::class])
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'), ]; }}
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>
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';
info@cmsmax.com