PHPackages                             anourvalar/laravel-health - 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. anourvalar/laravel-health

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

anourvalar/laravel-health
=========================

Additional Checks for Laravel Health (Spatie)

1.15.7(1mo ago)029.4k↑117.9%MITPHPPHP ^8.0

Since Sep 15Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/AnourValar/laravel-health)[ Packagist](https://packagist.org/packages/anourvalar/laravel-health)[ Docs](https://github.com/AnourValar/laravel-health)[ RSS](/packages/anourvalar-laravel-health/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (10)Dependencies (12)Versions (54)Used By (0)

Laravel Health
==============

[](#laravel-health)

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

[](#installation)

```
composer require anourvalar/laravel-health
```

Checks for spatie/laravel-health
--------------------------------

[](#checks-for-spatielaravel-health)

### FilesystemCheck

[](#filesystemcheck)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\FilesystemCheck::new()->disks(['s3' => ($checkPublicUrl = true)]),
]);
```

### OpcacheCheck

[](#opcachecheck)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\OpcacheCheck::new(),
]);
```

### PusherCheck

[](#pushercheck)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\PusherCheck::new()->connection(null), // default connection
]);
```

### QueueFailedCheck

[](#queuefailedcheck)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\QueueFailedCheck::new(),
]);
```

### XdebugCheck

[](#xdebugcheck)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\XdebugCheck::new(),
]);
```

### SSL Certificate

[](#ssl-certificate)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\SSLCertCheck::new()
      ->url('google.com')
      ->warnWhenExpiringDay(10)
      ->failWhenExpiringDay(2),
]);
```

### Cpu Load

[](#cpu-load)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\CpuLoadCheck::new()->failWhenLoadIsHigher(
        2.5, // last minute
        2.0, // last 5 minutes
        1.5  // last 15 minutes
    ),
]);
```

### Gzip

[](#gzip)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\GzipCheck::new()
        ->shouldBeGzipped('/')
        ->shouldNotBeGzipped('/image.png'),
]);
```

### Reverse Proxy Security

[](#reverse-proxy-security)

First, you need to register a route for the checker.

```
Route::any('/health-ping', HealthPingController::class);
```

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\ReverseProxySecurityCheck::new()->url('/health-ping'),
]);
```

### HTTP -&gt; HTTPS 301 redirect

[](#http---https-301-redirect)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\Http2HttpsCheck::new()
        ->shouldBeRedirected(['/', '/image.png']),
]);
```

### WWW -&gt; none WWW 301 redirect

[](#www---none-www-301-redirect)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\Www2NoneCheck::new()
        ->shouldBeRedirected(['/', '/image.png']),
]);
```

### Mailer

[](#mailer)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\MailerCheck::new()
        ->mailer(null), // default
]);
```

### Sentry

[](#sentry)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\SentryCheck::new(),
]);
```

### Directory Permissions

[](#directory-permissions)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\DirectoryPermissionsCheck::new()
        ->writable(storage_path('logs'))
        ->notWritable(app_path('')),
]);
```

### CORS

[](#cors)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\CorsCheck::new()
        ->allowed('https://good.com')
        ->disallowed('https://evil.com')
        ->url('api/sanctum/csrf-cookie'), // target endpoint
]);
```

### Cache Headers

[](#cache-headers)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\CacheHeadersCheck::new()
        ->shouldBeCached('/image.png')
        ->shouldNotBeCached('/'),
]);
```

### Root (user)

[](#root-user)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\RootCheck::new(),
]);
```

### FastCGI

[](#fastcgi)

First, you need to register a route for the checker.

```
Route::any('/health-ping', HealthPingController::class);
```

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\FastCGICheck::new()->url('/health-ping'),
]);
```

### Queue size

[](#queue-size)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\QueueSizeCheck::new()
        ->add(['connection' => null, 'name' => null, 'max_size' => 200]),
]);
```

### Octane server

[](#octane-server)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\OctaneCheck::new(),
]);
```

### Redis Config

[](#redis-config)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\RedisConfigCheck::new(),
]);
```

### HTTP/2

[](#http2)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\HttpV2Check::new()->urls('/'),
]);
```

### HSTS

[](#hsts)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\HstsCheck::new()->urls('/'),
]);
```

### DB Config (Postgresql, Mysql)

[](#db-config-postgresql-mysql)

```
\Spatie\Health\Facades\Health::checks([
    \AnourValar\LaravelHealth\DBConfigCheck::new()
        ->params(['transaction_isolation' => 'read committed']), // READ-COMMITTED
]);
```

###  Health Score

51

—

FairBetter than 95% of packages

Maintenance89

Actively maintained with recent releases

Popularity26

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity66

Established project with proven stability

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

Recently: every ~11 days

Total

53

Last Release

54d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/db1765d50b04dca380c835746bee50f75be1683fd930f276def046cef17f5d2c?d=identicon)[AnourValar](/maintainers/AnourValar)

---

Top Contributors

[![AnourValar](https://avatars.githubusercontent.com/u/54237693?v=4)](https://github.com/AnourValar "AnourValar (56 commits)")

---

Tags

spatiefilesystemlaravelmonitoringcheckhealths3Metricsqueueanourvalarlaravel-healthpusherchecksBroadcastingmetric

###  Code Quality

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

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

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

###  Alternatives

[spatie/laravel-health

Monitor the health of a Laravel application

87411.3M153](/packages/spatie-laravel-health)[anourvalar/eloquent-serialize

Laravel Query Builder (Eloquent) serialization

11222.5M32](/packages/anourvalar-eloquent-serialize)[encodia/laravel-health-env-vars

Custom check for Spatie's Laravel Health - Ensure every .env variable you need has been set

20160.2k](/packages/encodia-laravel-health-env-vars)

PHPackages © 2026

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