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.
Before installing this chart, you must have the following dependencies available in your Kubernetes cluster or accessible network environment:
- Ingress Controller
- If
ingress.type=ingress-nginx, install ingress-nginx. - If
ingress.type=traefik, install Traefik.
- If
- 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, andPOSTGRES_PASSWORDin the appropriate environment variable section of yourvalues.yaml(e.g.,mainnetEnvVars,testnetEnvVars, or per-networkenvVars). - Redis: Required for caching. Configure connection details using
REDIS_HOST,REDIS_PORT,REDIS_PASSWORD, andREDIS_DATABASEin the same environment variable sections.
- PostgreSQL: Required for backend data storage. Configure connection details using
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.
- Introduction
- Installation
- Upgrading
- Configuration
- Templates Overview
- Examples
- Advanced Usage
- References
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.
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.yamlhelm upgrade subscan-essentials subscan/subscan-essentials-chart -f example/subscan-essentials/values.yamlThe following table lists the most important configurable parameters of the chart and their default values. For a full list, see values.yaml.
| Parameter | Description | Default |
|---|---|---|
commonLabels |
Common Kubernetes labels for all resources | See values.yaml |
mainnetEnvVars |
Mainnet environment variables | See values.yaml |
testnetEnvVars |
Testnet environment variables | See values.yaml |
networkTemplate |
Default configuration template for each component | See values.yaml |
testnet |
Testnet network-specific configuration | {} |
mainnet |
Mainnet network-specific configuration | {} |
images.backend.repository |
Backend image repository | quay.io/subscan-explorer/subscan-essentials |
images.backend.mainnet |
Backend image tag for mainnet | sha-5775183-33 |
images.backend.testnet |
Backend image tag for testnet | sha-5775183-33 |
images.ui.repository |
UI image repository | quay.io/subscan-explorer/subscan-essentials-ui |
images.ui.tag |
UI image tag | sha-54e17a7-13 |
ingress.type |
Ingress type (traefik or ingress-nginx) |
traefik |
ingress.mainDomain |
Main domain for ingress | subscan.io |
daemon.enabled: Enable Daemon componentworker.replicaCount: Number of Worker replicasapi.autoscaling.enabled: Enable autoscaling for APIui.enabled: Enable UI componentresources.requests/limits: Resource requests and limitsenvVars: Custom environment variablesimage.tag: Image tag override
testnet.<network>.values: Per-testnet network configuration (env vars, worker replicas, ingress subdomains, etc.)mainnet: Mainnet configuration (same structure as above)
This chart includes the following Kubernetes resources:
deployment-api.yaml: API Deploymentdeployment-worker.yaml: Worker Deploymentdeployment-daemon.yaml: Daemon Deploymentdeployment-ui.yaml: UI Deploymentservice.yaml: Service definitions for all componentsingressroute-api.yaml,ingressroute-ui.yaml: Traefik IngressRoute resourcesconfigmap-ui.yaml: UI ConfigMapsecret-envvars-backend.yaml: Backend environment variable Secret
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
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"- Supports referencing secrets via
envFrom - Custom resource limits and pod security context
- Multi-network, multi-instance deployments