Skip to content

Self-host ENSNode

Self-hosting gives you full control over how you index and serve ENS data. Compared to the public Hosted Instances, your own ENSNode instance lets you:

  • Select ENS Namespace: choose which ENS protocol deployment ENSNode will provide data for (ex: mainnet or sepolia). Great for testing and development.
  • Activate ENSNode Plugins: adjust indexed data model and indexed data records for your specific use case.
  • Tune “name healing” coverage — choose a label set that matches your requirements for ENSRainbow.
  • Customize your data model — implement an ENSDb Writer to control how data is indexed into your own ENSDb instance.
  • Build your own APIs and pipelines — implement an ENSDb Reader to serve your apps directly from your ENSDb instance.
  • Control versioning, updates, and uptime — decide when to adopt new releases and apply your own high-availability strategy.

Before diving into deployment details, it helps to understand how ENSNode’s components work together.

ENSNode High-Level Architecture

The fastest way to run ENSNode is with Docker Compose:

Terminal window
# 1. Copy and edit the environment file
cp docker/envs/.env.docker.example docker/envs/.env.docker.local
# 2. Set your namespace, plugins, and RPC endpoints in the file above
# 3. Start the stack
docker compose -f docker/docker-compose.yml up -d

For local development against a devnet, you can skip configuration and use docker/docker-compose.devnet.yml instead.