Artisan Commands and Scheduled Tasks (Crons) Command list, arguments/options, usage Artisan Commands Command Line Commands (Artisan) CFM includes a number of custom Laravel Artisan commands to help automate and manage blocklists, phishing detection, feed ingestion, and other system behaviors. To view available commands, use the following in your project root: php artisan Below is an overview of the key command groups available in CFM: ๐Ÿ”Œ agents Command Description agents:check-notifications Checks the last-seen status of each agent and sends notifications (e.g., Slack) if any are down. ๐Ÿ—‘๏ธ autodelete Command Description autodelete:run Runs AutoDeleteJob to remove old records (e.g., blocklist entries, logs) based on custom rules. ๐Ÿšซ blocklist Command Description blocklist:fetch-geodata Bulk fetches GeoIP data for blocklist entries (country, ASN, etc.). blocklist:resolve-geodata Resolves GeoIP data with optional processing limits for batching. blocklist:resolve-ptr Resolves PTR (Reverse DNS) records for IPs in batches. Parallel processing supported. ๐Ÿงน cache Command Description cache:clear Clears the Laravel application cache. ๐Ÿฆ  clamav Command Description clamav:generate-signatures Generates ClamAV-compatible signature files from phishing URLs and malware file hashes (MD5, SHA1, SHA256). โš™๏ธ config This section may include config sync-related commands, depending on future additions. ๐ŸŒ data-feeds Command Description data-feeds:fetch Fetches and processes all active data feeds configured in the system. import:blocklist Imports a list of IPs into the blocklist, whitelist, or greylist. import:domains Imports domains into the blocklist or whitelist. import:mail-filters Imports email sender/domain filters from a file. ๐Ÿ“„ iplists Command Description iplists:generate Generates whitelist.txt , greylist.txt , and blacklist.txt files from the database for CSF or DNS use. ๐Ÿ“ฌ mailfromfilters Command Description mailfromfilters:generate Generates mailfromfilters.cf used by the mail filtering system, based on DB entries. ๐Ÿง  spamassassin Command Description spamassassin:generate-rules Generates a SpamAssassin custom keyword rule file from the spam_keywords table. Supports strict and loose matching, Greek normalization, etc. These commands allow you to maintain and automate your security infrastructure directly from the console, and can be scheduled or run on-demand as needed. ย  Scheduled Tasks / Cron and Supervisor settings โฑ๏ธ Scheduled Commands (Cron) Scheduled tasks are defined in routes/console.php and executed using Laravel's schedule:run command. They can be run via a cron shell script or with a process manager like Supervisor . Shell Cron Example: #!/bin/bash cd "$(dirname "$0")" php artisan schedule:run >> /dev/null 2>&1 Supervisor Setup (Recommended) Service file: supervisor.service ย  [Unit] Description=Supervisor process control system for UNIX After=network.target ย  [Service] ExecStart=/usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown ExecReload=/usr/bin/supervisorctl -c /etc/supervisor/supervisord.conf $OPTIONS reload Restart=on-failure RestartSec=50s Program config: /etc/supervisor/conf.d/cfm.conf [program:cfm] command=php /home/cfm/artisan queue:work redis --memory=2048 --tries=3 --timeout=600 user=cfm autostart=true autorestart=true numprocs=2 redirect_stderr=true stdout_logfile=/var/log/supervisor/cfm.log ย  ย  Scheduled Commands Command Schedule Description iplists:generate Every 10 minutes Generate updated IP lists from the DB clamav:generate-signatures Hourly at :50 Generate ClamAV signature files agents:check-notifications Every minute Check agent status and send alerts autodelete:run Daily at 08:00 Run AutoDelete cleanup job config:sync-storage Every 5 minutes Sync configuration files from disk blocklist:resolve-ptr Every 10 minutes Resolve PTR records in batches blocklist:resolve-geodata Every 10 minutes Resolve ASN/Country data in bulk unblocks:cleanup Every 5 minutes Cleanup old unblock requests phishlist:generate Every 30 minutes Regenerate phishing domain list mailfromfilters:generate Hourly Regenerate mailfromfilters.cf execution:dispatch Every minute Dispatch queued execution rules DataFeedJob (callback) Every minute Dispatch data feed jobs for active feeds These scheduled commands are critical for keeping data up-to-date, automating cleanup, syncing feeds and configurations, and dispatching jobs to agents or queues. ย