RIRRdView on GitHub

Self-host RIRRd beta

RIRRd is a Rust Internet Routing Registry daemon with embedded storage, a bundled console. It runs independently of the community service at irrd.tools.

Version 0.1.0-beta.4 is for evaluation. Full IRRd parity and production qualification are incomplete. Read beta status before deployment. The project is MIT licensed. The canonical repository is RIRRd/RIRRd on GitHub. Use a tagged beta release for a reproducible evaluation.

Linux release packages

Download the matching x86-64 or ARM64 DEB/RPM from GitHub Releases. The beta release workflow builds on Debian 12, tests native packages and publishes SHA256SUMS. Packages preserve the operator configuration and require explicit service startup.

Download install.sh and SHA256SUMS from the Release assets into a new directory. Use the installer attached to the selected release. It selects the architecture and checks the package before installation.

# Verify the downloaded installer; missing package files are ignored here.
sha256sum --ignore-missing --check SHA256SUMS
# Continue after checksum verification succeeds.
bash install.sh --version 0.1.0-beta.4 --download-only /tmp/rirrd-package
# Or install with your distribution package manager.
sudo bash install.sh --version 0.1.0-beta.4

Configure /etc/rust-irrd/irrd.toml, import a source snapshot while the daemon is stopped, run config check and database verify, then start rust-irrd.service explicitly. Keep HTTP on loopback behind your own proxy.

Build and try a local fixture

On Linux, install stable Rust, a C compiler/linker, pkg-config and CA certificates. Build from the source checkout:

git clone https://github.com/RIRRd/RIRRd.git
cd RIRRd
cargo build --locked --release
./target/release/rust-irrd --config examples/irrd.toml config check
./target/release/rust-irrd --config examples/irrd.toml import snapshot \
  --source EXAMPLE --file examples/example.rpsl
./target/release/rust-irrd --config examples/irrd.toml database verify
./target/release/rust-irrd --config examples/irrd.toml server

The synthetic fixture listens on local port 4343. In another terminal:

whois -h 127.0.0.1 -p 4343 '!gAS64496'
whois -h 127.0.0.1 -p 4343 '!6AS64496'

These are local evaluation commands; public-node commands use irrd.tools. To enable the bundled console, add http_listen = "127.0.0.1:8080" at the top level of the example configuration, restart and open http://127.0.0.1:8080/ui/. For a remote host use your own authenticated management tunnel. The native HTTP listener deliberately binds loopback; public deployments use a reverse proxy.

Keep a small deployment small

Choose the sources you need and set an explicit database cache budget. Start with the source repository's examples/small-host/irrd.toml; it uses a bounded cache and connection budget. Cache size is not a whole-process memory limit. Measure import peaks, steady queries and mirror updates separately.

Stop the serving process before offline imports, exports, verification or compaction: the database has exclusive process ownership. The in-process NRTMv3 scheduler can apply verified source updates without stopping query listeners. Keep database files, mirror snapshots, and credentials outside Git.

Connect routing tools

See BIRD and FRR examples for public bgpq4 queries and safe filter generation. RIRRd is focused on IRR data and queries. Run a separate RPKI validator if your routing policy also needs cryptographic origin validation.