Skip to content

This package offers a set of widgets to showcase the current system versions, including composer dependencies.

License

Notifications You must be signed in to change notification settings

cmsmaxinc/filament-system-versions

Repository files navigation

Filament System Versions

Filament System Versions

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';

Contact Info

[email protected]

About

This package offers a set of widgets to showcase the current system versions, including composer dependencies.

Resources

License

Stars

Watchers

Forks

Contributors 7