Download EtchDNS

Get started with EtchDNS by downloading pre-built binaries or building from source.

Pre-built Binaries

Download pre-built binaries for your platform from the GitHub releases page. These binaries are compiled without WebAssembly hooks support to keep the file size smaller.

Build from Source

Build EtchDNS from source to get the latest features or to enable WebAssembly hooks support.

Standard Build

# Clone the repository
git clone https://github.com/dnscrypt/etchdns.git
cd etchdns

# Build the release version
cargo build --release

# The executable will be available at target/release/etchdns

Build with WebAssembly Hooks Support

# Build with the hooks feature flag
cargo build --release --features hooks

Note that enabling the hooks feature includes a WebAssembly runtime which significantly increases the binary size. Only enable this feature if you plan to use WebAssembly extensions.

Docker Image

Run EtchDNS in a Docker container for easy deployment and isolation.

# Pull the latest image
docker pull jedisct1/etchdns:latest

# Run EtchDNS with a custom configuration
docker run -v /path/to/config.toml:/etc/etchdns/config.toml -p 53:53/udp -p 53:53/tcp jedisct1/etchdns

System Requirements

Minimum Requirements

  • 64-bit operating system (Linux, macOS, FreeBSD, or Windows)
  • 100 MB of RAM
  • 50 MB of disk space

Recommended Requirements

  • 64-bit operating system (Linux, macOS, FreeBSD, or Windows)
  • 500 MB of RAM or more for larger cache sizes
  • 100 MB of disk space

Build Requirements

  • Rust 1.60.0 or later
  • Cargo package manager
  • C compiler (for some dependencies)

Next Steps

After downloading or building EtchDNS, follow these steps to get started:

  1. Create a configuration file based on the example config.toml
  2. Run EtchDNS with your configuration file: etchdns -c /path/to/config.toml
  3. Configure your devices or network to use EtchDNS as their DNS resolver