Laravel Horizon
A beautiful dashboard and code-driven configuration for Laravel's Redis queues.
Repository Health
Technical Analysis
Laravel Horizon gives Redis-backed Laravel queues a real-time dashboard for monitoring job throughput, wait times, runtime, and failures, alongside a single configuration file that defines exactly how many workers run per queue, their balancing strategy, and scaling behavior. Rather than manually managing Supervisor process configs for queue:work, teams declare their worker topology in config/horizon.php and let Horizon’s master supervisor spawn, monitor, and auto-balance worker processes across queues.
Because the configuration lives in a version-controlled PHP file instead of server-specific process manager configs, an entire team can review and collaborate on queue worker changes the same way they review application code. The bundled dashboard (a Vue.js SPA served from Laravel routes) surfaces metrics, recent jobs, and failed jobs without needing a separate monitoring stack.
What You Get
- A Vue.js dashboard showing job throughput, wait times, runtime, and recent/failed jobs in real time
- A single config/horizon.php file defining worker pools, balancing strategy (auto, simple, false), and per-queue process counts
- A master supervisor process (php artisan horizon) that spawns and monitors worker child processes, restarting them on deploys or failures
- Tagging and metrics for jobs so failures and slow jobs can be traced back to their originating queue/job class
- Artisan commands (horizon:pause, horizon:continue, horizon:terminate, etc.) for controlling the supervisor from deploy scripts
Common Use Cases
- Replacing hand-written Supervisor process configs for php artisan queue:work with a single version-controlled configuration file
- Monitoring queue health in production - job throughput, wait times, and failure rates - without standing up a separate observability stack
- Auto-balancing worker processes across multiple queues based on load (Horizon’s auto balancing strategy)
- Gracefully pausing and resuming queue processing during deploys via horizon:pause/horizon:continue
Under The Hood
Architecture - Horizon’s core lives under src/: MasterSupervisorCommands/SupervisorCommands implement the process-spawning and control logic that reads config/horizon.php and manages worker child processes; Connectors adapts Laravel’s queue connections; Repositories persist job/metrics data to Redis for the dashboard to query; Http serves the dashboard’s API/controllers; and Console provides the Artisan commands operators use to start, pause, and inspect the supervisor.
Tech Stack - A Laravel package (PHP, requiring illuminate/queue, illuminate/contracts, illuminate/support) that leans on symfony/process for spawning worker processes and symfony/console for its own supervisor process, with nesbot/carbon and ramsey/uuid for time/id handling. The dashboard frontend is Vue.js with SCSS/Blade for the served admin UI, requiring the PHP pcntl and posix extensions since the master supervisor manages real OS processes.
Code Quality - 73 test files exercise the supervisor logic, connectors, and repositories using orchestra/testbench (the standard Laravel package-testing harness) and Mockery, reflecting active maintenance by the Laravel core team (Taylor Otwell, Dries Vints) with ~100 tagged releases and roughly weekly release cadence.
API Design - Adoption is deliberately low-friction for existing Laravel apps: install via Composer, publish the config, point queue connections at Redis, and run php artisan horizon - no code changes to job classes are required. The dashboard and Artisan commands mirror Laravel’s existing conventions (routes, middleware, service providers), so the learning curve is mostly limited to understanding the config/horizon.php schema rather than a new API surface.
Used by 6 apps in this directory
Coolify
Devops · Hosting Control Panel
Open-source self-hosted PaaS — deploy apps, databases and 280+ services on your own servers with no vendor lock-in
Mixpost
Marketing · Social Media
Self-host your own social media scheduler and publish to 11 platforms without subscriptions or data lock-in.
OpnForm
Forms Surveys · Marketing
Build unlimited, embeddable forms with no code — powered by AI, logic rules, and real-time analytics
Pixelfed
Social Media
A decentralized, self-hosted photo sharing platform built on ActivityPub for the open Fediverse.
SendPortal
Marketing
Self-hosted email marketing with full data control, multi-workspace isolation, and seamless integration with Amazon SES, SendGrid, Mailgun, and more
Vanguard Backup
Devops
Self-hosted backup automation for Ubuntu and Debian servers with S3 storage, SSH-based file and database backup, and multi-channel notifications.