Run locally
Start a single-node Ursula server and verify the HTTP API.
A single node auto-bootstraps on first start. It is the fastest way to evaluate the HTTP API and stream semantics.
Start the server
cargo run --bin ursula -- serve \
--node-id 1 \
--listen 127.0.0.1:4437 \
--advertise 127.0.0.1:4437 \
--data-dir ./data
Or use the repo recipe:
just serve --node-id 1 \
--listen 127.0.0.1:4437 \
--advertise 127.0.0.1:4437 \
--data-dir ./data
Smoke test
curl -f http://127.0.0.1:4437/healthz
curl -f http://127.0.0.1:4437/readyz/local
curl -X PUT http://127.0.0.1:4437/demo
curl -X PUT http://127.0.0.1:4437/demo/hello
curl -X POST http://127.0.0.1:4437/demo/hello \
-H 'Content-Type: application/octet-stream' \
--data-binary 'hello'
curl 'http://127.0.0.1:4437/demo/hello?offset=-1'
Config file
version = 1
[server]
node_id = 1
listen = "127.0.0.1:4437"
advertise = "127.0.0.1:4437"
data_dir = "data"
hot_payload_backend = "rocksdb"
write_only_leader = false
[cold]
backend = "fs"
Run it:
cargo run --bin ursula -- serve --config ./ursula.toml
Configuration precedence is defaults < TOML < environment < CLI flags.