PHPackages                             pubvana/sitehealth - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. pubvana/sitehealth

ActiveFlightphp-plugin[Utility &amp; Helpers](/categories/utility)

pubvana/sitehealth
==================

Site health checks for Pubvana

0.1.1(3w ago)01MITPHPPHP ^8.1

Since May 16Pushed 3w agoCompare

[ Source](https://github.com/Pubvana-CMS/sitehealth)[ Packagist](https://packagist.org/packages/pubvana/sitehealth)[ RSS](/packages/pubvana-sitehealth/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (2)Versions (3)Used By (0)

[![Stable? Not Quite Yet](https://camo.githubusercontent.com/8712c441bb32fd8db507e0008c5d13e30def50064f8fcbc689fbcf5191f7d2af/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f737461626c652533462d6e6f7425323071756974652532307965742d626c75653f7374796c653d666f722d7468652d6261646765)](https://packagist.org/packages/pubvana/sitehealth)[![License](https://camo.githubusercontent.com/5e04dd80173189c14393914cc5ea4eacc719e91edfbd851c74649d55fe163392/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f70756276616e612f736974656865616c74683f7374796c653d666f722d7468652d6261646765)](https://packagist.org/packages/pubvana/sitehealth)[![PHP Version](https://camo.githubusercontent.com/c63bf3514bffa3216df0bbf0028349e2470c5a0cc0818d0838c247b33aed1b93/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f70756276616e612f736974656865616c74683f7374796c653d666f722d7468652d6261646765)](https://packagist.org/packages/pubvana/sitehealth)[![Monthly Downloads](https://camo.githubusercontent.com/e40290d1f8c6c564a6b5570e73179b37500e2edeeed6293eb0f810b14d480fc0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646d2f70756276616e612f736974656865616c74683f7374796c653d666f722d7468652d6261646765)](https://packagist.org/packages/pubvana/sitehealth)[![Total Downloads](https://camo.githubusercontent.com/180b6d9d31726517bf376ddf96b4994841bda4fb51d9059e0777d1c0b6142793/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f70756276616e612f736974656865616c74683f7374796c653d666f722d7468652d6261646765)](https://packagist.org/packages/pubvana/sitehealth)[![GitHub Issues](https://camo.githubusercontent.com/401ea627ed1a9546092185671de13f4cbe49008a1e6aac1931a6f8f83398dd74/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f50756276616e612d434d532f736974656865616c74683f7374796c653d666f722d7468652d6261646765)](https://github.com/Pubvana-CMS/sitehealth/issues)[![Contributors](https://camo.githubusercontent.com/0a4a17e5ef61d04265a9d2aa9ab5f355d67b41cdeda3ce33dfe9888a765e5f09/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6e7472696275746f72732f50756276616e612d434d532f736974656865616c74683f7374796c653d666f722d7468652d6261646765)](https://github.com/Pubvana-CMS/sitehealth/graphs/contributors)[![Latest Release](https://camo.githubusercontent.com/5236b83d800afcca201b974ca1c093ae3b47758103edfd5ae5a4ae039d95b6ef/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f50756276616e612d434d532f736974656865616c74683f7374796c653d666f722d7468652d6261646765)](https://github.com/Pubvana-CMS/sitehealth/releases)[![Contributions Welcome](https://camo.githubusercontent.com/9db3f8b82ea88469efd296a9305fc00f40b4c9450bb6b539d42d339fa6963444/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f6e747269627574696f6e732d77656c636f6d652d626c75653f7374796c653d666f722d7468652d6261646765)](https://github.com/Pubvana-CMS/sitehealth/pulls)

Pubvana Site Health
===================

[](#pubvana-site-health)

**I noticed folks downloading some of these packages. I'm super grateful, Thank You! I would like to let folks know until this notice disappears I'm doing a lot of breaking changes without worrying about them. Once versions are up around 0.5.x things should settle down.**

Site health and diagnostics package for [Pubvana](https://pubvanacms.com) CMS. Surfaces configuration and security problems early so admins can fix issues before they become incidents.

Requirements
------------

[](#requirements)

- PHP 8.1+
- [Flight School](https://github.com/enlivenapp/flight-school) ^0.3
- [Flight Settings](https://github.com/enlivenapp/flight-settings) ^0.2

Installation
------------

[](#installation)

```
composer require pubvana/sitehealth
```

Enable in `app/config/config.php`:

```
'plugins' => [
    'pubvana/sitehealth' => [
        'enabled'  => true,
        'priority' => 50,
    ],
],
```

Flight School Config
--------------------

[](#flight-school-config)

This package uses Flight School's return-array config format. `src/Config/Config.php` returns the package defaults as an array, Flight School stores that array under `pubvana.sitehealth` on `$app`, and the current admin route prefix is defined there with `'routePrepend' => 'site-health'`.

Service
-------

[](#service)

Mapped as `$app->health()`. Provides:

- **runAll()** - Run all registered health checks (returns cached results unless forced)
- **clearCache()** - Invalidate cached check results
- **addCheck()** - Register additional checks programmatically
- **groupByCategory()** - Group results by category for display
- **dashboardCards()** - Returns dashboard card data when issues exist, empty array when all clear

Checks
------

[](#checks)

14 built-in checks across 4 categories:

**Environment** (`CheckResult::CAT_ENVIRONMENT`) - PHP version, required/recommended PHP extensions, database connectivity and version, disk space on uploads partition

**Security** (`CheckResult::CAT_SECURITY`) - HTTPS and forced redirect, debug mode in production, config file permissions, Shield authentication installed, session configuration (httponly, secure, samesite, lifetime)

**Configuration** (`CheckResult::CAT_CONFIGURATION`) - Required settings populated (base URL, site name), writable directories (uploads, cache, log), config file not using placeholder values

**Plugins** (`CheckResult::CAT_PLUGINS`) - All plugin migrations current, all plugin composer dependencies satisfied

Severity Levels
---------------

[](#severity-levels)

Each check returns one of three levels:

LevelConstantMeaning**Critical**`CheckResult::CRITICAL`Something is broken or dangerously misconfigured. Needs immediate attention.**Warning**`CheckResult::WARNING`Not ideal but not broken. Should be addressed when convenient.**Pass**`CheckResult::PASS`Meets requirements. No action needed.Dashboard Integration
---------------------

[](#dashboard-integration)

When issues exist, a card appears on the admin dashboard linking to the detail page. When everything passes, nothing is shown on the dashboard.

Extensibility
-------------

[](#extensibility)

Other plugins can register their own health checks. Both approaches go in your plugin's `src/Plugin.php` `register()` method.

Via adext:

```
// In src/Plugin.php register()
$app->adext('health', 'checks', 'vendor.plugin-name', [
    'priority' => 50,
    'callable' => fn() => (new YourCustomCheck())->run(),
]);
```

Custom checks implement `Pubvana\SiteHealth\Interfaces\CheckInterface`:

```
use Pubvana\SiteHealth\Interfaces\CheckInterface;
use Pubvana\SiteHealth\Services\CheckResult;

class YourCustomCheck implements CheckInterface
{
    public function run(): CheckResult
    {
        return new CheckResult(
            id: 'your-check-id',
            name: 'Your Check Name',
            category: CheckResult::CAT_ENVIRONMENT,
            status: CheckResult::PASS,
            message: 'Everything is fine.',
            remediation: 'What to do if it fails.',
        );
    }
}
```

Config
------

[](#config)

KeyDefaultDescription`cache_ttl``3600`Seconds to cache check results before re-runningAdmin Routes
------------

[](#admin-routes)

- `GET /admin/site-health` - Detail page with all checks and remediation
- `POST /admin/site-health/rerun` - Clear cache and re-run all checks

License
-------

[](#license)

MIT

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance95

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity33

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

25d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3036663?v=4)[Mike W](/maintainers/enlivenapp)[@enlivenapp](https://github.com/enlivenapp)

---

Top Contributors

[![enlivenapp](https://avatars.githubusercontent.com/u/3036663?v=4)](https://github.com/enlivenapp "enlivenapp (2 commits)")

### Embed Badge

![Health badge](/badges/pubvana-sitehealth/health.svg)

```
[![Health](https://phpackages.com/badges/pubvana-sitehealth/health.svg)](https://phpackages.com/packages/pubvana-sitehealth)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
