Installation
Raahi ships as one executable plus the built admin UI.
Prerequisites
Section titled “Prerequisites”- The latest stable Rust toolchain to compile Raahi
- Node.js 22.12 or newer
cmake, Go, Perl, and a C or C++ compiler for native build dependenciesjustfor the repository recipes- pnpm or npm for the admin UI
On Debian or Ubuntu:
sudo apt install build-essential cmake golang perlRun the repository check before building:
just doctorInstall a release
Section titled “Install a release”GitHub Releases publishes Linux archives for amd64 and arm64. The archive contains the executable, admin UI, README, and license.
# Replace amd64 with arm64 when needed.archive=raahi-v0.3.0-linux-amd64.tar.gzcurl -LO "https://github.com/iamd3vil/raahi/releases/download/v0.3.0/$archive"curl -LO https://github.com/iamd3vil/raahi/releases/download/v0.3.0/checksums.txtchecksum_line="$(grep -F "$archive" checksums.txt)"expected="${checksum_line#*$'\t'}"echo "$expected $archive" | sha256sum -c -tar xzf "$archive"cd "${archive%.tar.gz}"./raahi --helpRaahi also publishes a multi-architecture image for amd64 and arm64:
docker run --rm \ -p 8080:8080 \ -p 8443:8443 \ -p 127.0.0.1:9080:9080 \ -v raahi-data:/data \ ghcr.io/iamd3vil/raahi:0.3.0The image stores the SQLite database in /data. It serves the bundled UI and binds the admin listener inside the container.
Build from source
Section titled “Build from source”git clone https://github.com/iamd3vil/raahi.gitcd raahijust setupjust releaseThe release binary is written to target/release/raahi. The UI build is written to ui/build.
Run it from the repository root:
./target/release/raahiBuild a portable Linux archive
Section titled “Build a portable Linux archive”just dist builds an x86-64 static musl executable and packages it with the admin UI for local testing:
uv tool install cargo-zigbuildjust distThe archive is written under dist/. You need zig on PATH to build it. GitHub Releases uses native amd64 and arm64 runners instead of this local packaging recipe.
tar xzf dist/raahi-v*-x86_64-unknown-linux-musl.tar.gzcd raahi-v*./raahiFix stddef.h build failures
Section titled “Fix stddef.h build failures”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:
export BINDGEN_EXTRA_CLANG_ARGS="-I$(cc -print-file-name=include)"cargo build --releaseContinue with the quickstart to run a local upstream and send traffic through Raahi.