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

# plog serve

> Start the ProvenLog server and dashboard

`plog serve` starts the HTTP server, REST API, and web dashboard.

## Usage

```bash theme={null}
plog serve
plog serve --addr :8080
plog serve --api-keys "key1,key2"
plog serve --demo
plog serve --no-dashboard
```

## Flags

| Flag             | Default                  | Description                                     |
| ---------------- | ------------------------ | ----------------------------------------------- |
| `--addr`         | `:7600`                  | Listen address                                  |
| `--api-keys`     | —                        | Comma-separated API keys for Bearer token auth  |
| `--demo`         | `false`                  | Seed sample data using a temporary database     |
| `--no-dashboard` | `false`                  | API only, no web UI                             |
| `--otlp`         | `false`                  | Enable OTLP trace receiver at `POST /v1/traces` |
| `--db`           | `~/.provenlog/events.db` | SQLite database path                            |

## Authentication

When started with `--api-keys`, all API endpoints require a Bearer token:

```bash theme={null}
plog serve --api-keys "my-secret-key"
```

```bash theme={null}
curl -H "Authorization: Bearer my-secret-key" http://localhost:7600/v1/events
```

## Demo mode

```bash theme={null}
plog serve --demo
```

Seeds 25 realistic events across 3 agents in a temporary database. Useful for previewing the dashboard without real data.

## What's included

* **REST API** at `/v1/*` — see [API Reference](/api-reference/introduction)
* **Web Dashboard** at `/` — see [Dashboard](/features/dashboard)
* **WebSocket** at `/v1/stream` — live event streaming
