Download the PHP package elvinaqalarov99/laravel-health-panel without Composer
On this page you can find all versions of the php package elvinaqalarov99/laravel-health-panel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download elvinaqalarov99/laravel-health-panel
More information about elvinaqalarov99/laravel-health-panel
Files in elvinaqalarov99/laravel-health-panel
Package laravel-health-panel
Short Description A config-driven status panel for Laravel apps built on top of spatie/laravel-health.
License MIT
Informations about the package laravel-health-panel
laravel-health-panel
A beautiful, config-driven status panel for Laravel built on top of spatie/laravel-health.
spatie/laravel-health does the heavy lifting — running checks, storing results, alerting. laravel-health-panel turns those results into a polished public status page with uptime history, incident timelines, and zero boilerplate.
What it gives you
/status |
Live status of every service group — Operational / Degraded / Down |
/status/history |
90-day uptime bars + incident timeline with noise reduction |
| Config-driven | Define services, checks, labels and feature flags in one file — no PHP class changes |
| Swappable | Bind your own service or repository via contracts |
| Publishable views | Override the default dark-mode Tailwind UI with your own Blade templates |
Requirements
- PHP 8.2+
- Laravel 11 or 12
- spatie/laravel-health — health checks must already be set up
Installation
Publish the config and migration:
Visit /status — you're live.
Configuration
All behaviour is controlled from config/status-page.php.
Defining services
Map your Spatie health check names into logical service groups:
Set enabled to false (or wire it to an env var) to hide a service entirely — it disappears from the status page, uptime bars, and all history queries.
Check labels
Give individual check names a human-readable label shown on the panel:
Any check not listed here falls back to a title-cased version of the name.
Routes
Disable auto-registration entirely and define your own routes:
History settings
Swapping the model
By default the panel reads from Spatie's HealthCheckResultHistoryItem. Swap it with any model that has the same columns:
Customising the UI
Publish the default views:
Views land in resources/views/vendor/status-page/. Edit freely — the panel respects Laravel's standard view cascade so your versions always take precedence.
The default views use Tailwind CSS via CDN and require no build step.
Extending the service layer
Every component is bound through a contract, so you can swap any layer from your AppServiceProvider:
How it works
Key performance decisions:
- Latest status uses
MAX(id) GROUP BY check_name— two small queries instead of unbounded full-table scans - Uptime bars are aggregated entirely in MySQL (
GROUP BY day, check_name) — never loaded as Eloquent models - Incident history selects only needed columns and caps rows at 100k
- A
(check_name, created_at)composite index is included in the published migration
Changelog
See CHANGELOG.md.
License
MIT — see LICENSE.