Deploying to Subsquid Cloud
To deploy DipDup indexer to Subsquid Cloud, you need to create two files, squid.yaml
project manifest for sqd
tool and a separate config configs/dipdup.squid-cloud.yaml
.
squid.yaml
manifestVersion: subsquid.io/v0.1
name: dipdup_indexer
version: 1
description: A blockchain indexer built with DipDup
build:
deploy:
env:
HASURA_GRAPHQL_ADMIN_SECRET: "${{ secrets.HASURA_SECRET }}"
HASURA_GRAPHQL_UNAUTHORIZED_ROLE: user
HASURA_GRAPHQL_STRINGIFY_NUMERIC_TYPES: "true"
# SENTRY_DSN: "${{ secrets.SENTRY_DSN }}"
# NODE_API_KEY: "${{ secrets.NODE_API_KEY }}"
#
# Only for free tier:
DIPDUP_LOW_MEMORY: "1"
addons:
postgres:
hasura:
processor:
cmd: ["dipdup", "-c", "dipdup.yaml", "-c", "configs/dipdup.squid-cloud.yaml", "run"]
init:
cmd: ["echo", "dipdup"]
configs/dipdup.squid-cloud.yaml
database:
kind: postgres
host: ${DB_HOST:-db}
port: ${DB_PORT}
user: ${DB_USER:-dipdup}
password: ${DB_PASS}
database: ${DB_NAME:-dipdup}
hasura:
url: http://${HASURA_HOST:-hasura}:8080
admin_secret: ${HASURA_GRAPHQL_ADMIN_SECRET}
allow_aggregations: ${HASURA_ALLOW_AGGREGATIONS:-true}
select_limit: ${HASURA_SELECT_LIMIT:-10000}
camel_case: ${HASURA_CAMEL_CASE:-true}
sentry:
dsn: ${SENTRY_DSN:-''}
environment: ${SENTRY_ENVIRONMENT:-''}
prometheus:
host: 0.0.0.0
port: 3000
api:
host: 0.0.0.0
Pay attention to paths and environment variables. Run dipdup init
to create default env file in deploy
directory.
Proceed to Deployment workflow guide in Subsquid docs skipping the "Edit the squid.yaml file" section.
Help and tips -> Join our Discord
Ideas or suggestions -> Issue Tracker
GraphQL IDE -> Open Playground