Skip to content

Health Dashboard ​

What it does ​

The dashboard is a single page at /admin/opconsole (by default) organized into eight tabs, with a header showing a 0–100 health score, the environment badge, and the Laravel and PHP versions.

TabWhat you get
OverviewOverall state with a status bar, summary cards (database, health, log errors, cache, queue, scheduler, disk, security), issues needing attention with copyable fix commands, runtime status, and a recent-activity feed.
HealthEvery check grouped by area, critical issues first. Filter by status chips or by name; expand any check for its current value and fix. Filters stay in the URL (?check_status=), so a shared link opens the same view.
SecurityVulnerable Composer packages by severity, a scan-freshness meter, and Laravel configuration warnings.
OperationsMaintenance tasks split into a Safe group and a Danger zone. The last run's output appears first.
Failed jobsThe newest failed queue jobs with queue, failure time and error (never the payload), a filter, and a Retry button per job.
HistoryAn audit trail grouped by day: who ran what, when, how long it took, and any error.
SystemApplication, PHP, performance (OPcache, JIT, Xdebug), extensions, server, database, service and cache settings, with production-risk flags and "Copy summary for support".
LogsLog file list, an entries-per-hour chart, level/environment filters, search with highlighting, repeat counts, and stack traces with your app's frames highlighted.

The health score ​

The ring in the header shows a 0–100 score. Any critical check caps it below 60; any warning caps it below 90.

Why it is useful ​

Most of the time "is anything wrong?" requires either SSH access and a handful of memorized commands, or asking someone else. The dashboard answers that question from a browser, with the fix command already written out, for anyone your Gates allow.

How to use it ​

  • Press Ctrl/⌘ K to open the command palette and jump to any tab, check, operation, or log file.
  • Use j / k to move through log entries.
  • Toggle light/dark theme from the header switch (if theme_toggle is enabled).
  • The dashboard works on phones, and renders right-to-left for Arabic, Hebrew, Persian, and Urdu locales.

Configuration ​

OptionEnvDefaultEffect
themeOPCONSOLE_THEMEautoauto follows the visitor's system setting; light/dark forces one.
theme_toggleOPCONSOLE_THEME_TOGGLEtrueShows the light/dark switch, remembered per browser in a plain cookie.
web_fontsOPCONSOLE_WEB_FONTSfalseLoads IBM Plex from Google Fonts. Off by default — the console makes no external requests unless you opt in.
layout—nullRender inside your own Blade layout instead of the standalone page.
back_url / back_label—null / DashboardAdds a link back to your own admin panel.

See the full list in the Configuration Reference.

Security considerations ​

  • The dashboard is served entirely behind the viewOpConsole Gate (and its CSS/JS/SVG assets too, via the opconsole.asset route).
  • It emits zero inline <script> blocks and zero inline style= attributes, so it works unmodified under a strict Content-Security-Policy.
  • No third-party CDN requests happen by default. Enabling web_fonts is the one opt-in exception — see its CSP notes in the Configuration Reference.

Limitations ​

  • The "recent errors" figure on the Overview tab is sampled from the bounded tail of the newest readable log file. A count of zero means no sampled errors in that tail, not proof every log is clean.
  • Without JavaScript, every section still renders in page order (the tabs are a progressive enhancement), but the command palette and keyboard navigation require it.

Troubleshooting ​

  • Blank or 403 page: you're missing the viewOpConsole Gate, or it's evaluating to false for your user. See Authentication & Authorization.
  • Styling looks broken after an upgrade: republish assets with php artisan vendor:publish --tag=opconsole-assets --force, especially if you've customized views — see the Upgrade Guide.
  • Host layout's fixed header overlaps the sticky tab bar: set the --oc-tabs-offset CSS variable in your own stylesheet, for example .oc-embedded-shell { --oc-tabs-offset: 64px; }.

Released under the MIT License.