Skip to content

Installation

Raahi ships as one executable plus the built admin UI.

  • Rust 1.84 or newer to compile Raahi
  • Node.js 20 or newer
  • cmake, Go, Perl, and a C or C++ compiler for native build dependencies
  • just for the repository recipes
  • pnpm or npm for the admin UI

On Debian or Ubuntu:

Terminal window
sudo apt install build-essential cmake golang perl

Run the repository check before building:

Terminal window
just doctor
Terminal window
git clone https://git.simhadri.rocks/iamd3vil/raahi.git
cd raahi
just setup
just release

The release binary is written to target/release/raahi. The UI build is written to ui/build.

Run it from the repository root:

Terminal window
./target/release/raahi

just dist builds a static musl executable and packages it with the admin UI:

Terminal window
uv tool install cargo-zigbuild
just dist

The archive is written under dist/. It runs on x86-64 Linux without shared library dependencies. You need zig on PATH to build it.

Terminal window
tar xzf dist/raahi-v*-x86_64-unknown-linux-musl.tar.gz
cd raahi-v*
./raahi

Some Linux distributions install libclang without its built-in C headers. The just recipes set BINDGEN_EXTRA_CLANG_ARGS when needed. Set it yourself if you run Cargo directly:

Terminal window
export BINDGEN_EXTRA_CLANG_ARGS="-I$(cc -print-file-name=include)"
cargo build --release

Continue with the quickstart to run a local upstream and send traffic through Raahi.