# On Premise Setup

## Introduction

AIO setup uses docker compose to bring up multiple containers at once all configured to connect to each other.  This includes:&#x20;

* Main app backend
* Reverse Proxy that serves the website assets and routes http calls to the backend
* Price adapter microservices
* Order adapter microservices
* Market data and tca microservices
* Smart order router
* Distributed cache (Redis)
* Message bus (Rabbitmq)
* Persistent storage DB (Postgres)

It may be resource intensive to run on one host, so if you are hitting performance issues given your usage (even with our recommended host specifications), you can choose to pick a bigger instance or please reach out to <ops@tread.fi> and we can help you extract some of the components out to reduce the load.

We will also soon support easy configuration of the app to call your distributed cache or DB service.

## Setup

Pick a host with intel (x86) or arm architecture (we currently only support *x86*-*64 and arm64)* with any OS but we recommend Ubuntu 20+ as it is what we run internally and can give you steps that we've tested ourselves.

1. Install docker engine: <https://docs.docker.com/engine/install/ubuntu/>
2. Important post installation steps:\
   [https://docs.docker.com/engine/install/linux-postinstall](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)
3. Run our curl command to download the our images and bring the containers up with docker compose


---

# 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.tread.fi/enterprise/self-hosted-service/on-premise-setup.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.
