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

# Quickstart

> Get Calseta running locally in under 5 minutes

<Info>
  **Calseta is under active development.** APIs and features may change. We welcome feedback and contributions on [GitHub](https://github.com/calseta/calseta).
</Info>

## Run Calseta locally

```bash theme={null}
git clone https://github.com/calseta/calseta.git
cd calseta
cp .env.local.example .env
docker compose up
```

That's it. The platform starts three services:

| Service        | Port | Description                                          |
| -------------- | ---- | ---------------------------------------------------- |
| FastAPI server | 8000 | REST API for alerts, enrichment, workflows, and more |
| MCP server     | 8001 | Model Context Protocol server for AI agents          |
| UI             | 5173 | Web dashboard for alert management and configuration |
| PostgreSQL     | 5432 | Primary store and task queue                         |

## Try the lab

The lab is a fully seeded demo environment with sample alerts, enrichment data, and a full-access API key. It's the fastest way to explore Calseta's capabilities:

```bash theme={null}
make lab
```

This seeds 5 alerts with enriched indicators, detection rules with full documentation, context documents, and workflows. A pre-configured API key is printed at the end:

```bash theme={null}
curl -H "Authorization: Bearer cai_lab_demo_full_access_key_not_for_prod" \
  http://localhost:8000/v1/alerts
```

<Tip>
  Use `make lab-reset` to wipe and re-seed from scratch. Use `make lab-stop` to stop all services.
</Tip>

## Create an API key

For non-lab usage, create your own API key:

```bash theme={null}
docker compose exec api python -m app.cli.create_api_key \
  --name "My Agent" \
  --scopes "alerts:read,alerts:write,workflows:read,workflows:execute"
```

<Warning>
  Save the returned key immediately — it cannot be retrieved after creation.
</Warning>

## Open the UI

Once services are running, open [http://localhost:5173](http://localhost:5173) in your browser. The dashboard gives you a visual interface for managing alerts, configuring detection rules, enrichment providers, workflows, and more.

<Frame>
  <img src="https://mintcdn.com/calseta/6xZ9bwwniHmrG7R3/images/ui-alert-list.png?fit=max&auto=format&n=6xZ9bwwniHmrG7R3&q=85&s=12c953dbe406c5a05d4b076f56f29bb9" alt="Calseta UI — Alert list view" width="1904" height="640" data-path="images/ui-alert-list.png" />
</Frame>

<Tip>
  The UI is optional — everything it does is also available via the REST API and MCP server. Use whichever interface fits your workflow.
</Tip>

## Next steps

<CardGroup cols={2}>
  <Card title="How It Works" icon="diagram-project" href="/getting-started/how-it-works">
    Understand the five-step pipeline: ingest, normalize, enrich, contextualize, and dispatch.
  </Card>

  <Card title="Authentication" icon="key" href="/concepts/authentication">
    Create API keys and authenticate your requests.
  </Card>

  <Card title="Alert Sources" icon="bell" href="/integrations/alert-sources/overview">
    Connect Microsoft Sentinel, Elastic, Splunk, or a generic webhook.
  </Card>

  <Card title="UI Dashboard" icon="browser" href="/concepts/ui">
    Explore the web dashboard for alert management and settings.
  </Card>

  <Card title="MCP Setup" icon="plug" href="/mcp-reference/setup">
    Connect your AI agent to Calseta via the MCP server.
  </Card>
</CardGroup>
