getecz/laravel-health
最新稳定版本:v1.0.0
Composer 安装命令:
composer require getecz/laravel-health
包简介
Laravel-native app health checks (DB/cache/queue/storage/cron) with dashboard + JSON endpoints.
README 文档
README
Laravel-native app health checks (DB / cache / storage / queue / cron) with a simple dashboard and JSON endpoint.
- ✅ No build step
- ✅ Tailwind CDN UI
- ✅ Works great for shared hosting + small VPS
- ✅ Optional token + IP allowlist
Install
composer require getecz/laravel-health
Laravel auto-discovers the service provider.
Usage
After install, open:
- Dashboard:
/<route_prefix>(default:/getecz-health) - JSON:
/<route_prefix>/json(default:/getecz-health/json) - Widget (iframe):
/<route_prefix>/widget(default:/getecz-health/widget) - Cron heartbeat:
/<route_prefix>/heartbeat(default:/getecz-health/heartbeat)
Security (Never Miss)
In production, you must lock it down.
Option A — Token (recommended)
Set an env token:
GETECZ_HEALTH_TOKEN=your-long-random-token
Then access with:
- Query:
/getecz-health?token=your-long-random-token - Header:
X-Getecz-Health-Token: your-long-random-token
Option B — IP allowlist
GETECZ_HEALTH_ALLOWED_IPS=1.2.3.4,5.6.7.8
Disable completely
GETECZ_HEALTH_ENABLED=false
Publish config (optional)
php artisan vendor:publish --tag=getecz-health-config
Config file: config/getecz-health.php
Cron heartbeat
The Cron check is based on a heartbeat. You have two ways:
1) Hit the heartbeat URL (shared hosting friendly)
Set a cron (or external monitor) to hit:
/getecz-health/heartbeat?token=...
2) Run the artisan heartbeat command
php artisan getecz:health-heartbeat
Then schedule it:
// app/Console/Kernel.php $schedule->command('getecz:health-heartbeat')->everyMinute();
Store history (optional)
If you want snapshots in DB:
- Publish migrations
php artisan vendor:publish --tag=getecz-health-migrations php artisan migrate
- Enable history
GETECZ_HEALTH_STORE_HISTORY=true
- Create snapshots via command (recommended)
php artisan getecz:health-snapshot php artisan getecz:health-snapshot --prune
Embed widget
You can embed the widget in any dashboard via iframe:
<iframe src="https://your-domain.com/getecz-health/widget?token=YOUR_TOKEN" style="width:100%; height:170px; border:0;" loading="lazy" ></iframe>
Or fetch JSON:
/getecz-health/json?token=YOUR_TOKEN
Custom checks
Publish config and add your own check class to the checks array.
A check must implement:
Getecz\LaravelHealth\Checks\CheckInterface
License
MIT
统计信息
- 总下载量: 24
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 9
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-12-15