Watchdog plugin screenshot
Dark mode ready
Multilingual support
Supports v5.x

Watchdog

Advanced security monitoring and intrusion detection plugin for FilamentPHP v5.

Tags: Panels
Supported versions:
5.x
Martin Knops avatar Author: Martin Knops

Documentation

FilamentWatchdog

Advanced security monitoring and intrusion detection plugin for FilamentPHP v5

License Latest Version on Packagist


#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

#License

MIT — see LICENSE.md


Made with ❤️ by MKWebDesign

The author

Martin Knops avatar Author: Martin Knops

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!

Plugins
2
Stars
31

From the same author