From 95a9393101b8e2875edf376f80dde0f27a3bcc32 Mon Sep 17 00:00:00 2001 From: Tomasz Kopacki Date: Thu, 11 Jun 2026 13:07:31 +0200 Subject: [PATCH 1/3] Highlight benefits of ENSNode self-hosting --- .../src/content/docs/docs/self-host/index.mdx | 35 ++++++------------- 1 file changed, 11 insertions(+), 24 deletions(-) diff --git a/docs/ensnode.io/src/content/docs/docs/self-host/index.mdx b/docs/ensnode.io/src/content/docs/docs/self-host/index.mdx index b3a240a15..14c66f92b 100644 --- a/docs/ensnode.io/src/content/docs/docs/self-host/index.mdx +++ b/docs/ensnode.io/src/content/docs/docs/self-host/index.mdx @@ -6,22 +6,15 @@ description: Decide whether to self-host ENSNode and understand the architecture import { LinkCard } from "@astrojs/starlight/components"; import EnsDbSnapshotsTeaser from "@components/molecules/EnsDbSnapshotsTeaser.astro"; -This page will help you decide whether to self-host ENSNode or use the hosted instances. Includes architecture overview of the ENSNode stack (ENSIndexer, ENSDb, ENSRainbow, ENSApi). +Get extra benefits compared to using one of the publicly [Hosted Instances](/docs/hosted-instances). Having your own ENSNode instance allows you to: -:::note -Follow these guides to deploy an ENSNode instance to the cloud. -::: - -Running your own ENSNode instance is helpful for those that wish to: - -- Maintain control over their own infrastructure -- Ensure control over their own availability and uptime guarantees -- Customize ENSNode's behavior -- Own the resulting Postgres index for custom queries or `JOIN`s - -:::caution[Private Networking] -Note that because ENSNode makes many label healing requests to ENSRainbow while indexing, it's _imperative_ that they be on the same local network to minimize request time. -::: +- **Select [ENS Namespace](/docs/hosted-instances#ens-namespaces)**: choose which ENS protocol deployment ENSNode will provide data for (ex: `mainnet` or `sepolia`). Great for testing and development. +- **Select [ENSNode Plugins](/docs/hosted-instances#ensnode-plugins)**: activate only the plugins you need for your use cases, reducing resource usage and improving performance. +- **Tailor "name healing" coverage**: apply selected [label set](/docs/services/ensrainbow/usage/available-label-sets#available-label-sets) that fits your needs for [ENSRainbow to perform "name healing"](/docs/services/ensrainbow#how-ensrainbow-helps). +- **Index ENS data the way you want**: customize indexing logic and indexed data model stored in your own [ENSDb instance](/docs/integrate/integration-options/ensdb) by implementing an [ENSDb Writer](/docs/integrate/integration-options/ensdb-writers). +- **Build custom APIs and data pipelines**: implement an [ENSDb Reader](/docs/integrate/integration-options/ensdb-readers) to build apps using your own ENSDb instance as a source of truth for ENS live data. +- **Control versioning and updates**: choose when to update your ENSNode instance to new versions, giving you control over when to adopt new features or breaking changes. +- **Manage uptime**: apply your own strategies for ensuring high availability and uptime guarantees. ### Bootstrap from a snapshot (coming soon) @@ -43,14 +36,8 @@ Self-hosting today means standing up a fresh ENSNode instance from zero and wait href="/docs/self-host/scalability" /> -### Deploying with Docker - -The Docker deployment option provides the easiest way to run the full ENSNode suite of services both locally and in the cloud. - - - -### Deploying with Terraform +### Deployment options -An example Terraform deployment reference is available, showing an example of deploying the full ENSNode suite on Render with AWS managed domain names. + - + From 03d44dcf0a91ca3cf31bc92ddbb6caca9d72a16f Mon Sep 17 00:00:00 2001 From: Tomasz Kopacki Date: Thu, 11 Jun 2026 13:57:33 +0200 Subject: [PATCH 2/3] Apply AI PR feedback --- docs/ensnode.io/src/content/docs/docs/hosted-instances.mdx | 4 ++-- docs/ensnode.io/src/content/docs/docs/self-host/index.mdx | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/ensnode.io/src/content/docs/docs/hosted-instances.mdx b/docs/ensnode.io/src/content/docs/docs/hosted-instances.mdx index 5fe581916..4f1ad2f42 100644 --- a/docs/ensnode.io/src/content/docs/docs/hosted-instances.mdx +++ b/docs/ensnode.io/src/content/docs/docs/hosted-instances.mdx @@ -56,11 +56,11 @@ Each ENSNode instance is also configured for a specific set of activated [ENSNod The activated plugins determine the specific indexed data model and data records ENSIndexer will produce in ENSDb and therefore which APIs and data records ENSApi will make available to query. -### ENSv1 + ENSv2 Instances +## ENSv1 + ENSv2 Instances These instances are associated with an ENS namespace that has upgraded to ENSv1 + ENSv2 and demonstrate the latest support in ENSNode for ENSv1 and ENSv2 being concurrently activated together. -#### ENSNode 'v2 Sepolia' +### ENSNode 'v2 Sepolia' :::caution[v2 Sepolia] The `sepolia-v2` namespace is undergoing active development by the ENS Labs team who is continuing to release updated ENSv2 contracts. It should be considered experimental. diff --git a/docs/ensnode.io/src/content/docs/docs/self-host/index.mdx b/docs/ensnode.io/src/content/docs/docs/self-host/index.mdx index 14c66f92b..bff0b2e0a 100644 --- a/docs/ensnode.io/src/content/docs/docs/self-host/index.mdx +++ b/docs/ensnode.io/src/content/docs/docs/self-host/index.mdx @@ -6,15 +6,15 @@ description: Decide whether to self-host ENSNode and understand the architecture import { LinkCard } from "@astrojs/starlight/components"; import EnsDbSnapshotsTeaser from "@components/molecules/EnsDbSnapshotsTeaser.astro"; -Get extra benefits compared to using one of the publicly [Hosted Instances](/docs/hosted-instances). Having your own ENSNode instance allows you to: +Self-hosting provides extra benefits compared to using one of the publicly [Hosted Instances](/docs/hosted-instances). Having your own ENSNode instance allows you to: - **Select [ENS Namespace](/docs/hosted-instances#ens-namespaces)**: choose which ENS protocol deployment ENSNode will provide data for (ex: `mainnet` or `sepolia`). Great for testing and development. - **Select [ENSNode Plugins](/docs/hosted-instances#ensnode-plugins)**: activate only the plugins you need for your use cases, reducing resource usage and improving performance. -- **Tailor "name healing" coverage**: apply selected [label set](/docs/services/ensrainbow/usage/available-label-sets#available-label-sets) that fits your needs for [ENSRainbow to perform "name healing"](/docs/services/ensrainbow#how-ensrainbow-helps). +- **Tailor "name healing" coverage**: apply a [label set](/docs/services/ensrainbow/usage/available-label-sets#available-label-sets) that fits your needs for [ENSRainbow to perform "name healing"](/docs/services/ensrainbow#how-ensrainbow-helps). - **Index ENS data the way you want**: customize indexing logic and indexed data model stored in your own [ENSDb instance](/docs/integrate/integration-options/ensdb) by implementing an [ENSDb Writer](/docs/integrate/integration-options/ensdb-writers). - **Build custom APIs and data pipelines**: implement an [ENSDb Reader](/docs/integrate/integration-options/ensdb-readers) to build apps using your own ENSDb instance as a source of truth for ENS live data. - **Control versioning and updates**: choose when to update your ENSNode instance to new versions, giving you control over when to adopt new features or breaking changes. -- **Manage uptime**: apply your own strategies for ensuring high availability and uptime guarantees. +- **Manage uptime**: apply strategies for ensuring high availability and uptime guarantees. ### Bootstrap from a snapshot (coming soon) From cf7f980660ea24db0e3c65ca96152fc9e3e5ad9e Mon Sep 17 00:00:00 2001 From: Tomasz Kopacki Date: Thu, 11 Jun 2026 20:39:50 +0200 Subject: [PATCH 3/3] Add deployment option: Railway --- .../starlight/sidebar-topics/self-host.ts | 21 +++++++++++++------ .../content/docs/docs/self-host/docker.mdx | 1 - .../src/content/docs/docs/self-host/index.mdx | 4 ++++ .../content/docs/docs/self-host/railway.mdx | 13 ++++++++++++ .../docs/docs/self-host/scalability.mdx | 1 - .../content/docs/docs/self-host/terraform.mdx | 1 - 6 files changed, 32 insertions(+), 9 deletions(-) create mode 100644 docs/ensnode.io/src/content/docs/docs/self-host/railway.mdx diff --git a/docs/ensnode.io/config/integrations/starlight/sidebar-topics/self-host.ts b/docs/ensnode.io/config/integrations/starlight/sidebar-topics/self-host.ts index b164f78a5..9725ac35b 100644 --- a/docs/ensnode.io/config/integrations/starlight/sidebar-topics/self-host.ts +++ b/docs/ensnode.io/config/integrations/starlight/sidebar-topics/self-host.ts @@ -8,12 +8,21 @@ export const selfHostSidebarTopic = { link: "/docs/self-host", }, { - label: "Docker", - link: "/docs/self-host/docker", - }, - { - label: "Terraform", - link: "/docs/self-host/terraform", + label: "Deployment options", + items: [ + { + label: "Docker", + link: "/docs/self-host/docker", + }, + { + label: "Railway", + link: "/docs/self-host/railway", + }, + { + label: "Terraform", + link: "/docs/self-host/terraform", + }, + ], }, { label: "Scalability", diff --git a/docs/ensnode.io/src/content/docs/docs/self-host/docker.mdx b/docs/ensnode.io/src/content/docs/docs/self-host/docker.mdx index 4f8cb5be6..c8f50b46f 100644 --- a/docs/ensnode.io/src/content/docs/docs/self-host/docker.mdx +++ b/docs/ensnode.io/src/content/docs/docs/self-host/docker.mdx @@ -2,7 +2,6 @@ title: Deploying ENSNode with Docker sidebar: label: Docker - order: 1 --- import { LinkCard } from "@astrojs/starlight/components"; diff --git a/docs/ensnode.io/src/content/docs/docs/self-host/index.mdx b/docs/ensnode.io/src/content/docs/docs/self-host/index.mdx index bff0b2e0a..b38cebd89 100644 --- a/docs/ensnode.io/src/content/docs/docs/self-host/index.mdx +++ b/docs/ensnode.io/src/content/docs/docs/self-host/index.mdx @@ -1,6 +1,8 @@ --- title: Self-host ENSNode description: Decide whether to self-host ENSNode and understand the architecture. +sidebar: + label: Overview --- import { LinkCard } from "@astrojs/starlight/components"; @@ -40,4 +42,6 @@ Self-hosting today means standing up a fresh ENSNode instance from zero and wait + + diff --git a/docs/ensnode.io/src/content/docs/docs/self-host/railway.mdx b/docs/ensnode.io/src/content/docs/docs/self-host/railway.mdx new file mode 100644 index 000000000..a48b29b16 --- /dev/null +++ b/docs/ensnode.io/src/content/docs/docs/self-host/railway.mdx @@ -0,0 +1,13 @@ +--- +title: Deploying ENSNode to Railway +--- + +import { LinkCard } from "@astrojs/starlight/components"; + +This guide provides an example of deploying the full ENSNode Alpha instance suite to [Railway](https://railway.app/), a popular cloud hosting provider. It uses the [Railway Templates](https://docs.railway.app/templates) approach, which allows you to apply a pre-configured infrastructure template to your Railway project with a single click. + + diff --git a/docs/ensnode.io/src/content/docs/docs/self-host/scalability.mdx b/docs/ensnode.io/src/content/docs/docs/self-host/scalability.mdx index cd14090fa..6c6363d5d 100644 --- a/docs/ensnode.io/src/content/docs/docs/self-host/scalability.mdx +++ b/docs/ensnode.io/src/content/docs/docs/self-host/scalability.mdx @@ -3,7 +3,6 @@ title: ENSNode Scalability description: Understand how ENSNode's architecture enables horizontal scaling. sidebar: label: Scalability - order: 3 --- import { LinkCard } from "@astrojs/starlight/components"; diff --git a/docs/ensnode.io/src/content/docs/docs/self-host/terraform.mdx b/docs/ensnode.io/src/content/docs/docs/self-host/terraform.mdx index 8c1aef6b5..2aa04595e 100644 --- a/docs/ensnode.io/src/content/docs/docs/self-host/terraform.mdx +++ b/docs/ensnode.io/src/content/docs/docs/self-host/terraform.mdx @@ -2,7 +2,6 @@ title: Deploying ENSNode with Terraform sidebar: label: Terraform - order: 2 --- import { LinkCard } from "@astrojs/starlight/components";