Install

Build Ursula from source and prepare a host to run the server.

Ursula is currently easiest to install from source. The build compiles Rust plus the RocksDB native dependency, so the host needs a Rust toolchain and a C/C++ build toolchain.

Prerequisites

Required:

  • Rust stable and Cargo
  • a C/C++ compiler
  • CMake
  • pkg-config

Optional but recommended for the repo's developer workflow: just (recipe runner) and sccache (compiler cache). They speed up rebuilds; everything still works with plain cargo.

On macOS:

brew install rust cmake pkg-config
brew install just sccache   # optional

On Debian or Ubuntu:

sudo apt-get update
sudo apt-get install -y build-essential cmake pkg-config curl
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install just sccache   # optional

Build

Clone the repository, then build the workspace:

git clone https://github.com/opendurability/ursula.git
cd ursula
cargo build --release --bin ursula

If you installed just and sccache, you can use the cached recipes instead, which wire sccache into both Rust and RocksDB's C/C++ build steps:

just build

For a release binary:

cargo build --release --bin ursula
./target/release/ursula --help

Run from source

For local development, use the checked-in justfile:

just serve --node-id 1 \
  --listen 127.0.0.1:4437 \
  --advertise 127.0.0.1:4437 \
  --data-dir ./data

For deployment, build target/release/ursula and run the binary with a config file.