DEV.co
Open-Source Observability · spatie

laravel-uptime-monitor

Laravel Uptime Monitor is a PHP package that tracks website availability and SSL certificate expiration, sending notifications via Slack, email, or other channels when issues occur. It integrates natively with Laravel's notification system and includes a standalone app version for non-Laravel users.

Source: GitHub — github.com/spatie/laravel-uptime-monitor
1.1k
GitHub stars
179
Forks
PHP
Primary language
MIT
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryspatie/laravel-uptime-monitor
Ownerspatie
Primary languagePHP
LicenseMIT — OSI-approved
Stars1.1k
Forks179
Open issues1
Latest release4.6.0 (2026-02-22)
Last updated2026-06-26
Sourcehttps://github.com/spatie/laravel-uptime-monitor

What laravel-uptime-monitor is

A Laravel package built on Guzzle HTTP client that performs concurrent uptime checks at configurable intervals (default 5 min), verifies SSL certificates, and dispatches events/notifications on state changes. Supports custom response checkers, retry logic with millisecond intervals, and extensible notification adapters.

Quickstart

Get the laravel-uptime-monitor source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/spatie/laravel-uptime-monitor.gitcd laravel-uptime-monitor# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Multi-site uptime monitoring for Laravel applications

Monitor multiple application endpoints with native Laravel integration, leveraging existing notification channels (Slack, mail) without additional third-party SaaS dependencies.

SSL certificate expiration tracking

Receive notifications days before certificates expire, reducing unplanned downtime from certificate failures. Configurable warning window (default 10 days).

Self-hosted monitoring infrastructure

For teams preferring on-premise monitoring without relying on external monitoring services. Can be deployed within your own server or container infrastructure.

Implementation considerations

  • Requires Laravel application setup with database migrations for Monitor model; background job/queue worker needed to run `monitor:check-uptime` command at desired interval.
  • Configure concurrent_checks threshold carefully (default 10) to avoid resource exhaustion on monitor infrastructure; tune timeout_per_site and retry_connection_after_milliseconds based on network reliability.
  • Notification channels must be pre-configured in Laravel (Slack webhook URL, mail settings). Custom response checkers require PHP class implementation if default LookForStringChecker insufficient.
  • SSL checks use standard certificate chain validation; ensure outbound HTTPS access available from monitor instance to monitored sites.
  • Persistence: monitors and check results stored in Laravel database; no data retention policy documented; plan database cleanup/archival for long-running instances.

When to avoid it — and what to weigh

  • Real-time alerting at sub-minute granularity — Minimum check interval is 5 minutes (configurable). Not suitable for systems requiring <1 minute detection latency for downtime.
  • Complex distributed uptime checks from multiple geographic regions — Designed for single-location monitoring (configurable 'location' in config). Multi-region checks would require running multiple instances and external coordination.
  • Non-Laravel PHP projects without willingness to refactor — Tightly coupled to Laravel framework. Standalone uptime-monitor-app exists but represents a separate maintenance concern.
  • Enterprise SLA dashboard and historical analytics at scale — No built-in API (third-party laravel-uptime-monitor-api exists), limited data persistence and reporting beyond notifications. Not designed for compliance reporting.

License & commercial use

MIT License (OSI-approved permissive license). Permits commercial use, modification, and distribution with attribution.

MIT license explicitly permits commercial use. No additional licensing fees or proprietary restrictions documented. Redistribution requires preserving MIT license notice. No warranties or liability guarantees; review your own risk assessment before using in production.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationStrong
License clarityClear
Deployment complexityLow
DEV.co fitGood
Assessment confidenceHigh
Security considerations

Package makes outbound HTTP(S) requests to monitored URLs with configurable user-agent and headers; ensure monitored endpoints do not expose sensitive information in responses. SSL certificate validation uses standard chain verification (subject to system CA store). Database credentials and Slack webhook URLs handled via Laravel env; follow standard secrets management practices. No published security audits or vulnerability disclosure policy documented; security concerns should be directed to [email protected] per README.

Alternatives to consider

Uptime.com / Uptime Robot

SaaS-based, multi-region monitoring, real-time alerting, built-in dashboards. Does not require self-hosting. Trade-off: recurring costs, external dependency, data residency concerns.

Prometheus + AlertManager + Grafana

Open-source monitoring stack with multi-dimensional time-series data, advanced alerting rules, and rich visualization. Steeper learning curve, requires more infrastructure investment, but more extensible for complex monitoring scenarios.

Spatie uptime-monitor-app (standalone)

Non-Laravel version of this same tool. Use if you don't have a Laravel application but want self-hosted monitoring. Same codebase; separate maintenance concern.

Software development agency

Build on laravel-uptime-monitor with DEV.co software developers

Laravel Uptime Monitor offers lightweight, self-contained availability tracking with zero SaaS dependencies. Ideal if you need control over your monitoring stack and prefer Laravel-native integration. Review deployment requirements, check interval constraints, and notification setup with your ops team.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

laravel-uptime-monitor FAQ

Can I use this outside of Laravel?
Yes, Spatie provides a standalone uptime-monitor-app (separate repository) for non-Laravel projects, though it represents a separate maintenance track.
How often are uptime checks performed?
Default is every 5 minutes (configurable via run_interval_in_minutes). When a check fails, subsequent checks run on every cycle regardless of interval. Minimum granularity is limited by how often you run the monitor:check-uptime command.
What if I need an API or dashboard?
The package itself has no built-in API. Third-party laravel-uptime-monitor-api package exists but is not officially maintained. Dashboards can be built by querying the Laravel database directly or extending via custom event listeners.
Does this replace my APM solution?
No. This tool monitors *availability* and *SSL status* only. It does not track performance metrics, errors, or application health. Use alongside APM tools like Laravel Telescope, New Relic, or Datadog for comprehensive observability.

Software developers & web developers for hire

From first prototype to production, DEV.co delivers software development services around tools like laravel-uptime-monitor. Our software development agency staffs experienced software developers and web developers for custom software development, web development, integrations, and ongoing support across open-source observability and beyond.

Evaluate Self-Hosted Uptime Monitoring for Your Infrastructure

Laravel Uptime Monitor offers lightweight, self-contained availability tracking with zero SaaS dependencies. Ideal if you need control over your monitoring stack and prefer Laravel-native integration. Review deployment requirements, check interval constraints, and notification setup with your ops team.