- Allow users to query a shortcode and pay for their electricity meter bill
- Allow users to query their meter balance
- API : Akka
- DB : Firestore
- Mobile Money : Safaricom API
| apiVersion: apps/v1 | |
| kind: Deployment | |
| metadata: | |
| name: ussd-deployment | |
| labels: | |
| app: ussd | |
| spec: | |
| replicas: 1 | |
| selector: | |
| matchLabels: |
| apiVersion: v1 | |
| kind: Service | |
| metadata: | |
| name: bboxx-service | |
| spec: | |
| type: ClusterIP | |
| ports: | |
| - port: 80 | |
| targetPort: 7500 | |
| selector: |
| apiVersion: cert-manager.io/v1 | |
| kind: ClusterIssuer | |
| metadata: | |
| name: letsencrypt-prod | |
| spec: | |
| acme: | |
| # Email address used for ACME registration | |
| email: graham@decoded.africa | |
| server: https://acme-v02.api.letsencrypt.org/directory | |
| privateKeySecretRef: |
| apiVersion: networking.k8s.io/v1beta1 | |
| kind: Ingress | |
| metadata: | |
| name: bboxx-ingress | |
| annotations: | |
| kubernetes.io/ingress.class: nginx | |
| cert-manager.io/cluster-issuer: letsencrypt-prod | |
| spec: | |
| tls: | |
| - hosts: |
| apiVersion: networking.k8s.io/v1beta1 | |
| kind: Ingress | |
| metadata: | |
| name: bboxx-ingress | |
| annotations: | |
| kubernetes.io/ingress.class: nginx | |
| spec: | |
| rules: | |
| - host: "payments.bboxx.clients.decoded.africa" | |
| http: |
| apiVersion: autoscaling/v2beta2 | |
| kind: HorizontalPodAutoscaler | |
| metadata: | |
| name: bboxx-horizontal-pod-autoscaler | |
| spec: | |
| scaleTargetRef: | |
| apiVersion: apps/v1 | |
| kind: Deployment | |
| name: bboxx-deployment | |
| minReplicas: 1 |
| apiVersion: apps/v1 | |
| kind: Deployment | |
| metadata: | |
| name: bboxx-deployment | |
| labels: | |
| app: bboxx | |
| spec: | |
| replicas: 1 | |
| selector: | |
| matchLabels: |
| steps: | |
| # build the container image | |
| - name: "gcr.io/cloud-builders/docker" | |
| args: ["build", "-t", "gcr.io/vivo-ussd-november-26th-2019/bboxxapi", "."] | |
| # push container image | |
| - name: "gcr.io/cloud-builders/docker" | |
| args: ["push", "gcr.io/vivo-ussd-november-26th-2019/bboxxapi"] | |
| # deploy container image to GKE |
| server { | |
| listen 80 default_server; | |
| listen [::]:80 default_server; | |
| } | |
| server { | |
| server_name compute.janikibichi.com; # managed by Certbot | |
| # PROXY PASS REQUESTS FOR / http://0.0.0.0:7500 |