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:
- The Cuitty portal at
http://localhost:7700 - Postgres + SpiceDB + libSQL running in containers
- A first project, an API key, and your first event in the audit module
Prerequisites
- Docker 24 or later
- Docker Compose v2
- 2 GB of free RAM
- Ports
7700,5432, and50051available
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:
| Service | Purpose |
|---|---|
portal | The Astro + Bun portal on :7700 |
postgres | BetterAuth + project metadata |
spicedb | Fine-grained RBAC |
libsql | Per-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
- Wire protocol reference — the canonical contract for
/api/ingest - Install on Kubernetes — production deployment
- TypeScript SDK —
@cuitty/sdkfor Node and Bun - Modules overview — what each module captures