documentation/self-host/helm-chart-deployment/digital-ocean.mdx
DigitalOcean is a cloud provider that offers scalable and easy-to-use infrastructure for developers. You can create and manage Kubernetes clusters, storage, and networking resources all through their platform.
With DigitalOcean's managed Kubernetes service and Helm charts, deploying Hoppscotch on your infrastructure becomes a plain sailing process.
Before you begin, make sure you have the following tools and services set up:
To deploy Hoppscotch on DigitalOcean, you will need a DigitalOcean account. If you don't have an account already, sign up for one here.
You need an active Kubernetes cluster on DigitalOcean. If you don't have one already, you can easily create a cluster through the **DigitalOcean Dashboard**.
Ensure that your user account has administrative access to manage the Kubernetes cluster. This is important for performing actions like deploying applications, managing configurations, and troubleshooting issues.
You'll need a few essential command-line tools installed and configured on your local machine to interact with your Kubernetes cluster and deploy applications.
kubectl CLI`kubectl` is the Kubernetes command-line tool that allows you to interact with your Kubernetes cluster. If you don't have `kubectl` installed, follow the instructions in the [official Kubernetes documentation](https://kubernetes.io/docs/tasks/tools/) to get started.
version 3.xHelm is a package manager for Kubernetes, which simplifies the deployment and management of applications like Hoppscotch. Helm uses **charts**, which are pre-configured application definitions, to deploy applications to Kubernetes clusters. To install Helm, follow the [Helm installation guide](https://helm.sh/docs/intro/install/).
Follow the steps below to deploy Hoppscotch on your DigitalOcean Kubernetes cluster:
<Steps> <Step title="Digital Ocean Cluster Connection"> To authenticate your cluster, you'll need the kubeconfig file from DigitalOcean.1. Go to your **DigitalOcean Dashboard**.
2. Navigate to **Kubernetes** > **Clusters**.
3. Select the Kubernetes cluster that you want to deploy Hoppscotch on.
4. Click **Download Config File**. The file will be named `[cluster-name]-kubeconfig.yaml` and will typically be saved in your `Downloads` folder.
```bash
# Set KUBECONFIG environment variable to use the downloaded config file
export KUBECONFIG=~/Downloads/[cluster-name]-kubeconfig.yaml
# Verify the connection by listing the nodes in the cluster
kubectl get nodes
```
<Tip> To avoid reconfiguring the `KUBECONFIG` variable every time you interact with the cluster, move the kubeconfig file to a more permanent location (e.g., `~/.kube/config`) and add the `export` command to your shell's configuration file (`.bashrc`, `.zshrc`, etc.) for persistent access. </Tip>
To install the NGINX Ingress Controller on your Kubernetes cluster, execute:
```bash
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/do/deploy.yaml
```
This will create the necessary resources (e.g., deployments, services) to enable ingress routing for your cluster.
```yaml
replicaCount: 1
image:
repository: hoppscotch/hoppscotch
tag: latest
pullPolicy: IfNotPresent
urls:
base: "http://frontend.yourdomain.com"
shortcode: "http://frontend.yourdomain.com"
admin: "http://admin.yourdomain.com"
backend:
gql: "http://backend.yourdomain.com/graphql"
ws: "ws://backend.yourdomain.com/graphql"
api: "http://backend.yourdomain.com/v1"
redirect: "http://frontend.yourdomain.com"
whitelistedOrigins: "http://backend.yourdomain.com,http://frontend.yourdomain.com,http://admin.yourdomain.com"
service:
type: LoadBalancer
port: 3000
ingress:
enabled: true
mainHost: frontend.yourdomain.com
adminHost: admin.yourdomain.com
backendHost: backend.yourdomain.com
# If using Hoppscotch Enterprise, configure your license key
enterprise:
licenseKey: "1e8xxxxx-fexx-49xx-8cxx-d57f54fxxxxx"
```
<Note> If you are deploying Hoppscotch Enterprise edition, you'll need a valid license key. To obtain one, visit the [Hoppscotch Enterprise Store](https://enterprise.hoppscotch.com/) and make a purchase. After completing the purchase, you'll receive an email with the license key. Alternatively, you can find the key in your Hoppscotch Enterprise Dashboard. For more details on managing your license key, refer to this [guide](/guides/articles/manage-an-enterprise-license-key). </Note>
```bash
# Clone the repository
git clone https://github.com/hoppscotch/helm-charts.git
# Go to helm charts directory
cd helm-charts
# Install the chart for Community Edition
helm install community-hoppscotch ./charts/shc
# Install the chart for Enterprise Edition
helm install enterprise-hoppscotch ./charts/she
```
After deploying the application, verify that everything is running smoothly by checking the status of your Hoppscotch pods and inspecting the service details, including the external IP or LoadBalancer that you'll use to access the application.
# List all the pods running in the cluster
kubectl get pods
# View services to ensure that Hoppscotch is exposed properly
kubectl get services
After successfully deploying Hoppscotch and verifying the installation, the next step is to set up the Admin Dashboard and then access the Hoppscotch application for API development and testing.
https://admin.yourdomain.com.<Info> The first user to log in will automatically be granted administrator privileges. </Info>
With the administrator account set up, you can now start using the Hoppscotch app:
https://frontend.yourdomain.com.Below are some commands to help you with ongoing management tasks for your deployment.
To apply changes to the configuration (for example, modifying the values.yaml file), use the following command to upgrade the deployment:
# Upgrade the chart for Community Edition
helm upgrade community-hoppscotch ./charts/shc -f ./charts/values.yaml
# Upgrade the chart for Enterprise Edition
helm upgrade enterprise-hoppscotch ./charts/she -f ./charts/values.yaml
To uninstall Hoppscotch and clean up the resources, you can remove both community and enterprise editions:
# Uninstall the Community Edition
helm uninstall community-hoppscotch
# Uninstall the Enterprise Edition
helm uninstall enterprise-hoppscotch
If you encounter issues during or after the installation, the following commands can help diagnose the problem:
| Issue | Command to Check |
|---|---|
| Pod Issues | kubectl logs [POD_NAME] |
| Service Status | kubectl describe service community-hoppscotch |
kubectl describe service enterprise-hoppscotch | |
| Configuration Issues | kubectl describe configmap community-hoppscotch |
kubectl describe configmap enterprise-hoppscotch |