Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Build from source

Compile the boatramp binary (server + CLI) yourself. The default build is batteries-included — it enables every non-conflicting feature — so a plain cargo build gives you the full capability set. For a smaller binary you can opt down to just the features you want.

For prebuilt archives and packages instead, see Install boatramp.

Before you start

Install a recent stable Rust toolchain with rustup, then confirm it:

cargo --version
cargo 1.85.0

Clone the repository and change into it:

git clone https://github.com/BoatRamp/BoatRamp.git
cd BoatRamp
git checkout v0.2.7   # build a released version; omit to build the development tip (main)

Build the default binary

Build the boatramp package in release mode:

cargo build --release -p boatramp
    Finished `release` profile [optimized] target(s) in 6m 05s

This is the batteries-included build: every non-conflicting feature is compiled in (blobs on fs/S3/GCS/Azure, TLS + ACME, HTTP/3, the handler engine, clustering, the Kubernetes operator, OIDC, external signers, the bundler, and the web console). The binary lands at target/release/boatramp. (A from-source build embeds a placeholder console unless you build the SPA first with just console.)

Build a minimal binary

To shrink the binary and its dependency tree, opt out of the defaults with --no-default-features and name only the features you want. The smallest useful build is filesystem blobs plus the SlateDB metadata store:

cargo build --release -p boatramp --no-default-features --features fs,slatedb
    Finished `release` profile [optimized] target(s) in 1m 08s

Add more as you need them — e.g. --features fs,slatedb,tls,handlers for HTTPS and the handler engine. Some features imply others: acme-dns and http3 each pull in tls, and cluster pulls in handlers and slatedb. For every feature and what it enables, see Cargo features & platform support.

Build with Nix

The flake pins the exact toolchain from rust-toolchain.toml, so the compiler matches CI:

nix build
/nix/store/…-boatramp-0.2.7

The result is symlinked at result/bin/boatramp. Enter the dev shell with nix develop for the pinned toolchain plus the just build, just test, and just lint targets.

Verify the build

./target/release/boatramp --version
boatramp 0.2.7

See also