# Getting help

## The Doctor

The Overleaf Toolkit comes with a handy `doctor` script, to help with debugging. Just run `bin/doctor` and the script will print out information about your host environment, your configuration, and the dependencies the Toolkit needs. This output can also help the Overleaf support team to help you figure out what has gone wrong, in the case of a Server Pro installation.

{% hint style="info" %}
Users of the free Community Edition should [open an issue on github](https://github.com/overleaf/toolkit/issues).

Users of Server Pro should contact `support+serverpro@overleaf.com` for assistance.

In both cases, it is a good idea to include the output of the `bin/doctor` script in your message.
{% endhint %}

## Consulting with the Doctor

Run the doctor script:

```bash
bin/doctor
```

You will see some output like this:

```bash
====== Overleaf Doctor ======
- Host Information
    - Linux
    - Output of 'lsb_release -a':
            No LSB modules are available.
            Distributor ID:	Ubuntu
            Description:	Ubuntu 22.04.5 LTS
            Release:	22.04
            Codename:	jammy
- Dependencies
    - bash
        - status: present
        - version info: 5.1.16(1)-release
    - docker
        - status: present
        - version info: Docker version 28.0.4, build b8034c0
    - docker compose
        - status: present
        - version info: Docker Compose version v2.34.0
    - realpath
        - status: present
        - version info: realpath (GNU coreutils) 8.32
    - perl
        - status: present
        - version info: 5.034000
    - awk
        - status: present
        - version info: mawk 1.3.4 20200120
- Docker Daemon
    - status: up
====== Configuration ======
- config/version
    - status: present
    - version: 5.4.0
- config/overleaf.rc
    - status: present
    - values
        - OVERLEAF_DATA_PATH: data/overleaf
        - OVERLEAF_LOG_PATH: data/overleaf/logs
        - SERVER_PRO: true
        - SIBLING_CONTAINERS_ENABLED: true
            - logged in to quay.io: true
        - MONGO_ENABLED: true
        - REDIS_ENABLED: true
- config/variables.env
    - status: present
    - values
        - OVERLEAF_FILESTORE_BACKEND: fs
        - OVERLEAF_HISTORY_BACKEND: fs

====== Warnings ======
- None, all good
====== End ======
```

### Host Information

The `Host Information` section contains information about the machine on which the Toolkit is running. This includes information about the type of Linux system being used.

### Dependencies

The `Dependencies` section shows a list of tools which are required for the Toolkit to work. If the tool is present on the system, it will be listed as `status: present`, along with the version of the tool. For example:

```bash
- docker
    - status: present
    - version info: Docker version 28.0.4, build b8034c0
```

However, if the tool is missing, it will be listed as `status: MISSING!`, and a warning will be added to the bottom of the `doctor` output. For example:

```bash
- docker
    - status: MISSING!
```

If any of the dependencies are missing, the Toolkit will almost certainly not work.

### Configuration

The `Configuration` section contains information about the files in the `config/` directory. In the case of `config/overleaf.rc`, the doctor also prints out some of the more important values from the file. If any of the files are not present, they will be listed as `status: MISSING!`, and a warning will be added to the bottom of the `doctor` output. For example:

```bash
====== Configuration ======
- config/version
    - status: present
    - version: 5.4.0
- config/overleaf.rc
    - status: present
    - values
        - OVERLEAF_DATA_PATH: /tmp/overleaf 
        - SERVER_PRO: false
        - MONGO_ENABLED: false
        - REDIS_ENABLED: true
- config/variables.env
    - status: MISSING!
```

The above example shows a few problems:

* The `OVERLEAF_DATA_PATH` variable is set to `/tmp/overleaf`, which is probably not a safe place to put important data
* The `MONGO_ENABLED` variable is set to `false`, so the Toolkit will not provision it's own MongoDB database. In this case, we had better be sure to set `MONGO_URL` to point to a MongoDB database managed outside of the toolkit
* the `config/variables.env` file is missing

### Warnings

The `Warnings` section shows a summary of problems discovered by the doctor script. Or, if there are no problems, this section will say so. For example:

```bash
====== Warnings ======
- configuration file variables.env not found
- rc file, OVERLEAF_DATA_PATH not set
====== End =======
```


---

# 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/support/getting-help.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.
