PHP MIT

filament-spatie-laravel-health

Monitor the health of a Laravel application

S

shuvroroy

Dernière activité 16 sept. 2026
shuvroroy/filament-spatie-laravel-health

197

étoiles

42

forks

2

issues ouvertes

Ce README est souvent en anglais.

Filament Spatie Laravel Health

PHP Version Require GitHub Tests Action Status Latest Stable Version Total Downloads License

This package adds a Filament page for monitoring checks registered with spatie/laravel-health. It supports Filament 4 and 5 and PHP 8.2 or newer.

Screenshot 2023-08-04 at 10 06 01 PM

Installation

Install the package via Composer:

composer require shuvroroy/filament-spatie-laravel-health

Laravel Health can store results in various ways. If you use its default Eloquent result store, publish and run the migration that creates the health_check_result_history_items table:

php artisan vendor:publish --tag="health-migrations"
php artisan migrate

Publish Filament's assets:

php artisan filament:assets

Usage

Register the plugin in your Filament panel provider, such as AdminPanelProvider:

<?php

namespace App\Providers\Filament;

use Filament\Panel;
use Filament\PanelProvider;
use ShuvroRoy\FilamentSpatieLaravelHealth\FilamentSpatieLaravelHealthPlugin;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            // ...
            ->plugin(FilamentSpatieLaravelHealthPlugin::make());
    }
}

Register your health checks in the boot() method of app/Providers/AppServiceProvider.php:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Spatie\Health\Facades\Health;
use Spatie\Health\Checks\Checks\DebugModeCheck;
use Spatie\Health\Checks\Checks\EnvironmentCheck;
use Spatie\Health\Checks\Checks\OptimizedAppCheck;

class AppServiceProvider extends ServiceProvider
{
    public function boot(): void
    {
        Health::checks([
            OptimizedAppCheck::new(),
            DebugModeCheck::new(),
            EnvironmentCheck::new(),
        ]);
    }
}

See the available checks in the Laravel Health documentation.

Customising the navigation

The plugin exposes methods for changing the page's navigation group, sort order, icon, and label. Each option also accepts a closure when the value needs to be determined at runtime.

FilamentSpatieLaravelHealthPlugin::make()
    ->navigationGroup('System')
    ->navigationSort(10)
    ->navigationIcon('heroicon-o-cpu-chip')
    ->navigationLabel('Application Health');

Pass null to navigationGroup() to remove the default navigation group. Pass null to navigationLabel() to use the translated default label.

Using a custom page

Extend the default page when you need to customise page-specific behavior, such as its heading or view. Configure navigation through the plugin methods described above.

<?php

namespace App\Filament\Pages;

use Illuminate\Contracts\Support\Htmlable;
use ShuvroRoy\FilamentSpatieLaravelHealth\Pages\HealthCheckResults as BaseHealthCheckResults;

class HealthCheckResults extends BaseHealthCheckResults
{
    public function getHeading(): string | Htmlable
    {
        return 'Health Check Results';
    }
}

Then pass the custom page class to the plugin in your panel provider:

<?php

namespace App\Providers\Filament;

use App\Filament\Pages\HealthCheckResults;
use Filament\Panel;
use Filament\PanelProvider;
use ShuvroRoy\FilamentSpatieLaravelHealth\FilamentSpatieLaravelHealthPlugin;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            // ...
            ->plugin(
                FilamentSpatieLaravelHealthPlugin::make()
                    ->usingPage(HealthCheckResults::class),
            );
    }
}

Authorising access

The page is accessible by default. Pass a boolean or closure to authorize() to restrict access:

<?php

namespace App\Providers\Filament;

use Filament\Panel;
use Filament\PanelProvider;
use ShuvroRoy\FilamentSpatieLaravelHealth\FilamentSpatieLaravelHealthPlugin;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            // ...
            ->plugin(
                FilamentSpatieLaravelHealthPlugin::make()
                    ->authorize(fn (): bool => auth()->user()?->email === 'admin@example.com'),
            );
    }
}

Upgrading

Please see UPGRADE for details on how to upgrade 1.X to 2.0.

Testing

composer test
composer test:coverage
composer analyse
composer format

The coverage command requires Xdebug or PCOV and fails when coverage is below 100%.

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

Projets similaires

Check the health of your Laravel app

PHP
Sspatie
891 étoiles178

Don't let your servers just melt down

PHPdevopslaravelmonitor
Sspatie
846 étoiles95

A PHP application to monitor the health of your servers

PHPhostinglaravelnotifications
Sspatie
174 étoiles22