# Technical Requirements

## Architecture Diagram

![](https://976594346-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi9TAMApVKuSwtZEklF%2Fuploads%2FcwQufzNnWHhXiORYyweE%2FScreenshot%202022-03-15%20at%208.19.08%20AM.png?alt=media\&token=6b0350da-b2e7-49d1-8548-2d9d1746ca2d)

## Requirements for Service / API

| Software       | Recommended | Minimum Version |
| -------------- | ----------- | --------------- |
| Java           | 1.8         | 1.8             |
| Linux / Docker | any         | any             |
| Postgre sql    | v12         | v8              |
| Redis          | 6           | 4               |

## Other tooling used

Keycloak for Authentication

Elastic Search for Discovery

## Stock Frontend Interface

Angular 8

## Deployment

On local machines, Docker is recommended.

For development, a single VM with docker will work.

The steps to setup the development environment is available here.

{% content-ref url="../developer-documentation/installation-guide" %}
[installation-guide](https://docs.sunbirdrc.dev/~/changes/ZV4lFZMKighmbjr9sJml/developer-documentation/installation-guide)
{% endcontent-ref %}

For production, Kubernetes is recommended.

## Typical Requirement for production

* 1 node small (backed by CDN) 2 core 4 gb minimum (UI)
* 3 node kubernetes cluster with 4 core 8 gb RAM 200 GB storage
* 2 node for postgresql 4 core 8gb RAM 500 GB storage
* 1 node for elastic-search 4 core 8gb RAM 200 GB storage (if needed)
* Loadbalancer based on cloud provider
