Skip to main content
The root docker-compose.yml starts the full LangSight production stack.

Services

ServicePortPurpose
clickhouse8123Time-series span storage + reliability analytics
postgres5432App state: configs, alert rules
otel-collector4317, 4318Receives OTLP traces from agent frameworks
api8000LangSight REST API

Start the stack

# Clone the repo
git clone https://github.com/sumankalyan123/langsight
cd langsight

# Set required secrets
echo "POSTGRES_PASSWORD=your-secure-password" > .env

# Start everything
docker compose up -d

# Check status
docker compose ps

Send your first span

curl -X POST http://localhost:8000/api/traces/spans \
  -H "Content-Type: application/json" \
  -d '[{
    "server_name": "my-mcp",
    "tool_name": "query",
    "started_at": "2026-03-17T12:00:00Z",
    "ended_at": "2026-03-17T12:00:00.042Z",
    "latency_ms": 42.0,
    "status": "success"
  }]'

Connect your OTEL exporter

export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318

Upgrade

docker compose pull
docker compose up -d

Volumes

Data persists in named Docker volumes:
VolumeContains
clickhouse_dataAll span data, health history, reliability aggregations
postgres_dataServer configs, alert rules

Environment variables

VariableDefaultDescription
POSTGRES_PASSWORDlangsightPostgreSQL password
LANGSIGHT_LOG_LEVELINFOLog verbosity