Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
4 changes: 2 additions & 2 deletions docs/ensnode.io/src/content/docs/docs/hosted-instances.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
3 changes: 0 additions & 3 deletions docs/ensnode.io/src/content/docs/docs/self-host/docker.mdx
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
---
title: Deploying ENSNode with Docker
sidebar:
label: Docker
order: 1
---

import { LinkCard } from "@astrojs/starlight/components";
Expand Down
35 changes: 12 additions & 23 deletions docs/ensnode.io/src/content/docs/docs/self-host/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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).
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:

:::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 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.
Comment thread
tk-o marked this conversation as resolved.
- **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 strategies for ensuring high availability and uptime guarantees.

### Bootstrap from a snapshot (coming soon)

Expand All @@ -43,14 +36,10 @@ 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.

<LinkCard title="Deploy with Docker" href="/docs/self-host/docker" />
### Deployment options

### Deploying with Terraform
<LinkCard title="Deploy with Docker" description="The Docker deployment option provides the easiest way to run the full ENSNode suite of services both locally and in the cloud." href="/docs/self-host/docker" />

An example Terraform deployment reference is available, showing an example of deploying the full ENSNode suite on Render with AWS managed domain names.
<LinkCard title="Deploy to Railway" description="A guide for deploying the ENSNode Alpha instance on Railway using the Railway Templates approach." href="/docs/self-host/railway" />

<LinkCard title="Deploy with Terraform" href="/docs/self-host/terraform" />
<LinkCard title="Deploy with Terraform" description="An example Terraform deployment reference is available, showing an example of deploying the full ENSNode suite on Render with AWS managed domain names." href="/docs/self-host/terraform" />
13 changes: 13 additions & 0 deletions docs/ensnode.io/src/content/docs/docs/self-host/railway.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The railway.mdx file is missing required sidebar frontmatter, causing the Astro Starlight sidebar-topics plugin to fail with "Failed to find the topic for the docs/self-host/railway page"

Fix on Vercel

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.

<LinkCard
title="Deploy your own ENSNode Alpha instance with Railway"
description="Browse the full Railway Template definition including service definitions and configuration."
href="https://railway.com/deploy/ensnode-alpha"
/>
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
---
title: ENSNode Scalability
description: Understand how ENSNode's architecture enables horizontal scaling.
sidebar:
label: Scalability
order: 3
---

import { LinkCard } from "@astrojs/starlight/components";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
---
title: Deploying ENSNode with Terraform
sidebar:
label: Terraform
order: 2
---

import { LinkCard } from "@astrojs/starlight/components";
Expand Down
Loading