johnrivera7/filament-antivirus

Filament Antivirus — ClamAV upload scanning, quarantine and file security dashboard for Laravel.
907 4
Install
composer require johnrivera7/filament-antivirus
Latest Version:v1.0.0
PHP:^8.2
License:MIT
Last Updated:Aug 28, 2026
Links: GitHub  ·  Packagist
Maintainer: Johnrivera7

Antivirus

Filament Antivirus — ClamAV upload scanning, quarantine and file security dashboard for Laravel.

Stable ^1.0 (MIT). Sibling of filament-cybersecurity (read-only posture). This plugin acts on files: scan, block uploads, quarantine.

Features

  • Antivirus Dashboard — engine status, incidents, quarantine stats
  • ClamAV via clamdscan / clamscan (configurable)
  • Null driver for local dev without ClamAV
  • Upload validation — AntivirusFileRule for Filament / Laravel forms
  • Quarantine — move infected files to storage/app/quarantine/
  • Incident log — antivirus_incidents table
  • Artisan: antivirus:scan, antivirus:status
  • Facade: Antivirus::scanPath(), Antivirus::scanUpload()
  • ES / EN translations

Requirements

Stack Versions
PHP 8.2+
Laravel 11.28+ / 12+ / 13+
Filament 5.x
ClamAV optional (recommended in production)

Installation

composer require johnrivera7/filament-antivirus:^1.0
php artisan vendor:publish --tag="filament-antivirus-migrations"
php artisan migrate
php artisan vendor:publish --tag="filament-antivirus-config"

Register on your Filament panel:

use JohnRivera7\FilamentAntivirus\FilamentAntivirusPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            FilamentAntivirusPlugin::make()
                ->navigationGroup('Configuraciones')
                ->navigationLabel('Antivirus')
                ->navigationSort(7)
                ->permission(fn (): bool => auth()->user()?->hasAnyRole(['super_admin', 'admin']) ?? false),
        ]);
}

Configuration

ANTIVIRUS_DRIVER=clamav          # clamav | null
ANTIVIRUS_QUARANTINE=true
CLAMAV_BINARY=clamscan
CLAMAV_CLAMDSCAN_BINARY=clamdscan
ANTIVIRUS_PREFER_CLAMDSCAN=true

Upload validation

use JohnRivera7\FilamentAntivirus\Rules\AntivirusFileRule;

FileUpload::make('document')
    ->rules([new AntivirusFileRule()]);

CLI

php artisan antivirus:status
php artisan antivirus:scan
php artisan antivirus:scan /path/to/dir --purge

License

MIT © John Rivera

Related Packages

laravelplus/content-security

Defense-in-depth content security for Laravel: malware scanning, MIME/magic-byte...

4 0
artisanpack-ui/secure-uploads

File upload security for Laravel — content-type validation, filename sanitizatio...

2,674 0
mkwebdesign/filament-watchdog-v5

Advanced security monitoring and intrusion detection plugin for FilamentPHP v5

3,063 4
tallcms/cms

TallCMS - A modern CMS for Filament admin panels. Works standalone or as a plugi...

1,998 5