Prerequisites
This page explains how to prepare your computer and start a local Kubernetes cluster. When the cluster is running, continue with the Quick Start.
Hardware requirements
RAM
16 GB
32 GB
CPUs
8
8 or more
Free disk space
30 GB
50 GB
The Kubernetes cluster needs at least 8 CPUs and 12 GB of memory. With less, services such as Elasticsearch may fail to start. On a 16 GB computer this leaves only 4 GB for your operating system, Docker and browser, so close other applications while OpenCRVS runs.
OpenCRVS itself takes about 13 GB of disk space: Docker images, Helm charts and data. The tools on this page, including the Kubernetes engine, take about 8 GB more. The recommended 50 GB leaves room for image rebuilds and test data.
Operating system
Ubuntu: 24.04+ (LTS).
macOS: 15+
Windows: 10+, use WSL 2 with an Ubuntu distribution, and run the commands on this page in the WSL terminal, except where a step says to use PowerShell. The OpenCRVS Tilt setup runs shell scripts that need a Linux shell.
You need admin rights on your computer.
Software requirements
Used by Tilt to download the OpenCRVS Core Helm charts.
Builds the country configuration image locally.
Kubernetes command-line tool.
Kubernetes
Local Kubernetes cluster. See Start a local Kubernetes cluster below.
Used by Tilt to render and deploy the OpenCRVS Helm charts.
Manages the local development environment.
Node.js 22 (optional)
Runs npm create @opencrvs/countryconfig, which creates your country configuration. Without Node.js, you can run the same command with Docker, see Quick Start. If you install Node.js, we recommend nvm.
OpenCRVS is a progressive web application, and PWAs work best in Chrome.
Start a local Kubernetes cluster
Choose one Kubernetes engine:
Ubuntu
Minikube
macOS
Docker Desktop or OrbStack
Windows
Docker Desktop
OpenCRVS is served at http://opencrvs.localhost on port 80 and the Tilt UI at http://localhost:10350, so ports 80 and 10350 on your computer must be free. You don't need to set up DNS: Google Chrome resolves opencrvs.localhost and its subdomains to your computer by itself. If they do not resolve, see Troubleshooting. Tilt detects your engine from the current kubectl context: on Minikube it exposes Traefik (the OpenCRVS ingress) as a NodePort on port 30080, on other engines as a LoadBalancer service on port 80.
Install Minikube. Make sure you can run Docker as a non-root user.
Start Minikube with enough resources.
--ports=80:30080makes Traefik's NodePort available on port 80 of your computer:If Minikube was already running with other values, delete it first with
minikube delete, then start it again.Check that
kubectlpoints to Minikube:Expected output:
minikube
Install Docker Desktop.
Give Docker Desktop enough resources:
macOS: in Settings > Resources > Advanced, set CPU limit to at least 8 and Memory limit to at least 12 GB.
Windows: Docker Desktop uses the WSL 2 backend, and WSL controls the resources. Set
memory=12GBandprocessors=8in the[wsl2]section of%UserProfile%\.wslconfig, then runwsl --shutdownin PowerShell. In Settings > Resources > WSL integration, enable integration with your Ubuntu distribution.
In the Kubernetes view of the Docker Desktop Dashboard, select Create cluster, choose Kubeadm, then select Create. Kubeadm lets the cluster use the images that Tilt builds locally; kind does not. In older Docker Desktop versions, go to Settings > Kubernetes, select Enable Kubernetes, then Apply & restart. Wait until Kubernetes shows as running.
Switch
kubectlto Docker Desktop and check it. On Windows, if WSL reports that thedocker-desktopcontext does not exist, first copy the Windows kubeconfig into WSL:mkdir -p ~/.kube && cp /mnt/c/Users/<your-windows-user>/.kube/config ~/.kube/config.Expected output:
docker-desktop
Install OrbStack.
In OrbStack Settings > System, set the memory limit to at least 12 GB (the default is at most 8 GB), and make sure the CPU limit allows at least 8 CPUs.
In OrbStack Settings > Kubernetes, enable Kubernetes.
Switch
kubectlto OrbStack and check it:Expected output:
orbstack
Check your setup
Run these commands. Each one must print a version, and kubectl get nodes must show your node as Ready:
Your local Kubernetes environment is ready. Continue with the Quick Start to create your country configuration and start OpenCRVS with tilt up.
Stop or remove the cluster
Stop Tilt first, see Stop Tilt. Then, to free up resources, stop or remove the cluster:
Minikube:
minikube stopstops the cluster;minikube deleteremoves it.Docker Desktop: in the Kubernetes view, select Stop to stop and remove the cluster, or use Reset cluster to remove all its resources. In older versions, clear Enable Kubernetes in Settings > Kubernetes.
OrbStack: in Settings > Kubernetes, disable Kubernetes.
Last updated