PHPackages                             laraowl/laraowl - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. laraowl/laraowl

ActiveProject[Framework](/categories/framework)

laraowl/laraowl
===============

LaraOwl - The ultimate open-source, self-hosted monitoring platform for Laravel.

v1.0.1(2w ago)1341Apache-2.0TypeScriptPHP ^8.3

Since May 8Pushed 2w ago1 watchersCompare

[ Source](https://github.com/laraowl/laraowl)[ Packagist](https://packagist.org/packages/laraowl/laraowl)[ RSS](/packages/laraowl-laraowl/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (2)Dependencies (18)Versions (3)Used By (0)

 [![LaraOwl Banner](art/banner.png)](art/banner.png)

 **Self-hosted application monitoring for Laravel — track everything, own your data.**

 [Features](#features) • [Quick Start](#quick-start) • [Client Integration](#client-integration) • [Architecture](#architecture) • [Production](#production-deployment) • [License](#license)

---

Why LaraOwl?
------------

[](#why-laraowl)

LaraOwl is a **open-source, self-hosted** monitoring platform built specifically for Laravel applications. Unlike SaaS alternatives, you deploy it on your own infrastructure — your data never leaves your servers.

Drop in a single Composer package on any Laravel app, point it at your LaraOwl server, and instantly get real-time dashboards for requests, exceptions, queries, jobs, and more.

Screenshots
-----------

[](#screenshots)

 [![LaraOwl Dashboard](art/screenshots/dashboard.png)](art/screenshots/dashboard.png)

---

Features
--------

[](#features)

### Full-Stack Observability

[](#full-stack-observability)

CategoryWhat's Tracked**Requests**Every HTTP request — method, path, status code, duration, middleware timing, response size**Exceptions**Automatic grouping, stack traces, occurrence count, first/last seen, resolution status**Database Queries**Slow query detection, N+1 identification, execution time, connection info**Jobs &amp; Queues**Job processing status, duration, failures, retry tracking**Commands**Artisan command execution, exit codes, runtime duration**Scheduled Tasks**Cron health, execution history, failure alerts**Cache Events**Hit/miss ratios, key-level analytics**Mail &amp; Notifications**Outbound mail tracking, notification channel analytics**Outgoing Requests**HTTP client calls to external APIs — host, status, latency**Logs**Centralized application log aggregation with search### Real-Time Dashboard

[](#real-time-dashboard)

- **Live updates** via WebSockets (Laravel Reverb) — no page refresh needed
- **Interactive charts** with time-series breakdowns (Recharts)
- **Flexible time filters** — 1h, 24h, 7d, 14d, 30d, or custom date ranges
- **Per-page pagination** that preserves active filters

### User Tracking

[](#user-tracking)

- Authenticated vs. guest request breakdown
- Per-user request volume, error rates, and last-seen timestamps
- User activity drill-down with full request history

### Uptime Monitoring

[](#uptime-monitoring)

- Automatic health checks every 30 seconds
- Status code tracking with response time history
- Instant alerts when your site goes down

### Heartbeat Monitoring

[](#heartbeat-monitoring)

- Cron job and scheduled task health verification
- Configurable check-in intervals
- Alerts when a heartbeat stops reporting

### Security &amp; Threat Detection

[](#security--threat-detection)

- **Built-in WAF analysis** — detects SQL injection, XSS, path traversal, command injection, LFI/RFI
- **Risk scoring engine** with configurable thresholds (Medium / High / Critical)
- **IP-based threat tracking** with automatic pattern recognition
- **Security audit dashboard** with threat timeline

### Cloudflare Integration

[](#cloudflare-integration)

- Direct Cloudflare API connection for WAF management
- Firewall rule CRUD from the dashboard
- Traffic analytics and audit log visualization
- One-click IP blocking

### Alerting &amp; Integrations

[](#alerting--integrations)

Send alerts to the channels your team already uses:

ChannelSupported**Slack**✅ Rich block messages with action buttons**Discord**✅ Embedded messages with fields**Telegram**✅ Markdown-formatted bot messages**Email**✅ Plain-text notifications**Webhooks**✅ JSON payload to any endpoint**Alert triggers:**

- New exception detected
- High latency / slow performance
- Uptime down
- Heartbeat failure
- Error spike (configurable window &amp; threshold)
- Throttle control to prevent alert fatigue

### Performance Thresholds

[](#performance-thresholds)

Set custom performance budgets per project:

- Route response time limits
- Job execution time limits
- Query execution time limits
- Command runtime limits
- Automatic issue creation when thresholds are exceeded

### Data Retention

[](#data-retention)

- **Per-project retention policies** — 1, 3, 7, 14, 30, 60, 90 days, or never delete
- **Automatic daily pruning**

### Multi-Tenant Architecture

[](#multi-tenant-architecture)

- **Teams** with role-based access
- **Multiple projects** per team
- **Per-project settings**, API tokens, and integrations
- Team invitations via email

### Asynchronous Ingestion

[](#asynchronous-ingestion)

- All incoming data is processed via **Laravel Queues**
- Zero-latency API responses — data is queued immediately
- Broadcasting happens in the background worker

---

Quick Start
-----------

[](#quick-start)

### Prerequisites

[](#prerequisites)

- PHP 8.3+
- Node.js 18+
- Composer
- MySQL 8.0+ or PostgreSQL
- A queue worker

### Installation

[](#installation)

Choose one of the following methods to install the LaraOwl server:

#### Using Composer

[](#using-composer)

```
composer create-project laraowl/laraowl laraowl
cd laraowl
```

#### Finalizing Setup

[](#finalizing-setup)

Once the files are ready, complete the setup:

```
# Install frontend dependencies
npm install

# Environment setup
cp .env.example .env
php artisan key:generate

# Configure your database in .env, then:
php artisan migrate

# Build frontend assets
npm run build

# Start the server
php artisan serve
```

### Required Background Processes

[](#required-background-processes)

LaraOwl needs these processes running alongside the web server:

```
# Process queued records (required)
php artisan queue:work

# WebSocket server for real-time updates (required)
php artisan reverb:start

# Scheduler for uptime checks & data pruning (required)
php artisan schedule:work
```

---

Client Integration
------------------

[](#client-integration)

### 1. Install the Client Package

[](#1-install-the-client-package)

In the Laravel application you want to monitor:

```
composer require laraowl/client
```

### 2. Configure

[](#2-configure)

Run the interactive setup command:

```
php artisan laraowl:install
```

Or manually add to your `.env`:

```
LARAOWL_SERVER_URL=https://your-laraowl-server.com
LARAOWL_TOKEN=your_project_api_token
```

You can find the API token in **Project Settings → API Keys** within the LaraOwl dashboard.

### 3. Optional: Send Logs

[](#3-optional-send-logs)

To forward application logs to LaraOwl:

```
LOG_STACK=stack,laraowl
```

That's it. Your application will immediately begin sending telemetry data to the LaraOwl server.

---

Architecture
------------

[](#architecture)

```
┌──────────────────┐         HTTPS POST          ┌──────────────────────┐
│  Your Laravel    │  ──────────────────────────▶ │  LaraOwl Server      │
│  Application     │     /api/ingest              │                      │
│                  │     (API Token Auth)         │  ┌────────────────┐  │
│  laraowl/client  │                              │  │ IngestController│  │
│  package         │                              │  └───────┬────────┘  │
└──────────────────┘                              │          │           │
                                                  │    Queue Dispatch    │
                                                  │          │           │
                                                  │  ┌───────▼────────┐  │
                                                  │  │ ProcessIngested │  │
                                                  │  │ Records (Job)  │  │
                                                  │  └───────┬────────┘  │
                                                  │          │           │
                                                  │  ┌───────▼────────┐  │
                                                  │  │ IngestService   │  │
                                                  │  │ • Store records │  │
                                                  │  │ • Group issues  │  │
                                                  │  │ • Check threats │  │
                                                  │  │ • Fire alerts   │  │
                                                  │  └───────┬────────┘  │
                                                  │          │           │
                                                  │    WebSocket Push    │
                                                  │    (Reverb)          │
                                                  │          │           │
                                                  │  ┌───────▼────────┐  │
                                                  │  │ React Dashboard │  │
                                                  │  │ (Inertia + SSR) │  │
                                                  │  └────────────────┘  │
                                                  └──────────────────────┘

```

**Data flow:**

1. The **client package** hooks into Laravel's service container and captures requests, exceptions, queries, jobs, etc.
2. Captured data is sent via authenticated HTTP POST to the server's `/api/ingest` endpoint.
3. The server **immediately queues** the payload and responds with `200 OK` (zero processing delay).
4. A **queue worker** processes the records: stores them, calculates fingerprints for grouping, runs security analysis, and checks alert thresholds.
5. A **WebSocket event** (`ProjectDataIngested`) is broadcast so the dashboard updates in real-time.

---

Production Deployment
---------------------

[](#production-deployment)

### Environment Variables

[](#environment-variables)

Key variables to configure for production:

```
APP_ENV=production
APP_DEBUG=false
APP_URL=https://your-domain.com

# Database
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=laraowl
DB_USERNAME=laraowl
DB_PASSWORD=your-secure-password

# Queue (use Redis for best performance)
QUEUE_CONNECTION=redis

# Broadcasting
BROADCAST_CONNECTION=reverb

# Reverb WebSocket
REVERB_HOST="your-domain.com"
REVERB_PORT=8080
REVERB_SCHEME=https
```

### Process Management (Supervisor)

[](#process-management-supervisor)

Example Supervisor configuration for the queue worker:

```
[program:laraowl-queue]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/laraowl/artisan queue:work --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
numprocs=2
redirect_stderr=true
stdout_logfile=/var/log/laraowl/queue.log

[program:laraowl-reverb]
command=php /path/to/laraowl/artisan reverb:start
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/laraowl/reverb.log
```

### Scheduler (Cron)

[](#scheduler-cron)

Add to your server's crontab:

```
* * * * * cd /path/to/laraowl && php artisan schedule:run >> /dev/null 2>&1

```

This handles:

- **Uptime checks** — every 30 seconds
- **Data pruning** — daily cleanup based on retention settings

---

Dashboard Sections
------------------

[](#dashboard-sections)

SectionDescription**Overview**High-level project health — requests, errors, performance at a glance**Requests**HTTP traffic analysis with route-level breakdown**Exceptions**Grouped errors with stack traces and occurrence tracking**Jobs**Queue job monitoring — processed, failed, duration**Commands**Artisan command execution history**Scheduled Tasks**Cron job health and execution log**Queries**Database query analytics — slow queries, N+1 detection**Notifications**Outbound notification tracking by channel**Mail**Email delivery monitoring**Cache**Cache hit/miss analytics by key**Outgoing Requests**External HTTP call monitoring**Users**Authenticated user activity tracking**Uptime**Site availability monitoring**Logs**Centralized log viewer with search**Security**Threat detection dashboard**Firewall**Cloudflare WAF management (traffic, rules, audit)**Settings**General, Integrations, Alert Rules, Thresholds, API Keys, Cloudflare---

Contributing
------------

[](#contributing)

Contributions are welcome! Please feel free to submit a Pull Request.

License
-------

[](#license)

LaraOwl is open-source software licensed under the [Apache License 2.0](LICENSE).

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance96

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 85.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~13 days

Total

2

Last Release

19d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/87904671?v=4)[Abdelmjid Saber](/maintainers/megoxv)[@megoxv](https://github.com/megoxv)

---

Top Contributors

[![megoxv](https://avatars.githubusercontent.com/u/87904671?v=4)](https://github.com/megoxv "megoxv (6 commits)")[![ngs-th](https://avatars.githubusercontent.com/u/169033404?v=4)](https://github.com/ngs-th "ngs-th (1 commits)")

---

Tags

frameworklaravel

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/laraowl-laraowl/health.svg)

```
[![Health](https://phpackages.com/badges/laraowl-laraowl/health.svg)](https://phpackages.com/packages/laraowl-laraowl)
```

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

10.1k2.2k](/packages/unopim-unopim)[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)[nunomaduro/laravel-starter-kit-inertia-react

The skeleton application for the Laravel framework.

2071.1k](/packages/nunomaduro-laravel-starter-kit-inertia-react)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
