porro

Connectors

Filament

Install porro/filament-connector for Site Health and Blocking pages in your Filament panel.

porro/filament-connector adds a Porro group to your Filament panel with Site Health and Blocking, plus a dashboard widget. It works with Filament 3.2, 4 and 5 on Laravel 11–13 and PHP 8.2+. It includes the Laravel connector, so its commands and settings apply too.

Install

composer require porro/filament-connector
php artisan migrate

Add the plugin to the panel you want it in, usually your admin panel:

use Porro\Filament\PorroPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugin(PorroPlugin::make());
}

No assets to publish or build. To report to Porro as well, connect the site.

Options

PorroPlugin::make()
    ->widget(false)                 // no dashboard widget
    ->navigationGroup('Settings')   // instead of "Porro"
    ->navigationSort(90)
    ->authorize(fn ($user) => $user->can('view site health'))
    ->authorizeManage(fn ($user) => $user->can('block ips'));   // who can block and safelist

Who can see it

In order:

  1. Your authorize() callback.
  2. A viewPorroSiteHealth gate, if your app defines one.
  3. Admins, when your users have the usual markers: an isAdmin() or isSuperAdmin() method, an is_admin attribute, or a spatie/laravel-permission super_admin or admin role.
  4. Otherwise nobody, until you say who can.

Blocking and safelisting check your authorizeManage() callback, then a managePorroBlocklist gate; without either, whoever can see the pages can change the lists.

What's in it

  • Site Health: the Laravel connector's checks with Filament and Livewire updates, and the suspicious activity summary with the IPs worth a look. See Suspicious activity.
  • Blocking: where blocks are enforced, the blocklist and safelist, and what's always protected. See Blocking.
  • Dashboard widget: the last result, lazy-loaded, so the dashboard never waits on the checks.

The /porro page turns itself off on Filament sites, since the panel shows the same things. PORRO_PAGE=true brings it back.

Try it on your sites.

28 days free, no card needed. Import your sites from Forge, Laravel Cloud or Ploi in a couple of minutes.

Start your free trial →