Skip to content

Eazybright/status-page

Repository files navigation

Status page for your laravel application

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

How do you tell if your laravel application is up and running or if there's a downtime? StatusPage helps you communicate realtime status of your application.

Installation

You can install the package via composer:

composer require eazybright/status-page

You can publish the public assets with:

php artisan vendor:publish --tag="status-page-assets"

The asset files will be available in public/vendor/status-page directory

You can publish the config file with:

php artisan vendor:publish --tag="status-page-config"

This is the contents of the published config file:

return [
    /**
     * Specify the location of the logo
    */
    'logo' => 'vendor/status-page/img/STATUSPAGE.png',
];

Optionally, you can publish the views using

php artisan vendor:publish --tag="status-page-views"

Usage

Before the you can view the status page, some actions needs to be performed.

  1. Copy the bash script to root folder, health-check.sh file will be generated.
php artisan status-page:copy-script
  1. Crawl the routes in the application. This creates urls.cfg file in the public folder. This is where the available urls will be saved to.
php artisan status-page:generate-route

Optionally, you can include your urls to urls.cfg file.

Google https://google.com GET
Statsig https://statsig.com GET
  1. Create the status page view.
php artisan status-page:create

Your view is available at localhost:8000/status-page

Status Page View

  1. To automate step 3, you can schedule the artisan command php artisan status-page:create to run independently inside app\Console\kernel.php file.
    // ...

    /**
     * Define the application's command schedule.
     *
     * @param Schedule $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        // ...

        $schedule->command('status-page:create')->hourly();
    }

How does it work?

The script (health-check.sh) runs curl on every url in your config (urls.cfg) and appends the result of that run to a log file (public/vendor/status-page/logs). This log is then pulled dynamically from status.blade.php file and displayed in a easily consumable fashion.

Testing

composer test

Contributing

Send in a PR - I'd love to integrate your ideas.

Credits

License

The MIT License (MIT). Please see License File for more information.