Kaiten
Getting Started

Quickstart — Self-Hosted

Run the full Kaiten stack locally with Docker Compose in 15 minutes.

Quickstart — Self-Hosted

Run Kaiten locally using Docker Compose with pre-seeded demo data.

Prerequisites

Setup

Clone the Repository

git clone https://github.com/kaitencloud/kaiten.git
cd kaiten

Configure Environment Variables

cp .env.example .env

Edit .env and fill in the required values:

# Kaiten
KAITEN_PORT=6000

# API — your Identity Provider secret
CLERK_SECRET_KEY=sk_test_xxxxx

# Database
KAITEN_DATABASE_PORT=5452
KAITEN_DATABASE_USER=kaiten
KAITEN_DATABASE_PASSWORD=kaiten
KAITEN_DATABASE=kaiten

CLERK_SECRET_KEY is required for authentication. See the Clerk Setup Guide for step-by-step instructions on creating a Clerk application and obtaining your secret key.

Launch with Demo Data

Start the stack with the Kaiten Sushi Shop demo profile:

KAITEN_SEED_PROFILE=kaiten-sushi-shop make up

This runs the backend profile which includes:

  • Traefik — API gateway with JWT validation and routing
  • PostgreSQL 17 — database with WAL logical replication
  • Go API — REST + GraphQL server
  • Seeder — populates the database with demo data

Without demo data, run make up instead. Other profiles:

  • make up-full — adds MCP server + Jaeger tracing
  • make up-frontend — adds the local React dashboard dev server

Verify Services

make ps

You should see traefik, kaiten-db, kaiten-api, and kaiten-seeder (completed) running.

What's Running

ServiceContainerPortDescription
Traefiktraefik6000 (web), 8080 (dashboard)API gateway, auth middlewares
PostgreSQLkaiten-db5452Database with WAL replication
APIkaiten-api— (behind Traefik)Go REST + GraphQL server
Seederkaiten-seeder— (one-shot)Database seeding

Next Step

Explore Demo Data

On this page