Skip to content

Quickstart: a single container

The shortest way to try Roxa: everything local, data on disk, metadata embedded — zero external services. All you need is Docker (for the image, see getting the image).

Run

bash
docker run -d --name roxa \
  -p 9092:9092 -p 50051:50051 \
  -v roxa-data:/data \
  pkg.sourcecraft.tech/cr/roxa/cn1mfog263e150r6b8si/roxa:1.1.0 serve \
    --addr 0.0.0.0:50051 --kafka_addr 0.0.0.0:9092 --data-dir /data

gRPC (roxactl) works right away. For Kafka clients on other machines you also need kafka_advertised_addr (the external server address the broker announces to clients) — it is set in the config, so for real production and the web console it is easier to go straight to the docker compose production stack.

A 30-second check

The roxactl CLI is already in the image:

bash
docker exec roxa roxactl --endpoint http://127.0.0.1:50051 topic create demo --partitions 3
docker exec roxa roxactl --endpoint http://127.0.0.1:50051 produce demo hello world
docker exec roxa roxactl --endpoint http://127.0.0.1:50051 consume demo
# 0: hello
# 1: world

Any Kafka client (a kcat example, from the same machine):

bash
kcat -b 127.0.0.1:9092 -L                          # list topics
echo "hello" | kcat -b 127.0.0.1:9092 -t demo -P   # produce
kcat -b 127.0.0.1:9092 -t demo -C -o beginning -e  # consume from the beginning

What next