> ## Documentation Index
> Fetch the complete documentation index at: https://laraowl.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Server requirements

> PHP, extensions, database, and services required to run the LaraOwl server.

The LaraOwl server is a standard Laravel 13 application. If your environment already runs modern Laravel apps, it will run LaraOwl. The Docker image ships with everything preconfigured — these requirements apply to Composer (bare-metal) installs.

<Note>
  These requirements are for the **LaraOwl server**. The `laraowl/client` package you install into monitored apps only needs a Laravel application running PHP 8.3+.
</Note>

## PHP

* **PHP 8.3 or higher**

### Required PHP extensions

Laravel's standard extensions plus a few LaraOwl needs for image handling, math, and queue workers:

| Extension                      | Purpose                                          |
| ------------------------------ | ------------------------------------------------ |
| `mbstring`                     | String handling                                  |
| `openssl`                      | Encryption and TLS                               |
| `pdo`                          | Database access                                  |
| `pdo_mysql` **or** `pdo_pgsql` | Driver for your chosen database                  |
| `tokenizer`                    | Framework internals                              |
| `xml` / `ctype` / `json`       | Framework internals                              |
| `curl`                         | Outbound HTTP (ingestion, alerts, uptime checks) |
| `fileinfo`                     | Media handling                                   |
| `gd`                           | Image processing (avatars, media library)        |
| `bcmath`                       | Precise numeric calculations                     |
| `zip`                          | Package and asset handling                       |
| `exif`                         | Image metadata                                   |
| `pcntl`                        | Queue workers and the Reverb WebSocket server    |
| `redis` (PECL)                 | Recommended for cache, queue, and broadcasting   |

## Database

LaraOwl supports any Laravel-compatible relational database. For production, choose one of:

* **PostgreSQL 13+** (recommended — the default for the Docker image)
* **MySQL 8.0+** / **MariaDB 10.6+**

<Warning>
  SQLite is fine for local evaluation but **not recommended for production**. LaraOwl ingests high volumes of concurrent writes, which SQLite handles poorly.
</Warning>

## Supporting services

LaraOwl relies on background processing and real-time broadcasting. In production you need:

| Service            | Purpose                                     | Notes                                              |
| ------------------ | ------------------------------------------- | -------------------------------------------------- |
| **Queue worker**   | Processes ingested telemetry asynchronously | Required. Run via `queue:work` or Laravel Horizon. |
| **Laravel Reverb** | WebSocket server for live dashboard updates | Required for real-time UI.                         |
| **Scheduler**      | Uptime checks and daily data pruning        | Required. Cron entry or `schedule:work`.           |
| **Redis**          | Cache, queue backend, and broadcasting      | Strongly recommended for performance.              |

## Frontend build tooling

The dashboard is a React + Inertia SPA. Composer installs need Node.js to build assets:

* **Node.js 18 or higher**
* **npm** (bundled with Node.js)

<Tip>
  Node.js is a **build-time** requirement only. Once assets are compiled with `npm run build`, no Node.js process is needed at runtime.
</Tip>
