From 572d27c160ee193eece7141c9c23ccb95ea9c2a6 Mon Sep 17 00:00:00 2001 From: Jacob <princewith@gmail.com> Date: Wed, 18 Oct 2023 18:04:50 +0800 Subject: [PATCH] add: setup indexing service with separated db by Jacob --- docs/.vuepress/config.ts | 1 + .../indexers/install-indexer-locally.md | 2 + .../subquery_network/indexers/separated-db.md | 92 +++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 docs/subquery_network/indexers/separated-db.md diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts index c1682eadee9..4756d4b158b 100644 --- a/docs/.vuepress/config.ts +++ b/docs/.vuepress/config.ts @@ -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`, diff --git a/docs/subquery_network/indexers/install-indexer-locally.md b/docs/subquery_network/indexers/install-indexer-locally.md index e0733395def..9a7bf1964b9 100644 --- a/docs/subquery_network/indexers/install-indexer-locally.md +++ b/docs/subquery_network/indexers/install-indexer-locally.md @@ -83,4 +83,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. ::: diff --git a/docs/subquery_network/indexers/separated-db.md b/docs/subquery_network/indexers/separated-db.md new file mode 100644 index 00000000000..a02a8f96302 --- /dev/null +++ b/docs/subquery_network/indexers/separated-db.md @@ -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). +::: \ No newline at end of file