Installation

Dugite can be installed from pre-built binaries, container images, or built from source.

Pre-built Binaries

Download the latest release from GitHub Releases:

PlatformArchitectureDownload
Linuxx86_64dugite-x86_64-linux.tar.gz
Linuxaarch64dugite-aarch64-linux.tar.gz
macOSx86_64 (Intel)dugite-x86_64-macos.tar.gz
macOSApple Silicondugite-aarch64-macos.tar.gz
# 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

Multi-architecture container images (amd64 and arm64) are published to GitHub Container Registry:

docker pull ghcr.io/michaeljfazio/dugite:latest

The image uses a distroless base (gcr.io/distroless/cc-debian12:nonroot) for minimal attack surface — no shell, no package manager, runs as nonroot (UID 65532).

Run the node:

docker run -d \
  --name dugite \
  -p 3001:3001 \
  -p 12798:12798 \
  -v dugite-data:/opt/dugite/db \
  ghcr.io/michaeljfazio/dugite:latest

See Kubernetes Deployment for production container deployments.

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 Rust 1.75 or later (edition 2021).

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/:

BinaryDescription
dugite-nodeThe Cardano node
dugite-cliThe cardano-cli compatible command-line interface
dugite-monitorTerminal monitoring dashboard (ratatui-based, real-time metrics via Prometheus polling)
dugite-configInteractive 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:

cargo test --all

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 test --all

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.