Download the PHP package broqit/laravel-ping-pong-monitor without Composer
On this page you can find all versions of the php package broqit/laravel-ping-pong-monitor. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package laravel-ping-pong-monitor
Ping-Pong Monitor
Ping-Pong Monitor is an internal service monitoring system built with Laravel 12, Livewire 4, and Flux UI.
It monitors HTTP endpoints, databases, queues, search engines, brokers, SMTP servers, and custom REMP health endpoints across multiple environments such as dev, stage, and prod. When a service goes down or recovers, the system can notify the team via Email, Slack, Telegram, Microsoft Teams, Discord, or generic webhooks.
Screenshots
Features
- Service grouping by domain or platform area
- Environment-aware checks (
dev,stage,prod) - Queue-based health checks with per-check jobs
- Public incidents page
- Recent incidents tracking with resolution status and duration
- Manual rerun actions for a single check, a group, or all checks
- Notification channels with test-send buttons
- Live dashboard with periodic refresh
- Support for custom health formats such as REMP service health JSON
Supported Check Types
| Type | Purpose | Default ports |
|---|---|---|
http |
HTTP/HTTPS endpoint, status code, body, SSL verification | 80, 443 |
tcp |
Raw TCP connectivity | any |
mysql |
MySQL/MariaDB connectivity via PDO | 3306 |
postgres |
PostgreSQL connectivity via PDO | 5432 |
redis |
Redis connectivity / ping | 6379 |
elasticsearch |
Cluster health check | 9200 |
memcache |
Memcache stats check | 11211 |
minio |
MinIO live/ready probes | 9000, 9001 |
meilisearch |
Meilisearch health API | 7700 |
sphinx |
SphinxQL or binary TCP checks | 9306, 9312 |
rabbitmq |
Management API or AMQP connectivity | 15672, 5672 |
smtp |
SMTP EHLO / STARTTLS / implicit TLS | 25, 465 |
remp |
REMP health JSON endpoint | custom |
Main Pages
| URL | Description |
|---|---|
/ |
Public landing page |
/incidents |
Public incidents page with environment filter |
/dashboard |
Authenticated monitoring dashboard |
/monitor/services |
Service groups, services, and checks management |
/monitor/notifications |
Notification channels management |
Data Model
ServiceGroupgroups related servicesServicerepresents an application or infrastructure componentServiceCheckstores a concrete health check definitionEnvironmentseparates the same check acrossdev,stage, andprodCheckResultstores historical executionsIncidentrepresents a down/degraded period and its recovery
Local Development
Requirements
- PHP
8.2+ - Composer
- Node.js
20+ - npm or pnpm
- SQLite by default, or another Laravel-supported database
Quick Start
Open http://localhost:8000.
Queue and Scheduler
The app expects:
- a queue worker
- the Laravel scheduler
The project already schedules monitoring every minute in routes/console.php.
Manual commands:
Notification Channels
Each notification channel stores its own config payload.
| Channel | Required config fields |
|---|---|
to |
|
| Slack | webhook_url |
| Telegram | bot_token, chat_id |
| Microsoft Teams | webhook_url |
| Discord | webhook_url |
| Webhook | webhook_url |
You can enable or disable notifications independently for:
- down events
- recovery events
The admin UI also supports sending test notifications per channel.
REMP Health Checks
The project includes support for REMP-style health endpoints that return JSON such as:
The remp checker can validate:
- overall status
- individual component status
- detailed failure messages and context
Docker
The repository includes a simple Docker setup for local use. It runs:
- the Laravel app on port
8000 - a queue worker
- the scheduler
Files
- Dockerfile
- docker-compose.yml
- entrypoint.sh
- supervisord.conf
Start with Docker
Then open http://localhost:8000.
The container entrypoint will:
- create
APP_KEYif missing - create the SQLite database file if needed
- run migrations
If you want fresh seed data:
Stop Docker
To remove the persistent SQLite volume too:
Project Structure
Important parts:
- CheckServicesCommand.php
- RunServiceCheckJob.php
- DispatchServiceChecksJob.php
- MonitorService.php
- CheckerFactory.php
- Dashboard.php
- ServiceManager.php
- NotificationManager.php
Extending the Project
Add a new check type
- Create a checker in
app/Services/Monitor/Checkers/. - Register it in CheckerFactory.php.
- Add admin form fields for its configuration.
- Add UI icon mapping for the new type.
Add a new notification channel
- Extend the channel model labels/icons.
- Add delivery logic in MonitorService.php or the admin sender.
- Add configuration fields in the admin UI.
License
This project is licensed under the MIT License.
That means other developers can fork it, submit pull requests, and reuse the code under standard MIT terms. See LICENSE.
All versions of laravel-ping-pong-monitor with dependencies
laravel/fortify Version ^1.30
laravel/framework Version ^12.0
laravel/tinker Version ^2.10.1
livewire/blaze Version ^1.0
livewire/flux Version ^2.9.0
livewire/livewire Version ^4.0