This guide walks through a standard installation with auto-generated passwords and default settings. For custom deployments — external databases, adjusted resource limits, or manual values — see Advanced installation.Documentation Index
Fetch the complete documentation index at: https://chainstack-mintlify-flesh-empty-pages.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
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)
By default, the installer uses the latest version. To pin a specific version, add
-v vX.Y.Z — see Release notes for available versions.Specify the URL for the backend
The installer will ask for the backend API URL. This is the URL the Control Panel UI uses to reach the deployments API. The browser must be able to resolve and reach this URL — an in-cluster hostname will not work for browser access.
- Single server, browser access (recommended) — enter
http://<SERVER-IP>:8081. You will expose the deployments API on port 8081 in Post-installation. Use port 80 (or another free port) instead of 8081 if it suits your environment, but match it during exposure. - In-cluster only (rare) — press Enter to keep
http://cp-cp-deployments-api. This is reachable only from inside the cluster, so the UI will fail to log in from a browser outside.
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
The Control Panel 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 and deployments API
For browser access to work, you need to expose two services to the network: the UI (cp-cp-ui) and the deployments API (cp-cp-deployments-api). The UI page is served by the first; the JavaScript in the page calls the URL you set in the backend URL step — by default, that’s http://<SERVER-IP>:8081, which routes to the deployments API.
Option 1: LoadBalancer (recommended for production)
Option 2: NodePort
Option 3: Ingress
Create an Ingress that exposes the UI on port 80. The deployments API is exposed separately on port 8081 via a LoadBalancer or port-forward (see Options 1 or 4):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