PHPackages                             code-orange/statuspage - 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. code-orange/statuspage

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

code-orange/statuspage
======================

A Lumen package that makes it easy to add a status page to your existing application or to create a dedicated status page application.

v2.0(5y ago)16208Apache-2.0PHPPHP &gt;=7.0CI failing

Since Jan 11Pushed 5y ago3 watchersCompare

[ Source](https://github.com/code-orange/statuspage)[ Packagist](https://packagist.org/packages/code-orange/statuspage)[ RSS](/packages/code-orange-statuspage/feed)WikiDiscussions master Synced 2mo ago

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

Statuspage [![Latest Stable Version](https://camo.githubusercontent.com/3b0286b17a4f226175c4ebaa16f73c5640eb9c5bee1edc0a2159089847f3abb8/68747470733a2f2f706f7365722e707567782e6f72672f636f64652d6f72616e67652f737461747573706167652f762f737461626c65)](https://packagist.org/packages/code-orange/statuspage) [![Total Downloads](https://camo.githubusercontent.com/fef30d9b338580dfd4058d126b074b90b34553fe46e48da7efd25ace075df9c5/68747470733a2f2f706f7365722e707567782e6f72672f636f64652d6f72616e67652f737461747573706167652f646f776e6c6f616473)](https://packagist.org/packages/code-orange/statuspage) [![License](https://camo.githubusercontent.com/a3a41ddfb1356c641386a225c913a6100b112ca34cac305ba4061827377b838b/68747470733a2f2f706f7365722e707567782e6f72672f636f64652d6f72616e67652f737461747573706167652f6c6963656e7365)](https://packagist.org/packages/code-orange/statuspage) [![composer.lock](https://camo.githubusercontent.com/79b74cf6a9ac5aba91f12463bfd39bd92a83252288819303751f2c2093c1c330/68747470733a2f2f706f7365722e707567782e6f72672f636f64652d6f72616e67652f737461747573706167652f636f6d706f7365726c6f636b)](https://packagist.org/packages/code-orange/statuspage)
======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

[](#statuspage----)

Statuspage is a Lumen package that allows you to easily add a status page to an existing Lumen application or to create a dedicated Lumen status application.

[![Demo](demo.png)](https://status.odysseyattribution.co)*Live demo of Statuspage. This installation is a dedicated Lumen app monitoring a bigger Laravel app.*

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

[](#installation)

```
composer require code-orange/statuspage

```

Configuration
-------------

[](#configuration)

First, register the Statuspage `ServiceProvider` in your `bootstrap/app.php`:

```
$app->register(CodeOrange\Statuspage\StatuspageProvider::class);

```

By default, Statuspage will register the status page at `/` and a JSON version of it on `/json`. If you want to override this behaviour, you can set the `STATUSPAGE_ROUTE` environment variable. If your route doesn't end in a slash, the JSON version will be hosted at `/{$route}.json`.

Statuspage comes with a default HTML page that displays the status of all registered checks. If you'd like to make changes to this page, you should copy the view (from `vendor/code-orange/statuspage/src/views/`) to your own views folder. You can then set the view you would like Statuspage to render with `STATUSPAGE_VIEW`.

For the header on the status page, Statuspage will normally use your `APP_NAME` or `config('app.name')` followed by the word 'status'. If you want to use something different, you can set the `STATUSPAGE_HEADER` environment variable. If this variable is set, the page header will be filled with its contents instead of the application name. The environment variable can contain HTML.

All environment variables are optional.

```
#STATUSPAGE_ROUTE=/
#STATUSPAGE_VIEW=status
#STATUSPAGE_HEADER=" status"

```

Usage
-----

[](#usage)

Registering checks
------------------

[](#registering-checks)

Statuspage works by registering `StatusChecks` (either alone or in sections) with `Statuspage`. We recommend doing this in the `boot` method of your `AppServiceProvider`.

`Statuspage` exposes two relevant methods.

- `registerCheck($label, $check)` allows you to register a single check with a label to the status page.
- `registerSection($label, ['Label' => $check, 'Label 2' => $check2])` allows you to register a section with a title and multiple checks to the status page.

For example:

```
class AppServiceProvider extends ServiceProvider {
    public function boot(Statuspage $statuspage) {
        $statuspage->registerCheck('Code Orange', new Http200Check('https://code-orange.nl'));

        $statuspage->registerSection('Google', [
            'Google 200' => new Http200Check('https://www.google.nl'),
            'Google without www 200 (should fail)' => new Http200Check('https://google.nl'),
            'Google without www 301' => new Http200Check('https://google.nl', 301)
        ]);

        $statuspage->registerSection('Database', [
            'Connection' => new DatabaseConnectionCheck(),
            'Non-existing connection' => new DatabaseConnectionCheck('asdf')
        ]);

        $statuspage->registerCheck('Dummy succesful', new DummyCheck(Status::$OPERATIONAL));

        $statuspage->registerSection('Color check', [
            'Operational' => new DummyCheck(Status::$OPERATIONAL),
            'Maintenance' => new DummyCheck(Status::$MAINTENANCE),
            'Degraded' => new DummyCheck(Status::$DEGRADED),
            'Partial outage' => new DummyCheck(Status::$PARTIAL_OUTAGE),
            'Major outage' => new DummyCheck(Status::$MAJOR_OUTAGE),
        ]);
    }
}
```

Writing your own checks
-----------------------

[](#writing-your-own-checks)

While Statuspage comes with a number of basic but useful checks, the real power is in the fact that you can easily define your own custom checks specific to your application.

To do this, simply start by subclassing `CodeOrange\Statuspage\Checks\StatusCheck`. A check usually takes some arguments in its constructor and executes when its `performCheck` method is called. A check always returns an instance of `CodeOrange\Statuspage\Status`, optionally with a message.

### Background checking

[](#background-checking)

By default, Statuspage executes all checks whenever the page is requested. While this is fine in a small-scale or development setting, it's probably not something you want in production.

To configure Statuspage to instead perform the registered checks in the background, add the following line to your `Kernel`'s schedule function:

```
class Kernel extends ConsoleKernel {
    protected function schedule(Schedule $schedule) {
        app(Statuspage::class)->scheduleBackgroundExecution($schedule);
    }
}
```

The registered checks will be executed every minute (make sure `php artisan schedule:run` [is properly configured in your crontab](https://laravel.com/docs/5.5/scheduling#introduction)).

The results of your checks are stored in the default cache store (with key `statuspage_status`).

Known issues
------------

[](#known-issues)

- The framework doesn't (yet) deal with long-running checks. You are responsible for managing the run-time of your checks and setting timeouts.

###  Health Score

30

—

LowBetter than 65% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 96.6% 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 ~280 days

Total

5

Last Release

1921d ago

Major Versions

v1.3 → v2.02021-02-04

### Community

Maintainers

![](https://www.gravatar.com/avatar/0219339fbb874b91a4c51684d24bb612a0b3d63f5accd24ade2565e3db0a95e8?d=identicon)[timvdalen](/maintainers/timvdalen)

---

Top Contributors

[![timvdalen](https://avatars.githubusercontent.com/u/1038428?v=4)](https://github.com/timvdalen "timvdalen (28 commits)")[![pmichels19](https://avatars.githubusercontent.com/u/48943163?v=4)](https://github.com/pmichels19 "pmichels19 (1 commits)")

---

Tags

lumenlumen-packagestatusstatus-pagephplumenstatusstatuspage

### Embed Badge

![Health badge](/badges/code-orange-statuspage/health.svg)

```
[![Health](https://phpackages.com/badges/code-orange-statuspage/health.svg)](https://phpackages.com/packages/code-orange-statuspage)
```

###  Alternatives

[kra8/laravel-snowflake

Snowflake for Laravel and Lumen.

188402.3k6](/packages/kra8-laravel-snowflake)

PHPackages © 2026

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