> ## Documentation Index
> Fetch the complete documentation index at: https://self-hosted-docs.relai.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Prerequisites

> What you need on the host and from your own accounts before you start the deployment.

## Host

<Steps>
  <Step title="Docker">
    Docker Engine with the Compose plugin (Compose V2). Install instructions
    for your OS are in the [Docker docs](https://docs.docker.com/engine/install/).

    Verify both are installed:

    ```sh theme={"system"}
    docker --version
    docker compose version
    ```
  </Step>

  <Step title="A host with enough resources">
    A single host (VM or bare metal) that can run MySQL, Redis, the backend,
    a Celery worker, and the dashboard as containers at the same time. Size
    it to your expected usage — start with a few CPU cores and several GB of
    RAM, and scale up if the worker queue backs up or the database becomes a
    bottleneck.
  </Step>
</Steps>

## Ports

The Compose file publishes these ports on the host:

| Port                                   | Service   | Notes                                  |
| -------------------------------------- | --------- | -------------------------------------- |
| `8889`                                 | Backend   | Serves the API the dashboard talks to. |
| `5173`                                 | Dashboard | The web UI your users open.            |
| `3306` (configurable via `DB_PORT`)    | MySQL     |                                        |
| `6379` (configurable via `REDIS_PORT`) | Redis     |                                        |

<Warning>
  The database and Redis ports are published to the host so you can connect
  to them directly for maintenance, but they aren't meant to be reachable
  from outside your trusted network. Keep them behind a firewall or
  security group, and only expose `8889`/`5173` (ideally behind a reverse
  proxy that terminates TLS) more broadly.
</Warning>

## Accounts and credentials

* **Docker Hub credentials** to pull the private RELAI images — see
  [Pulling the images](/pulling-the-images).
* **An OpenAI API key** — required by the backend to power the continual
  learning engine.
