PHPackages                             snb4crazy/health-checker-laravel - 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. [Logging &amp; Monitoring](/categories/logging)
4. /
5. snb4crazy/health-checker-laravel

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

snb4crazy/health-checker-laravel
================================

Starter Laravel package for scheduled infrastructure and app health checks.

v0.3.0(yesterday)00MITPHPPHP ^8.2

Since Jul 5Pushed yesterdayCompare

[ Source](https://github.com/snb4crazy/health-checker-laravel)[ Packagist](https://packagist.org/packages/snb4crazy/health-checker-laravel)[ RSS](/packages/snb4crazy-health-checker-laravel/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (13)Versions (7)Used By (0)

Laravel Health Checker
======================

[](#laravel-health-checker)

[![License](https://camo.githubusercontent.com/35a43e8d787f3adab2d00f4b3322f611ddb893e77e70ecc2fc69e0ea19e67e31/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f736e62346372617a792f6865616c74682d636865636b65722d6c61726176656c)](LICENSE)[![Latest Version on Packagist](https://camo.githubusercontent.com/4cf4543a752ea734cce0a1aaa999fbfb36fdeba7a56cf0668a39b0af052a3de3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f736e62346372617a792f6865616c74682d636865636b65722d6c61726176656c2e7376673f6c6162656c3d7061636b6167697374)](https://packagist.org/packages/snb4crazy/health-checker-laravel)[![Total Downloads](https://camo.githubusercontent.com/0bd87945247cc40aacac8d2ba77bdca76a8d725aedfa038683063a80819a41b5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f736e62346372617a792f6865616c74682d636865636b65722d6c61726176656c2e737667)](https://packagist.org/packages/snb4crazy/health-checker-laravel)[![Latest Release](https://camo.githubusercontent.com/84d696d9ce9f0735730ec10ebbc8db83f6bad1d38e17f9bc54a8e4562fd058cd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f736e62346372617a792f776562686f6f6b2d6d616e616765722d6c61726176656c3f736f72743d73656d766572)](https://github.com/snb4crazy/webhook-manager-laravel/releases)[![PHP](https://camo.githubusercontent.com/ccaa43fc634d348cffccb1d8db7b55d9f17c5d46944bc99a15c3c982724b387d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322532422d3737374242343f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://www.php.net/)[![Laravel](https://camo.githubusercontent.com/8343e04c7a4e6f6009fcaea5a48b2636fd8b099c309e8e2740079d30a8bec89f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31302532302537432532303131253230253743253230313225323025374325323031332d626c75653f6c6f676f3d6c61726176656c266c6f676f436f6c6f723d7768697465)](https://laravel.com/)[![Last Commit](https://camo.githubusercontent.com/f2ce376d60b615305fd81f68c7b51bf860ff1b69b70b5c3794dfb99a4f3633ba/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f736e62346372617a792f776562686f6f6b2d6d616e616765722d6c61726176656c)](https://github.com/snb4crazy/webhook-manager-laravel/commits/main)

`snb4crazy/health-checker-laravel` runs operational health checks for Laravel apps and returns a clear summary for humans and automation.

What it checks
--------------

[](#what-it-checks)

Check keyWhat it validates`database`configured DB connections + optional remote DB replicas`redis`configured Redis connections + optional remote Redis instances`cache`write/read/delete probe against selected cache store`queue`queue backend reachability and basic driver sanity`storage`write/read/delete probe on configured disks`mail`mail transport (and optional test email send)`disk-space`free disk thresholds by configured path`ssl`SSL certificate validity / expiry windows`environment`required env vars and production safety rulesRequirements
------------

[](#requirements)

DependencyVersionPHP8.2+Laravel10, 11, 12, 13Installation
------------

[](#installation)

```
composer require snb4crazy/health-checker-laravel
php artisan vendor:publish --tag=health-checker-config
```

The package uses Laravel auto-discovery.

Quick start
-----------

[](#quick-start)

```
# Human-readable table output
php artisan health:check

# JSON output for logs/automation
php artisan health:check --json
```

Exit code is `0` when there are no failed checks, otherwise `1`.

Command options
---------------

[](#command-options)

```
# Run only selected checks
php artisan health:check --only=database,redis,queue

# Skip selected checks
php artisan health:check --skip=ssl,mail

# Convenience flags
php artisan health:check --skip-ssl --skip-mail --json
```

Scheduler examples
------------------

[](#scheduler-examples)

```
use Illuminate\Support\Facades\Schedule;

Schedule::command('health:check --skip=ssl,mail --json')
    ->hourly()
    ->withoutOverlapping();

Schedule::command('health:check --only=ssl,mail --json')
    ->dailyAt('03:00')
    ->withoutOverlapping();
```

Configuration guide
-------------------

[](#configuration-guide)

Publish and edit `config/health-checker.php`.

### Core sections

[](#core-sections)

- `enabled`: global on/off switch.
- `checks`: ordered list of check classes to execute.
- `log_channel`: optional Laravel log channel for failures/warnings.
- `alerts.email.*`: email notifications for failed checks (and optionally warnings).

### Infrastructure targets

[](#infrastructure-targets)

- `database.connections` and `database.remotes`
- `redis.connections` and `redis.remotes`
- `cache.store`
- `queue.connection` / `queue.queue`
- `storage.disks` / `storage.probe_directory`
- `disk_space.paths`
- `ssl.enabled` / `ssl.targets` / `ssl.warn_days_before_expiry`

### Mail check behavior

[](#mail-check-behavior)

- `mail.enabled=false` skips the mail check.
- `mail.send_test_email=true` sends a test email and requires `mail.to`.

### Environment safeguards

[](#environment-safeguards)

- `environment.allowed_app_envs`
- `environment.required`
- `environment.forbidden_in_production`

Remote target examples
----------------------

[](#remote-target-examples)

```
'database' => [
    'connections' => ['mysql'],
    'remotes' => [
        [
            'name' => 'replica-eu1',
            'driver' => 'mysql',
            'host' => '10.10.1.11',
            'port' => 3306,
            'database' => 'app',
            'username' => 'health',
            'password' => 'secret',
            'timeout' => 3,
        ],
    ],
],

'redis' => [
    'connections' => ['default'],
    'remotes' => [
        [
            'name' => 'redis-cache',
            'host' => '10.10.2.5',
            'port' => 6379,
            'password' => null,
            'database' => 0,
            'timeout' => 3,
        ],
    ],
],

'ssl' => [
    'enabled' => true,
    'warn_days_before_expiry' => 14,
    'targets' => [
        ['name' => 'frontend', 'host' => 'example.com', 'port' => 443, 'timeout' => 5],
    ],
],
```

Extending with custom checks
----------------------------

[](#extending-with-custom-checks)

1. Create a check class that implements `PackageHealthChecker\Laravel\Contracts\HealthCheck`.
2. Return a `PackageHealthChecker\Laravel\Data\HealthCheckResult` from `run()`.
3. Register the class in `health-checker.checks`.

Programmatic usage
------------------

[](#programmatic-usage)

```
use PackageHealthChecker\Laravel\Facades\HealthChecker;

$results = HealthChecker::run(only: ['database'], skip: []);
```

Testing
-------

[](#testing)

```
composer test
```

License
-------

[](#license)

MIT

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance100

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 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 ~26 days

Total

2

Last Release

1d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/4397652?v=4)[Serhii](/maintainers/snb4crazy)[@snb4crazy](https://github.com/snb4crazy)

---

Top Contributors

[![snb4crazy](https://avatars.githubusercontent.com/u/4397652?v=4)](https://github.com/snb4crazy "snb4crazy (41 commits)")

---

Tags

laravelmonitoringdiagnosticshealth checkops

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/snb4crazy-health-checker-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/snb4crazy-health-checker-laravel/health.svg)](https://phpackages.com/packages/snb4crazy-health-checker-laravel)
```

###  Alternatives

[laravel/ai

The official AI SDK for Laravel.

1.1k4.6M275](/packages/laravel-ai)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k16.3M144](/packages/laravel-pulse)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9872.4M142](/packages/roots-acorn)[illuminate/queue

The Illuminate Queue package.

20433.0M1.7k](/packages/illuminate-queue)[flarum/core

Delightfully simple forum software.

261.5M2.4k](/packages/flarum-core)[illuminate/notifications

The Illuminate Notifications package.

483.1M1.2k](/packages/illuminate-notifications)

PHPackages © 2026

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