Subscan Essentials Helm Chart

June 24, 2025 ยท View on GitHub

This Helm chart deploys the Subscan Essentials stack, including API, Worker, Daemon, and UI components. It supports multi-network (mainnet/testnet) configuration and is compatible with both Traefik and Ingress-Nginx.


Dependencies

Before installing this chart, you must have the following dependencies available in your Kubernetes cluster or accessible network environment:

  • Ingress Controller
  • Database and Cache Services
    • PostgreSQL: Required for backend data storage. Configure connection details using DB_DRIVER=postgres, POSTGRES_HOST, POSTGRES_PORT, POSTGRES_USER, POSTGRES_DB, and POSTGRES_PASSWORD in the appropriate environment variable section of your values.yaml (e.g., mainnetEnvVars, testnetEnvVars, or per-network envVars).
    • Redis: Required for caching. Configure connection details using REDIS_HOST, REDIS_PORT, REDIS_PASSWORD, and REDIS_DATABASE in the same environment variable sections.

Refer to the official documentation for installation instructions for each controller and database/cache system. Make sure all connection information is set in values.yaml under the appropriate environment variable sections before deploying this chart.


Table of Contents


Introduction

This chart provides a flexible way to deploy Subscan Essentials services. You can customize images, resources, environment variables, ingress domains, and more via values.yaml. Both mainnet and testnet networks are supported.


Installation

helm repo add subscan https://subscan-explorer.github.io/subscan-essentials-chart/
helm install subscan-essentials subscan/subscan-essentials-chart -f example/subscan-essentials/values.yaml

Upgrading

helm upgrade subscan-essentials subscan/subscan-essentials-chart -f example/subscan-essentials/values.yaml

Configuration

The following table lists the most important configurable parameters of the chart and their default values. For a full list, see values.yaml.

ParameterDescriptionDefault
commonLabelsCommon Kubernetes labels for all resourcesSee values.yaml
mainnetEnvVarsMainnet environment variablesSee values.yaml
testnetEnvVarsTestnet environment variablesSee values.yaml
networkTemplateDefault configuration template for each componentSee values.yaml
testnetTestnet network-specific configuration{}
mainnetMainnet network-specific configuration{}
images.backend.repositoryBackend image repositoryquay.io/subscan-explorer/subscan-essentials
images.backend.mainnetBackend image tag for mainnetsha-5775183-33
images.backend.testnetBackend image tag for testnetsha-5775183-33
images.ui.repositoryUI image repositoryquay.io/subscan-explorer/subscan-essentials-ui
images.ui.tagUI image tagsha-54e17a7-13
ingress.typeIngress type (traefik or ingress-nginx)traefik
ingress.mainDomainMain domain for ingresssubscan.io

Component Parameters (from networkTemplate)

  • daemon.enabled: Enable Daemon component
  • worker.replicaCount: Number of Worker replicas
  • api.autoscaling.enabled: Enable autoscaling for API
  • ui.enabled: Enable UI component
  • resources.requests/limits: Resource requests and limits
  • envVars: Custom environment variables
  • image.tag: Image tag override

Network Configuration

  • testnet.<network>.values: Per-testnet network configuration (env vars, worker replicas, ingress subdomains, etc.)
  • mainnet: Mainnet configuration (same structure as above)

Templates Overview

This chart includes the following Kubernetes resources:

  • deployment-api.yaml: API Deployment
  • deployment-worker.yaml: Worker Deployment
  • deployment-daemon.yaml: Daemon Deployment
  • deployment-ui.yaml: UI Deployment
  • service.yaml: Service definitions for all components
  • ingressroute-api.yaml, ingressroute-ui.yaml: Traefik IngressRoute resources
  • configmap-ui.yaml: UI ConfigMap
  • secret-envvars-backend.yaml: Backend environment variable Secret

Examples

1. Enable the assethub-westend testnet

testnet:
    assethub-westend: # It must be equal NETWORK_NODE
        values:
            envVars:
                CHAIN_WS_ENDPOINT: wss://api-asset-hub-westend.dwellir.com/xxxxxxxx
                NETWORK_NODE: assethub-westend # It must be equal to and unique from the network name.
                POSTGRES_DB: subscan_assethub_westend
                POSTGRES_HOST: subscan-postgres-testnet-a
                ETH_RPC: https://westend-asset-hub-eth-rpc.polkadot.io
                REDIS_HOST: subscan-redis-essentials-master.db.svc
            worker:
                replicaCount: 1
                image:
                    tag: "your-custom-tag"
            api:
                image:
                    tag: "your-custom-tag"
            daemon:
                image:
                    tag: "your-custom-tag"
            ui:
                image:
                    tag: "your-custom-tag"
            ingress:
                subdomains:
                    - assethub-westend-lite
                    - assethub-westend-essentials

2. Override image tags

images:
  backend:
    repository: "quay.io/subscan-explorer/subscan-essentials"
    mainnet: "sha-5775183-33"
    testnet: "sha-5775183-33"
  ui:
    repository: "quay.io/subscan-explorer/subscan-essentials-ui"
    tag: "sha-54e17a7-13"

Advanced Usage

  • Supports referencing secrets via envFrom
  • Custom resource limits and pod security context
  • Multi-network, multi-instance deployments

References