WebGuard is an open-source monitoring core built with Laravel 13 and SvelteKit. It provides the management UI, REST API, public status pages, notification workflows, and package administration for monitoring websites, DNS records, domains, SSL certificates, and background jobs.
System architecture note: this repository contains the Management Core & API. Distributed scanning nodes live in the WebGuard Instance Repository, while the mobile client is maintained in the WebGuard App Repository.
- Tracks uptime, response times, expected HTTP status ranges, expected DNS records, SSL expiry, and domain expiry.
- Monitors heartbeats and cron jobs through private ping URLs.
- Classifies multi-location incidents as localized, regional, or global based on selected monitoring locations.
- Paces HTTP and keyword checks at least 15 minutes apart per monitoring location; scanner execution and its compatibility contract live in the WebGuard Instance Repository.
- Supports team-owned monitorings with group assignment and admin-controlled ownership changes.
- Sends in-app, configurable, expiry, status-change, and weekly digest notifications.
- Provides dashboards, public status pages, SLA badges, and a REST API.
- Supports a global language switch across public and authenticated navigation.
Requirements: PHP 8.5+, Composer, Bun, a supported database, and Redis.
composer install
bun install --cwd frontend
cp .env.example .env
php artisan key:generate
php artisan migrate
bun run frontend:buildFor the supported local environment, start the Docker stack with ./start-dev.sh.
Run tests with php artisan test.
- Features
- Architecture and technology stack
- Installation, Docker, and operations
- SvelteKit production cutover
- Test concept
- Contributing
- Releases and changelog
WebGuard is open-source software licensed under the MIT license.