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:
mainnetorsepolia). 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.
High-level architecture
Section titled “High-level architecture”Before diving into deployment details, it helps to understand how ENSNode’s components work together.
Quick start
Section titled “Quick start”The fastest way to run ENSNode is with Docker Compose:
# 1. Copy and edit the environment filecp 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 stackdocker compose -f docker/docker-compose.yml up -dFor local development against a devnet, you can skip configuration and use docker/docker-compose.devnet.yml instead.
You can avoid reindexing the entire ENS history from scratch by bootstrapping from an ENSDb snapshot. Snapshots include an indexed state and RPC cache, so you only need to catch up on events after the snapshot was taken.
Next steps
Section titled “Next steps” ENSNode Operations Understand workloads, requirements, scalability, monitoring, and troubleshooting.
ENSNode Deployment Options Compare Docker, Railway, and Terraform deployment options.