Getting Started

Quickstart

Get a self-hosted Cuitty up and running in five minutes with Docker Compose.

Quickstart

This guide walks you from a clean machine to a running Cuitty portal in under five minutes. By the end you will have:

Prerequisites

1. Clone the repository

git clone https://gitlab.com/cuitty/root cuitty
cd cuitty

2. Bring up the stack

docker compose up -d

Compose starts four services:

ServicePurpose
portalThe Astro + Bun portal on :7700
postgresBetterAuth + project metadata
spicedbFine-grained RBAC
libsqlPer-module event storage

Wait roughly twenty seconds for the health checks to pass.

3. Open the portal

Visit http://localhost:7700. The first request runs the bootstrap flow: you create the root admin account and pick an organization name. There are no seed users.

4. Create a project and an API key

From the portal, navigate to Projects → New Project, then Settings → API Keys → Create. Copy the key — you will not see it again.

5. Send your first event

curl -X POST http://localhost:7700/api/ingest \
  -H "Authorization: Bearer $CUITTY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "events": [
      {
        "type": "audit",
        "ts": "2026-04-27T12:00:00Z",
        "data": {
          "actor": "you@example.com",
          "action": "quickstart.complete",
          "resource": "cuitty"
        }
      }
    ]
  }'

You should see {"accepted":1,"rejected":[]}. Open the Audit module and your event is there.

Where to go next