# Software requirements

## Operating systems

For the best experience when running Overleaf, we highly recommend using a **Debian-based** operating system, such as **Ubuntu**. This choice aligns with the software's development environment and is the preferred option among the majority of Overleaf users.

{% hint style="danger" %}
When using Server Pro with Sandboxed Compiles, it's **important** to note that the application requires root access to the Docker socket.
{% endhint %}

## Dependencies

Both Server CE and Server Pro currently support the following versions of dependencies:

* **Docker 25.0 and 29**
* **MongoDB 7.0 and 8.0**
* **Redis 6.2 and 7.5**

{% hint style="info" %}
You can track End-of-Life (EOL) dates for the above dependencies, and other popular products using the endoflife.date service here: <https://endoflife.date/>
{% endhint %}

{% hint style="info" %}
`docker compose` is generally installed with Docker via the `docker-compose-plugin` package.
{% endhint %}

MongoDB and Redis are automatically pulled by `docker compose` when running Server CE or Server Pro, unless configured to use a different installation.

The Toolkit depends on the following programs:

* bash
* Docker

`docker compose` is required and is generally installed with Docker.

We recommend that you install the most recent version of Docker that is available for your operating system.

Once Docker is installed correctly, you should be able to run these commands without error:

{% code fullWidth="false" %}

```bash
# Shows the installed Docker version
docker --version

# docker compose plugin (v2)
docker compose version

# List the running Docker containers on your system
docker ps

CONTAINER ID   IMAGE                                     COMMAND                  CREATED        STATUS                        PORTS                NAMES
b1fadcd1dcb1   quay.io/sharelatex/sharelatex-pro:5.4.0   "/sbin/my_init"          23 hours ago   Up About a minute             0.0.0.0:80->80/tcp   sharelatex
7900ebb9ebb8   redis:6.2                                 "docker-entrypoint.s…"   45 hours ago   Up About a minute             6379/tcp             redis
fbd49d420e59   mongo:6.0                                 "docker-entrypoint.s…"   45 hours ago   Up About a minute (healthy)   27017/tcp            mongo
```

{% endcode %}

{% hint style="success" %}
The [Toolkit](https://github.com/overleaf/toolkit) includes a handy [`bin/doctor`](/on-premises/support/getting-help.md) script that produces a report pointing to any unfulfilled dependency.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.overleaf.com/on-premises/getting-started/requirements/software-requirements.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
