Installation
Dugite can be installed from pre-built binaries or built from source.
Pre-built Binaries
Download the latest release from GitHub Releases:
| Platform | Architecture | Download |
|---|---|---|
| Linux | x86_64 | dugite-x86_64-linux.tar.gz |
| Linux | aarch64 | dugite-aarch64-linux.tar.gz |
| macOS | Apple Silicon | dugite-aarch64-macos.tar.gz |
Note: macOS x86_64 (Intel) binaries are not published — GitHub's macOS runners are aarch64-only. Intel Mac users should build from source.
# Example: download and extract for Linux x86_64
curl -LO https://github.com/michaeljfazio/dugite/releases/latest/download/dugite-x86_64-linux.tar.gz
tar xzf dugite-x86_64-linux.tar.gz
sudo mv dugite-node dugite-cli dugite-monitor dugite-config /usr/local/bin/
Verify checksums:
curl -LO https://github.com/michaeljfazio/dugite/releases/latest/download/SHA256SUMS.txt
sha256sum -c SHA256SUMS.txt
Container Image
Coming soon: Container images (ghcr.io/michaeljfazio/dugite) are not yet published. Track progress in issue #507. For now, use pre-built binaries or build from source.
See Kubernetes Deployment for production container deployments once images are available.
Building from Source
Prerequisites
Rust Toolchain
Install the latest stable Rust toolchain via rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Verify the installation:
rustc --version
cargo --version
Dugite requires the latest stable Rust toolchain (edition 2021). Use rustup update stable to stay current.
System Dependencies
Dugite's storage layer is pure Rust with no system dependencies beyond the Rust toolchain. Block storage uses append-only chunk files, and the UTxO set uses dugite-lsm, a pure Rust LSM tree. On all platforms, cargo build works out of the box.
Build
Clone the repository:
git clone https://github.com/michaeljfazio/dugite.git
cd dugite
Build in release mode:
cargo build --release
On Linux with kernel 5.1+, you can enable io_uring for improved disk I/O in the UTxO LSM tree:
cargo build --release --features io-uring
This produces four binaries in target/release/:
| Binary | Description |
|---|---|
dugite-node | The Cardano node |
dugite-cli | The cardano-cli compatible command-line interface |
dugite-monitor | Terminal monitoring dashboard (ratatui-based, real-time metrics via Prometheus polling) |
dugite-config | Interactive TUI configuration editor with tree navigation, inline editing, and diff view |
Install Binaries
To install the binaries into your $CARGO_HOME/bin (typically ~/.cargo/bin/):
cargo install --path crates/dugite-node
cargo install --path crates/dugite-cli
cargo install --path crates/dugite-monitor
cargo install --path crates/dugite-config
Running Tests
Verify everything is working (requires cargo-nextest):
cargo nextest run --workspace
Or with the built-in test runner:
cargo test --workspace
The project enforces a zero-warning policy. You can run the full CI check locally:
cargo fmt --all -- --check
cargo clippy --all-targets -- -D warnings
cargo nextest run --workspace
Development Build
For faster compilation during development, use the debug profile (the default):
cargo build
Debug builds are significantly faster to compile but produce slower binaries. Always use --release for running a node against a live network.