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 —
AntivirusFileRulefor Filament / Laravel forms - Quarantine — move infected files to
storage/app/quarantine/ - Incident log —
antivirus_incidentstable - 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
alizharb/filament-activity-log
A security-first audit control center for Filament v4 and v5 with tenant isolati...
144,072
31
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