Deploying to Subsquid Cloud

Warning
This page may and likely is out of date. Please refer to the Subsquid Cloud documentation for the most accurate information.

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", "squid-cloud", "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 the following command to create envfile with default values:

dipdup -C squid-cloud config env -o envfile.env

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