Overview
By the end of this guide, you will have:- A Kubernetes cluster running on your server
- The Chainstack Self-Hosted Control Panel deployed and accessible
- The ability to deploy blockchain nodes through the web interface
Prerequisites
Before starting, ensure you have:- A dedicated server or virtual machine meeting the system requirements
- Root or sudo access to the server
- A stable internet connection
End-to-end example
This example uses a dedicated server from Contabo running Ubuntu 22.04, but the steps apply to any compatible server.1
Install required tools
Connect to your server via SSH and install the required dependencies:
2
Install Kubernetes (k3s)
k3s is a lightweight Kubernetes distribution that’s easy to install and suitable for single-server deployments:You should see output indicating the cluster is running and your node is in Ready state.
3
Configure storage (optional but recommended)
If you have multiple disks available for blockchain node data, set up LVM and TopoLVM for dynamic storage provisioning:If using TopoLVM, set it as the default storage class:
Device paths vary by provider. The paths
/dev/sdb, /dev/sdc, /dev/sdd are examples from Contabo. On DigitalOcean, volumes appear under /dev/disk/by-id/. On AWS, they may be /dev/nvme1n1, /dev/nvme2n1, etc. Always verify your actual device paths with lsblk before creating physical volumes.If you’re using the default k3s local-path storage class (single disk), you can skip this step.
4
Get the installer
Get the installer by joining the beta.
5
Run the installation
Run the installer with your desired version and storage class:The installer will:
- Check prerequisites (kubectl, helm, yq, openssl, cluster access)
- Generate secure passwords for all services
- Save the credentials to
~/.config/cp-suite/values/ - Deploy the full stack (PostgreSQL, Temporal, Keycloak, Control Panel services)
- Prompt for the backend API URL. Use the default (
http://cp-cp-deployments-api) for in-cluster access, or specify an external URL (e.g.,http://<SERVER-PUBLIC-IP>:8081) if accessing from outside the cluster.
6
Verify the installation
Check that all pods are running:All pods should show
Running or Completed status:7
Expose the web interface
Expose the Control Panel for external access. If you specified an external backend URL during installation, expose both the UI and the deployments API:For testing, use port forwarding:
8
Access the Control Panel
Open your browser and navigate to:
- LoadBalancer:
http://<EXTERNAL-IP> - Port forward:
http://<SERVER-IP>:8080
9
Find your login credentials
Your initial login credentials were generated during installation and saved to the values file:Look for these values:
- Username:
admin(default) - Password: Value of
CP_AUTH_BOOTSTRAP_PASSWORD
Next steps
Congratulations! You now have Chainstack Self-Hosted running. Continue with:- First login — First login and initial configuration
- Deploying nodes — Deploy your first blockchain node
- Troubleshooting — If you encounter any issues
Useful kubectl commands
Set the default namespace to avoid typing-n control-panel every time: