# Self-host ENSNode

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).

:::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.
:::

### Bootstrap from a snapshot (coming soon)

Self-hosting today means standing up a fresh ENSNode instance from zero and waiting on an initial backfill - including the RPC bill that comes with it. **[ENSDb snapshots and `ensdb-cli`](/docs/integrate/integration-options/ensdb-cli)** will make it cheap and easy to begin working with indexed ENS data.

<EnsDbSnapshotsTeaser />

[More about ENSDb Snapshots and ensdb-cli](/docs/integrate/integration-options/ensdb-cli)

### Massive scalability

[Learn about ENSNode scalability](/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.

[Deploy with Docker](/docs/self-host/docker)

### Deploying with Terraform

An example Terraform deployment reference is available, showing an example of deploying the full ENSNode suite on Render with AWS managed domain names.

[Deploy with Terraform](/docs/self-host/terraform)