> For the complete documentation index, see [llms.txt](https://rc.sunbird.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rc.sunbird.org/use/getting-started/developer-setup.md).

# Pre-requisites

Install these before starting. What you need depends on the [path you choose](/use/getting-started.md). Each section has a command to confirm the install worked.

| Tool              | Version    | Needed for                                                    | Check with               |
| ----------------- | ---------- | ------------------------------------------------------------- | ------------------------ |
| Terminal emulator | —          | All paths                                                     | `echo Hi`                |
| Git               | any recent | All paths                                                     | `git --version`          |
| Docker            | any recent | All paths                                                     | `docker -v`              |
| Docker Compose    | 2.x        | All paths                                                     | `docker compose version` |
| Java              | 11         | Building the Registry from source                             | `java -version`          |
| NodeJS            | 20.x       | Registry CLI, or running the Credentials services from source | `node -v`                |

{% hint style="info" %}
If you only run Sunbird RC with Docker Compose or Helm, you don't need Java or NodeJS.
{% endhint %}

## Terminal emulator

Linux and macOS have a terminal installed already. For Windows, it's recommended you use `git-bash`, which you can install from [here](https://gitforwindows.org/).

Type `echo Hi` in the terminal once it's installed. If installed correctly, you should see `Hi` appear when you hit enter.

## Git

Installation instructions for Git can be found [here](https://git-scm.com/downloads).

```bash
$ git --version
```

## Docker

Installation instructions for Docker can be found [here](https://docs.docker.com/get-docker/).

```bash
$ docker -v
```

## Docker Compose

Docker Compose v2 ships with current versions of Docker. Installation instructions can be found [here](https://docs.docker.com/compose/install/).

```bash
$ docker compose version
```

{% hint style="info" %}
Some pages in these docs use the older `docker-compose` command. With Compose v2, use `docker compose` instead.
{% endhint %}

## Java

Only needed to build the Registry from source. Installation instructions for Java 11 can be found [here](https://adoptium.net/).

```bash
$ java -version
```

## NodeJS

Only needed for the Registry CLI, or to run the Credentials services from source. Installation instructions for NodeJS can be found [here](https://nodejs.org/).

```bash
$ node -v
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://rc.sunbird.org/use/getting-started/developer-setup.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
