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.
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"
Before the you can view the status page, some actions needs to be performed.
- Copy the bash script to root folder,
health-check.sh
file will be generated.
php artisan status-page:copy-script
- 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
- Create the status page view.
php artisan status-page:create
Your view is available at localhost:8000/status-page
- To automate
step 3
, you can schedule the artisan commandphp artisan status-page:create
to run independently insideapp\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();
}
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.
composer test
Send in a PR - I'd love to integrate your ideas.
The MIT License (MIT). Please see License File for more information.