Watchdog
Advanced security monitoring and intrusion detection plugin for FilamentPHP v5.
Author:
Martin Knops
Documentation
- Requirements
- Features
- Installation
- Panel Registration
- Initial Setup
- Cron Setup
- Environment Variables
- Artisan Commands
- Configuration
- Author
- License
Advanced security monitoring and intrusion detection plugin for FilamentPHP v5
#Requirements
- PHP 8.2+
- Laravel 11+, 12+ or 13+
- FilamentPHP 5.x
#Features
- File Integrity Monitoring — SHA-256 hash baseline with automatic change detection
- Malware Detection — Pattern-based scanning with 40+ signatures, auto-updated from GitHub
- Security Alerts — Severity-based alerting with professional HTML email notifications
- Activity Logging — Track logins, admin actions and high-risk events
- Emergency Lockdown — One-click maintenance mode with admin bypass
- Quarantine System — Isolate suspicious files automatically
- Dynamic Signature Updates — Fetch the latest malware signatures via dashboard button or scheduler
- Artisan Commands — Manual scans, baseline creation, signature updates, cleanup and debug tools
- Laravel Scheduler — Automated scans every minute, signature updates weekly via cron
#Installation
composer require mkwebdesign/filament-watchdog-v5
Publish the config:
php artisan vendor:publish --tag=filament-watchdog-config
Run the migrations:
php artisan migrate
#Panel Registration
Add the plugin to your AdminPanelProvider:
use MKWebDesign\FilamentWatchdog\FilamentWatchdogPlugin;
->plugin(FilamentWatchdogPlugin::make())
#Initial Setup
After installation, create a security baseline and fetch the latest malware signatures:
php artisan watchdog:baseline
php artisan watchdog:update-signatures
The baseline snapshot is required before the scanner can detect file changes. Without it, every file will be flagged as new on the first scan.
#Cron Setup
Add the standard Laravel scheduler to your crontab:
* * * * * cd /path/to/project && php artisan schedule:run >> /dev/null 2>&1
The scheduler will run file scans every minute, clean up old logs daily and update malware signatures weekly.
#Environment Variables
Add these to your .env file to configure email alerts:
WATCHDOG_EMAIL_ENABLED=true
WATCHDOG_EMAIL_RECIPIENTS=security@yourdomain.com
WATCHDOG_MIN_SEVERITY=high
Optionally override the signatures source URL:
WATCHDOG_SIGNATURES_URL=https://raw.githubusercontent.com/MKWebDesign/filament-watchdog-v5/main/signatures.json
#Artisan Commands
# Create a security baseline (required after installation)
php artisan watchdog:baseline
# Run a full security scan
php artisan watchdog:scan
# Update malware signatures from remote database
php artisan watchdog:update-signatures
# Show debug info and statistics
php artisan watchdog:debug
# Clean up old logs
php artisan watchdog:cleanup --days=30
# Emergency lockdown
php artisan watchdog:emergency-lockdown activate
php artisan watchdog:emergency-lockdown deactivate
#Configuration
After publishing, edit config/filament-watchdog.php to configure monitored paths, excluded paths, malware signatures, email recipients and more.
#Author
Martin Knops | MKWebDesign
- Website: mkwebdesign.nl
- GitHub: @mkwebdesign
#License
MIT — see LICENSE.md
Made with ❤️ by MKWebDesign
The author
I am Martin Knops, a freelance PHP developer and founder of MKWebDesign.nl. With years of experience in Laravel and FilamentPHP, I build custom solutions for clients with a strong focus on quality, security, and ease of use.
Feel free to reach out on GitHub if you have any questions or suggestions!
From the same author
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
Data Lens
Advanced Data Visualization for Laravel Filament - a premium reporting solution enabling custom column creation, sophisticated filtering, and enterprise-grade data insights within admin panels.
Padmission
Custom Fields
Eliminate custom field migrations forever. Let your users create and manage form fields directly in Filament admin panels with 20+ built-in field types, validation, and zero database changes.
Relaticle