Quickstart
This quickstart runs the entire product locally with Docker Compose. It’s the fastest way to see Ultraviolet end-to-end.
Prerequisites
Section titled “Prerequisites”Docker and Docker Compose. That’s it — everything runs in containers.
Bring up the stack
Section titled “Bring up the stack”make dev # bring up ClickHouse + query-api + portal-uimake dev-down # tear it all downThen open:
- Portal UI — http://localhost:9001
- Query API health — http://localhost:8080/api/v1/health
- Query API ClickHouse ping — http://localhost:8080/api/v1/ping
Stream some data
Section titled “Stream some data”To see live data on the dashboard, stream synthetic traffic at the ingest
gateway (OTLP/gRPC on :4317):
make loadgen # ~40 spans/sec across 5 services x 2 sites, Ctrl-C to stopOpen the Services page — you’ll get a RED table plus rate and latency
charts, updating every few seconds. Any OpenTelemetry SDK or Collector can point
at localhost:4317 instead of the load generator.
Local development
Section titled “Local development”To work on the services without the full Compose stack:
make proto # regenerate Go code from proto (requires buf)make build # build all Go servicesmake test # run Go testsmake lint # go vet + gofmt checkNext steps
Section titled “Next steps”Ready for a real cluster? See Deploy to EKS.