RapidPro is an open source platform for visually building interactive messaging applications. For more on refer to https://community.rapidpro.io/.
This repo provides a chart to bootstraps RapidPro on a Kubernetes cluster using the Helm package manager.
To get started with the helm chart, you'll need;
- 
A running cluster composed of; a. Kubernetes version 1.21+, b. Postgresql version 1.13+ and c. a container image registry either hosted locally or on the cloud. 
- 
This repository together with it's sub-repository. The repository has 2 directories; a. rapidprodirectory containing the helm chart, and anb. extrasdirectory containing,- 
Dockerfiles for building the required images. 
- 
A start-up script to help quickly stand up a cluster with all the necessary services running. 
 
- 
Linux:
- Install the following pre-requisites;
- Docker and Docker Compose
- GNU Make
- Helm
- jq, The JSON processor
- K3D
- Kubectl
- 
Clone the repository together with it's sub-repository. git clone --recurse-submodules https://github.com/ngendah/rapidpro-helm-chart 
- 
Change directory to the root of the project. cd rapidpro-helm-chart
- 
Stand up a cluster ./extras/cluster/run.sh install The cluster load balancer will be exposed on the localhost on port 8080. 
- 
Login to the Docker registry docker login -u $(cat ./extras/cluster/registry.conf.d/username) -p $(cat ./extras/cluster/registry.conf.d/passwd) $(cat ./extras/cluster/registry.conf.d/hostip) 
- 
Build and push images cd ./extras/images make -e REGISTRY_HOST=$(cat ../cluster/registry.conf.d/hostip) -j3 cd ../.. # change directory back to the project root 
- 
Export the path to kubeconfigexport KUBECONFIG=./extras/cluster/kubeconfigbecause relative paths break easily, I recommend using full file path; export KUBECONFIG=$(pwd)/extras/cluster/kubeconfig 
- 
Install the chart helm install rapidpro ./rapidpro/ \ --set global.databaseHost.postgres.host=$(cat extras/cluster/postgresql.conf.d/hostip) \ --set global.registry.host=$(cat ./extras/cluster/registry.conf.d/hostip)
- 
Wait for the services to be in a running state; watch kubectl get pods 
- 
If all services are up and running, on the browser goto the url localhost:8080/.
- 
RapidPro project. 
- 
Praekelt.org for the initial docker base images for mailroom and courier.