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