If you are a Laravel developer, you know how crucial it is to monitor your production applications. However, most commercial application performance monitoring tools can quickly become expensive, and sending sensitive telemetry data to third-party servers might not align with your privacy requirements.
That is why I created LaraOwlβan open-source, self-hosted monitoring platform designed specifically for Laravel. Think of it as your own private APM suite.
What is LaraOwl? π¦
LaraOwl is a self-hosted monitoring server that collects telemetry from all your Laravel apps. Instead of paying for a hosted service, you deploy the LaraOwl server on your own infrastructure (such as Laravel Cloud or VPS) and pull in a lightweight client package on the apps you want to monitor.
LaraOwl is licensed under Apache 2.0, making it 100% open-source and free to customize.
Key Features
Deep Telemetry & Performance Monitoring
Once you install the laraowl/client package, LaraOwl hooks into the request lifecycle to automatically record:
- HTTP Requests: Method, path, status codes, request duration, and response sizes.
- Exceptions & Errors: Automatically grouped with full stack traces, making it easy to track and mark them as resolved.
- Database Queries: Built-in slow query detection and N+1 query identification to help optimize database performance.
- Jobs & Queue Activity: Processing status, duration, and job failures.
- User Tracking: Request history and activity aggregated per-user.
Note: Telemetry is sent asynchronously via Laravel's queue system, keeping it completely off your requests' critical path.
Built-in WAF Analysis & Cloudflare Integration
LaraOwl does more than track performance. It inspects incoming traffic for common security threats, flagging SQL injection (SQLi), cross-site scripting (XSS), and path traversal attempts.
Additionally, it integrates directly with the Cloudflare API, allowing you to block malicious IPs and manage firewall rules right from the LaraOwl dashboard.
Real-Time Dashboard & Multi-Channel Alerts
The dashboard is powered by WebSockets via Laravel Reverb, showing charts and logs updating live as requests and exceptions hit your application.
When something goes wrong, LaraOwl supports uptime & heartbeat monitors and can immediately notify you through:
- Slack
- Discord
- Telegram
- Custom Webhooks
Getting Started in 5 Minutes``
Setting up LaraOwl is extremely straightforward.
1. Setup the LaraOwl Server
The server is a standard Laravel application. Create the project using Composer, configure your .env, and compile the assets:
`bash
Create the project
composer create-project laraowl/laraowl laraowl
cd laraowl
Install dependencies and build assets
npm install
cp .env.example .env
php artisan key:generate
php artisan migrate
npm run build
`
To run the server, ensure you start the three supporting processes in the background (or via a process manager like Supervisor):
`bash
Process queue ingestion
php artisan queue:work
Start WebSockets server
php artisan reverb:start
Run scheduled health and uptime checks
php artisan schedule:work
`
2. Connect Your Monitored Applications
In any Laravel app you want to monitor, pull in the client package and run the installer:
`bash
composer require laraowl/client
php artisan laraowl:install
`
Follow the prompts to configure your API endpoint and token, and you are ready to monitor!
Technical Requirements
- PHP 8.3+
- Node.js 18+
- MySQL 8.0+ or PostgreSQL
Join the Project! π€
LaraOwl is fully open-source and actively maintained. I would love to hear your feedback, bug reports, or feature suggestions.
- β Star/Fork the project on GitHub
- π Read the full documentation on our repo.











