For the complete documentation index, see llms.txt. This page is also available as Markdown.

Setting up indexd

Run your own Sia indexer with indexd

indexd is the Sia Foundation's indexer daemon. It is the component that manages contracts with storage providers, tracks where your objects live on the network, monitors their health, and repairs data in the background. Applications connect to an indexer (through a Sia Storage SDK) to store and retrieve data without managing hosts or contracts themselves.

Who should self-host?

Most people, including developers building applications, should not run their own indexer. Point your application at Sia Storage during development instead. An application connects to a hosted indexer exactly the same way it connects to one you run yourself, so there is no need to operate one in order to build or test against it.

The only reason to run your own indexd is to retain full control over the infrastructure your data and contracts depend on, rather than relying on a hosted service. This is a decision an individual user makes for their own data, not one an application should make on their behalf.

Before you start

indexd is a server daemon, not a desktop application:

  • There is no desktop app. indexd is run from the command line or in a container.

  • PostgreSQL 18 is required. indexd stores its index in a PostgreSQL database. The Docker guide runs PostgreSQL for you in a second container, so you don't have to install or manage a database separately.

Install

  • Docker — runs indexd and PostgreSQL together with Docker Compose. This is the recommended way to self-host.

You can also run the indexd binary directly against your own PostgreSQL server. The binaries are available on the official website, and configuration options are documented in the indexd repository.

Last updated

Was this helpful?