> For the complete documentation index, see [llms.txt](https://docs.overleaf.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.overleaf.com/on-premises/getting-started/requirements/software-requirements.md).

# 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
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 dynamically by asking a question.

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

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
