Skip to content

Commit

Permalink
add: setup indexing service with separated db (#430)
Browse files Browse the repository at this point in the history
* add: setup indexing service with separated db

by Jacob

* fix: docker link 404

by Jacob

* fix: docker link 404

by Jacob
  • Loading branch information
icezohu authored Oct 19, 2023
1 parent 1b8748c commit 674813e
Show file tree
Hide file tree
Showing 5 changed files with 99 additions and 4 deletions.
1 change: 1 addition & 0 deletions docs/.vuepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -717,6 +717,7 @@ function getSidebar(locale: string): SidebarOptions {
`${locale}/subquery_network/indexers/become-an-indexer.md`,
`${locale}/subquery_network/indexers/install-indexer-locally.md`,
`${locale}/subquery_network/indexers/install-indexer-linux.md`,
`${locale}/subquery_network/indexers/separated-db.md`,
`${locale}/subquery_network/indexers/indexer-security-guide.md`,
`${locale}/subquery_network/indexers/index-project.md`,
`${locale}/subquery_network/indexers/dictionary-restore.md`,
Expand Down
2 changes: 1 addition & 1 deletion docs/subquery_network/indexers/become-an-indexer.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ Login to your VM and create a folder, such as `kepler-indexer`
2. Run the follow cmd to download the latest `docker-compose.yml`:

```sh
curl https://raw.githubusercontent.com/subquery/indexer-services/kepler/docker-compose.yml -o docker-compose.yml
curl https://raw.githubusercontent.com/subquery/network-indexer-services/main/deploy/docker-compose.yml -o docker-compose.yml
```

This will overwrite the existing docker-compose.yml file. Always use the latest versions (use pre-release versions at your own risk).
Expand Down
2 changes: 1 addition & 1 deletion docs/subquery_network/indexers/install-indexer-linux.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ Run the following command:

```bash
mkdir subquery-indexer && cd subquery-indexer
curl https://raw.githubusercontent.com/subquery/indexer-services/kepler/docker-compose.yml -o docker-compose.yml
curl https://raw.githubusercontent.com/subquery/network-indexer-services/main/deploy/docker-compose.yml -o docker-compose.yml
```

::: warning Important
Expand Down
6 changes: 4 additions & 2 deletions docs/subquery_network/indexers/install-indexer-locally.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ Now, let's explore how to run the Indexing Service Locally step-by-step.

```bash
mkdir subquery-indexer && cd subquery-indexer
curl https://raw.githubusercontent.com/subquery/indexer-services/kepler/docker-compose.yml -o docker-compose.yml
curl https://raw.githubusercontent.com/subquery/network-indexer-services/main/deploy/docker-compose.yml -o docker-compose.yml

# extra steps to use local ipfs node
mkdir ipfs
curl https://raw.githubusercontent.com/subquery/indexer-services/kepler/ipfs/ipfs.sh -o ipfs/ipfs.sh
curl https://raw.githubusercontent.com/subquery/network-indexer-services/main/deploy/ipfs/ipfs.sh -o ipfs/ipfs.sh
chmod +x ipfs/ipfs.sh
```

Expand Down Expand Up @@ -79,4 +79,6 @@ We highly recommend setting up SSL on your new server. [Follow the guide here](.

:::tip Tip
Having trouble running a command or setting up the service? Got stuck in the process? Find your solutions [here](../indexers/troubleshooting-indexers.md).

If you want to use a separated database for the Indexing service, you can follow [this guide](./separated-db.md) to set up the database and install the Indexing service.
:::
92 changes: 92 additions & 0 deletions docs/subquery_network/indexers/separated-db.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# Install Indexing Service With Separated Database

If you want to use a separated database for the Indexing service, you can follow this guide to set up the database and install the Indexing service.

## Initial Preparation

- [Docker](https://docs.docker.com/get-docker/) - It contains all the required images to run the entire Web3 application.

## Setup Database

### Install PostgreSQL With Docker Compose

- Create a `docker-compose.yml` file with the following content:

```bash
version: '3'

services:
postgres:
image: postgres:16-alpine
container_name: indexer_db
restart: always
ports:
- 5432:5432
volumes:
- .data/postgres:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: <replace with you own password>
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U postgres']
interval: 5s
timeout: 5s
retries: 5
```

- Run the following command to start the PostgreSQL service:

```bash
docker compose up -d
```

### Datebase Safety

Install and setup your firewall to only allow connections from the IP address of the machine running the Indexing service.

```bash
sudo ufw allow from <IP address of the machine running the Indexing service> to any port 5432
```

## Install Indexer Service

### Step 1 - Download the Indexer Service file

- Donwloand indexing services `docker-compose.yml` file to you machine, which consists of all the images to build and start the various applications.

```bash
mkdir subquery-indexer && cd subquery-indexer
curl https://raw.githubusercontent.com/subquery/network-indexer-services/main/deploy/docker-compose.yml -o docker-compose.yml

# extra steps to use local ipfs node
mkdir ipfs
curl https://raw.githubusercontent.com/subquery/network-indexer-services/main/deploy/ipfs/ipfs.sh -o ipfs/ipfs.sh
chmod +x ipfs/ipfs.sh
```

### Step 2 - Update the Indexer Service file with Separated Database Information

- Update the `docker-compose.yml` file with the database information.

```bash
# 1. remove or commment the postgres section
# postgres:
# image: postgres:16-alpine
# container_name: indexer_db
# ...

# 2. update the following fields in coordinator section
- --postgres-host=<replace with your database host>
- --postgres-password=<replace with your database password>
```

### Step 3 - Start the Indexing Service

Run the following command to start the Indexing service:

```bash
docker compose up -d
```

:::tip Tip
For extra information about starting the Indexing service, please visit from [this section](./install-indexer-locally.md#step-2-start-the-indexing-service).
:::

0 comments on commit 674813e

Please sign in to comment.