Internal service monitoring system for HTTP/TCP/DB checks with incidents and multi-channel notifications.
broqit/laravel-ping-pong-monitor is a Laravel package for internal service monitoring system for http/tcp/db checks with incidents and multi-channel notifications..
It currently has 0 GitHub stars and 0 downloads on Packagist (latest version 1.0.1).
Install it with composer require broqit/laravel-ping-pong-monitor.
Discover more Laravel packages by broqit
or browse all Laravel packages to compare alternatives.
Last updated
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.


dev, stage, prod)| 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 |
| 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 |
ServiceGroup
-> Service
-> ServiceCheck -> Environment
-> CheckResult
-> Incident
ServiceGroup groups related servicesService represents an application or infrastructure componentServiceCheck stores a concrete health check definitionEnvironment separates the same check across dev, stage, and prodCheckResult stores historical executionsIncident represents a down/degraded period and its recovery8.2+20+composer install
npm install
cp .env.example .env
php artisan key:generate
touch database/database.sqlite
php artisan migrate
php artisan db:seed --class=Database\\Seeders\\MonitorSeeder
composer run dev
Open http://localhost:8000.
The app expects:
The project already schedules monitoring every minute in routes/console.php.
Manual commands:
php artisan monitor:check
php artisan monitor:check --sync
php artisan monitor:check --id=5 --sync
php artisan queue:work --tries=1 --timeout=30
php artisan schedule:work
Each notification channel stores its own config payload.
| Channel | Required config fields |
|---------|------------------------|
| Email | 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:
The admin UI also supports sending test notifications per channel.
The project includes support for REMP-style health endpoints that return JSON such as:
{
"status": "OK",
"database": { "status": "OK" },
"redis": { "status": "OK" },
"log": { "status": "OK" },
"storage": { "status": "OK" }
}
The remp checker can validate:
The repository includes a simple Docker setup for local use. It runs:
8000docker compose up --build
Then open http://localhost:8000.
The container entrypoint will:
APP_KEY if missingIf you want fresh seed data:
docker compose exec app php artisan db:seed --class=Database\\Seeders\\MonitorSeeder
docker compose down
To remove the persistent SQLite volume too:
docker compose down -v
app/
Console/
Jobs/
Livewire/
Models/
Notifications/
Services/Monitor/
config/
database/
public/
resources/views/
routes/
tests/
Important parts:
app/Services/Monitor/Checkers/.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.