Job-class observability and safe cancellation for Laravel apps running Horizon.
Horizon flies the workers. Deck runs the operation.
Deck is a durable control plane on top of Horizon: per job-class history, searchable executions, cooperative cancel, dispatch blocking, and optional Deck Cloud when you run many services. It does not replace php artisan horizon.
composer require deck/deck
php artisan deck:install
php artisan migrateOpen /deck. Reuse Horizon’s authorization gate by default.
DECK_PROJECT=billing-api
DECK_ENVIRONMENT=productionOptional Cloud agent (three variables):
DECK_API_KEY=your-agent-token| Guide | |
|---|---|
| Getting started | Install, migrate, Horizon auth, assets |
| Horizon & Deck | What each tool is for |
| Usage | Dashboard, cancel, block, retry, alerts |
| Production | Dedicated DB, retention, Redis, security |
| Configuration | Environment variables and config keys |
| Deck Cloud | Multi-app control plane and agent API |
Also on deckapp.cloud/docs when published.
Changelog: CHANGELOG.md · Security: SECURITY.md
| Horizon gives you | Deck adds |
|---|---|
| Worker supervision and auto-balancing | Per job-class last run and status |
| Recent jobs in Redis (short retention) | Durable execution log in your database |
| Failed job retry UI | Search and filter by class, queue, connection, tag |
| Throughput and wait-time metrics | Cooperative cancel and block job classes |
| — | Stale-job and unprocessed-queue alerts |
Every row is scoped by project and environment for multi-app teams and Deck Cloud.
PHP 8.3+ · Laravel 11–13 · Database · Redis (queues + cancel/block flags) · Horizon 5.x recommended
composer testMIT © Tor Morten Jensen. See LICENSE.md.
