bokt/flarum-horizon
A Flarum extension that brings Laravel Horizon's queue monitoring dashboard into the Flarum admin panel, letting admins inspect Redis-backed workers, job throughput, wait times, and failed jobs. Requires Horizon and a compatible Flarum/PHP setup.
What this is: blomstra/flarum-ext-horizon is a Flarum extension (not a standalone Laravel package) that embeds the Laravel Horizon dashboard and a Redis admin widget inside the Flarum admin panel. It is a thin integration layer over laravel/horizon and Flarum's Illuminate-based queue stack — the underlying runtime is Laravel components, which is why it reads as a "Laravel/PHP package," but the consumer is a Flarum forum operator, not a generic Laravel application.
Architecture fit: Reasonable if and only if the Flarum instance already runs Redis-backed queues and Horizon as its queue supervisor. The extension does not provision Horizon, supervisor, or Redis — it surfaces them. Value is concentrated in operational visibility for forum admins who already have this stack; for anyone on sync or database queues it is inert at best and a misleading dashboard at worst.
Integration feasibility: Low-friction install (composer require blomstra/flarum-ext-horizon, enable in admin), but configuration is coupled to Flarum's queue config and Horizon's own config file. Expect a non-trivial first-time setup step: pointing Horizon at the correct Redis connection and ensuring the Flarum queue worker is Horizon-managed rather than a bare queue:work process. That is real work, not a checkbox.
Technical risk:
imorland / Blomstra). Continuity risk is material for a dependency that sits on your queue-observability path.laravel/horizon version range simultaneously. Three moving parts, one maintainer.Key questions:
laravel/horizon and Flarum version ranges does 0.4.3 actually support, and is that matrix tested in CI?CONFIG GET / INFO values or cached/stale config — i.e. can we trust it for incident triage after the 0.4.3 fix?Stack fit: Only fits a Flarum 1.x instance on PHP 8.x with Redis and Horizon already in play. If the forum uses a single-server, low-volume deployment with sync or database queues, this is the wrong tool — the operational overhead of adding Redis + Horizon + supervisor exceeds the monitoring benefit.
Migration path: Treat this as an additive admin-surface change, not an infrastructure change. If Horizon is not yet installed, split into two phases: (1) move queues to Redis and stand up Horizon independently, validated over at least one full deploy/restart cycle; (2) add the Flarum extension to surface it. Do not do both in one release. If Horizon is already running, this is a single composer update plus an admin toggle.
Compatibility: Pin explicitly. Given pre-1.0 status, use a caret constraint bounded below the next minor (^0.4.3 with a deliberate review at 0.5.0), lock the laravel/horizon version, and record the tested Flarum/PHP combination in your dependency notes. Verify the extension's composer.json constraints before upgrading Flarum — that is the most likely breakage vector, and it will surface as a broken admin page rather than a hard failure.
Sequencing:
maxmemory-policy from CONFIG GET.redis-cli INFO memory and CONFIG GET maxmemory — do not take the dashboard's word for it on first install.Maintenance: Low ongoing effort but non-zero ownership. Budget for a dependency review each time Flarum or Horizon ships a release, and expect occasional patch releases like 0.4.3 that are cosmetic on the surface but touch correctness of displayed values. Because it is a single-maintainer extension, someone on the team must be explicitly named as the owner who watches upstream.
Support: Community GitHub issues, no contractual SLA. Escalation path is limited to pinning, disabling, or forking — the extension is small enough that a fork is a credible fallback, which is the main thing making the continuity risk tolerable. If Blomstra offers commercial support tied to their hosting, that changes the calculus favorably.
Scaling: Negligible runtime cost — the widget renders on admin page load and reads Redis metadata. Horizon itself scales with queue worker count, not with this extension. The practical scaling concern is cognitive: the dashboard is only useful while someone is actually watching it, and a dashboard with no alert behind it is decoration. Pair it with an alert on queue wait time and failed-job count or the value is largely unrealized.
Failure modes:
Ramp-up: Low for operators — the UI is standard Horizon. Moderate for whoever owns the install, because troubleshooting spans three layers (Flarum extension, Horizon config, Redis config) and the extension's own documentation is thin. Estimate half a day for a competent PHP engineer to stand up and validate end-to-end, plus the same again if a Redis queue migration is required. No specialized knowledge beyond familiar Laravel queue/Horizon operations.
Verdict on 0.4.3: Two changes, both minor — a display-correctness fix and an added eviction-policy readout in the Redis widget. No breaking changes, no deprecations, no new configuration surface. This is a routine patch that improves trustworthiness of the monitoring surface rather than changing integration shape. Adopt it, but re-verify the max-memory figure against CONFIG GET maxmemory afterward, since the prior behavior was known to be wrong and any runbook built on those numbers should be re-checked.
How can I help you explore Laravel packages today?