Prerequisites
Before installation, make sure you have a running Kubernetes cluster with kubectl, Helm, yq, and openssl installed. See Environment setup for instructions and a verification checklist.Install
Run the installer
Find your storage class name:Common storage classes:For example:To get the installer, see Download Chainstack Self-Hosted.
local-path— default k3s storage class (single-disk setups)topolvm-provisioner— TopoLVM (multi-disk setups)- Cloud providers use their own defaults (
gp2/gp3on AWS,standardon GCP,managed-premiumon Azure)
Specify the URL for the backend
The installer will ask for the backend API URL. The Control Panel UI uses this URL to reach the deployments API.
- Single server, accessing the UI from a browser — enter your server’s public IP:
http://<SERVER-PUBLIC-IP>. You will need to expose the UI service on port 80 later (see Post-installation). - Default — press Enter to keep
http://cp-cp-deployments-api. This uses in-cluster DNS and only works if the UI is also accessed from inside the cluster.
Specify the workload namespace
The installer will ask for the Kubernetes namespace where blockchain node pods will run:Press Enter to accept the default
control-panel-deployments. Change it only if you need a custom namespace layout.Choose monitoring configuration
The installer will prompt you to configure the monitoring stack:
- Option 1 — installs the full monitoring stack (Grafana, VictoriaMetrics, exporters). Use this for a clean cluster.
- Option 2 — reuses an existing VictoriaMetrics operator already deployed on the cluster.
- Option 3 — skips monitoring entirely.
Credentials storage
Generated credentials are saved to:Post-installation
Monitoring stack
v1.4.6+ includes an optional integrated observability stack (Grafana, VictoriaMetrics, and the Chainstack blockchain-node-exporter). During installation, you are prompted to install it, reuse an existing VictoriaMetrics operator, or skip it. See Monitoring for access instructions and available dashboards.Verify deployment status
| Flag | Description |
|---|---|
-w, --watch | Watch status with continuous updates |
--wide | Show full resource names without truncation |
--no-pods | Hide pod details for a cleaner view |
--unhealthy-only | Show only unhealthy or degraded components |
-o json / -o yaml | Machine-readable output for automation |
--log-file <path> | Write the status output to a file |
Expose the UI service
Option 1: LoadBalancer (recommended for production)
Option 2: NodePort
Option 3: Ingress
Create an Ingress resource:Option 4: Port forward (testing only)
Next steps
- First login — First login and configuration
- Deploying nodes — Deploy your first blockchain node
- Advanced installation — Customize your deployment