Quick Start
The fastest path from an app with laravel/horizon already installed to a working Horizon dashboard backed by your database instead of Redis.
1. Install the package
composer require fabianpnke/horizon-db-driver
2. Publish and run the migrations
php artisan vendor:publish --tag="horizon-db-driver-migrations"
php artisan migrate
This creates the tables Horizon needs to store jobs, tags, supervisors, and metrics in your database — see Installation for the full table list.
3. Point a queue connection at the database driver
In config/queue.php:
'connections' => [
'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'default',
'retry_after' => 90,
],
],
4. Point Horizon's supervisor at that connection
In config/horizon.php, change the connection Horizon's supervisors use from redis to database:
'environments' => [
'production' => [
'supervisor-1' => [
'connection' => 'database',
// ...
],
],
],
5. Run Horizon
php artisan horizon
Visit /horizon in your browser — the dashboard now runs entirely off your database, no Redis connection required for Horizon itself.
Next steps
- Configuration — disable the driver per-environment, or point it at a non-default database connection.
- Usage — more on the
databasequeue connector and how it interacts with non-Horizon queues. - Switching from Redis — a couple of Horizon defaults that still assume Redis, like
config('horizon.waits')and theHorizon::use()boot check.