blomstra/flarum-horizon
Integrates Laravel Horizon with Flarum, giving administrators a built-in dashboard to monitor queues, jobs, throughput, and failures. Simplifies supervising Redis-backed workers and troubleshooting background tasks without leaving the Flarum admin area.
This extension surfaces the Laravel Horizon dashboard inside Flarum's admin panel, so you can watch queues, failed jobs and Redis stats without SSHing into the host or exposing Horizon's own HTTP routes.
Minimal setup:
composer require blomstra/flarum-ext-horizon in the Flarum root (the same place Horizon itself is installed).php flarum extension:enable blomstra-horizon.php flarum horizon (or artisan horizon) under supervisor/systemd, plus the usual config/horizon.php./admin and open the Horizon tab. First use case: watch a batch job (e.g. mass notification, reindexing) progress in real time and inspect failures in the "Failed Jobs" tab rather than tailing logs.If the dashboard renders but is empty, the problem is almost always Horizon/queue config, not the extension.
queue:work. Run php flarum horizon under supervisor with numprocs and balancing per environment; the dashboard's metrics only make sense when Horizon owns the workers.environments.<env>.supervisor-* blocks to isolate slow jobs (emails, exports) from fast ones; the dashboard's per-queue view is the quickest way to spot a starved queue.php flarum horizon:clear / horizon:forget in scripts or scheduled tasks rather than clicking through hundreds of entries.allkeys-lru under memory pressure is a classic cause of disappearing jobs./horizon/api/* endpoints behind a protected route) so alerts fire before queues back up.memory_limit in Horizon based on the dashboard showing auto, re-check on 0.4.3 — the displayed value now reflects reality and your assumptions may have been wrong.noeviction for dedicated queue Redis, or volatile-lru only if you accept losing jobs) and verify it in the UI instead of guessing from redis-cli CONFIG GET.vendor/bin/horizon or a stale config/horizon.php produces a blank dashboard with no error in the Flarum log.use connection setting; if Flarum queues go to default but Horizon watches horizon, you'll see nothing.trim settings silently drop old job data — raise trim.recent/trim.completed if you need historical forensics.horizon:clear in a scheduled command; the admin UI is not a substitute for retention policy.0.4.3 if you depend on accurate memory/eviction reporting; earlier 0.4.x lines display misleading Redis figures.How can I help you explore Laravel packages today?