nowo-tech / uptime-monitor-bundle
Symfony bundle for synthetic uptime monitoring (Uptime Kuma-style): scheduled checks, retention, aggregates, multi-tenant dashboard.
Package info
github.com/nowo-tech/UptimeMonitorBundle
Type:symfony-bundle
pkg:composer/nowo-tech/uptime-monitor-bundle
Fund package maintenance!
Requires
- php: >=8.2 <8.6
- doctrine/dbal: ^3.8.2 || ^4.0
- doctrine/doctrine-bundle: ^2.8 || ^3.0
- doctrine/orm: ^2.13 || ^3.0
- symfony/config: ^7.4 || ^8.0
- symfony/console: ^7.4 || ^8.0
- symfony/dependency-injection: ^7.4 || ^8.0
- symfony/form: ^7.4 || ^8.0
- symfony/framework-bundle: ^7.4 || ^8.0
- symfony/http-client: ^7.4 || ^8.0
- symfony/http-kernel: ^7.4 || ^8.0
- symfony/messenger: ^7.4 || ^8.0
- symfony/routing: ^7.4 || ^8.0
- symfony/scheduler: ^7.4 || ^8.0
- symfony/security-bundle: ^7.4 || ^8.0
- symfony/serializer: ^7.4 || ^8.0
- symfony/translation: ^7.4 || ^8.0
- symfony/twig-bundle: ^7.4 || ^8.0
- symfony/validator: ^7.4 || ^8.0
- symfony/yaml: ^7.4 || ^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- phpstan/phpstan-symfony: ^2.0
- phpunit/phpunit: ^10.5 || ^11.0
- rector/rector: ^2.0
- symfony/browser-kit: ^6.3 || ^7.0 || ^8.0
- symfony/dom-crawler: ^6.3 || ^7.0 || ^8.0
- symfony/mailer: ^6.3 || ^7.0 || ^8.0
- symfony/mercure: ^0.7.2
- symfony/phpunit-bridge: ^6.3 || ^7.0 || ^8.0
Suggests
- pentatrion/vite-bundle: Vite integration in host application demos
- symfony/mailer: For email notifications
- symfony/mercure-bundle: For dashboard.sync: mercure (real-time SSE updates)
- symfony/messenger: For async check execution and scheduler consumer
README
β Found this useful? Give it a star on GitHub! It helps us maintain and improve the project.
Symfony bundle for synthetic uptime monitoring (Uptime Kumaβstyle): scheduled checks, detail retention, perpetual aggregates, multi-tenant dashboard with polling sync, public status page, and notifications.
π Compatible with Symfony 7.4+ and 8.x (PHP 8.2+)
Features
- β HTTP/HTTPS, TCP, DNS, SSL certificate, and Ping (ICMP) checks
- β
Symfony Scheduler +
nowo:uptime:run-due-checks - β Doctrine entities: tenant, monitor, check result, aggregates, incidents
- β
YAML retention (
detail_days) + aggregates kept forever - β
REST summary API for dashboard polling (
?since=delta support) - β Vite + TypeScript dashboard and Chart.js charts
- β
Public status page per tenant (
/status/{tenantSlug}) - β Email, webhook, Slack notifications (on status change)
- β CRUD for monitors and tenants (Twig UI)
- β Demo Symfony 7 and 8 (FrankenPHP) β see docs/DEMO-FRANKENPHP.md
- β
Mercure real-time dashboard sync (
dashboard.sync: mercure)
Quick start
composer require nowo-tech/uptime-monitor-bundle
# config/packages/nowo_uptime_monitor.yaml nowo_uptime_monitor: retention: detail_days: 30
php bin/console nowo:uptime:sync-schema php bin/console nowo:uptime:seed-demo php bin/console nowo:uptime:run-due-checks
Dashboard: /uptime/{tenantSlug} Β· Status page: /status/{tenantSlug} (default tenant main).
Documentation
- Installation
- Configuration
- Usage
- Contributing
- Changelog
- Upgrading
- Release process
- Security
- Engram
- Spec-driven development
Additional documentation
- Scheduling
- Check types
- Monitor configuration (Uptime Kuma parity)
- Tenant settings (Uptime Kuma parity)
- Translations (en, es)
- Notifications
- Mercure real-time sync
- Demo with FrankenPHP
Development
make up
make test
make assets
make -C demo up-symfony8
Tests and coverage
| Language | Coverage (approx.) | Command |
|---|---|---|
| PHP | 95% | make test-coverage |
| TypeScript | Vitest (api-client, poll-controller, chart-theme) | make test-ts |
| Python | N/A | β |
make test
make test-coverage
make test-coverage-90
make test-ts
make release-check
License
MIT β see LICENSE.