# Deploying on-site

Enterprise customers have the option to run the Atfinity application in their own infrastructure. This guide explains how to do this and what the necessary requirements are.

## General Architecture

Atfinity is a client-server web application. It broadly consists of a web server serving a web **frontend**, and an API **backend** with which the browser communicates. If you are running Atfinity headless, you will mostly communicate with our API, which is part of the backend.

Atfinity supports multiple infrastructure modes:

| Mode             | Servers                  | Description                                                               |
| ---------------- | ------------------------ | ------------------------------------------------------------------------- |
| **1-Tier**       | *CORE*                   | Backend, Frontend, Database, and File Storage all run on one server       |
| **2-Tier**       | *CORE* + *DATA*          | Backend and Frontend on *CORE*; Database and File Storage on *DATA*       |
| **3-Tier**       | *CORE* + *WEB* + *DATA*  | Backend on *CORE*; Frontend on *WEB*; Database and File Storage on *DATA* |
| **X-Tier + EUW** | Any of the above + *EUW* | Adds the End User Wizard (EUW) on a separate server to any tier setup     |

The EUW is always deployed on a separate server as it is typically the most exposed component.

You have two general deployment options:

1. [Kubernetes via helm chart](https://docs.atfinity.io/deploying/deploying-on-site/kubernetes) (recommended)
2. [Single servers via docker-compose](https://docs.atfinity.io/deploying/deploying-on-site/docker-compose)

## **CDN and Security Tools (e.g. CloudFlare)**

atfinity is able to handle a wide range of CDN and security tools in front of its components. Note, however, that atfinity works best if content is not cached, as almost no transferred data stays valid for more than a minute. We therefore recommend to disable all caches and only use security, not performance, tools of your infrastructure tooling in combination with atfinity.<br>
