.. title:: System Architecture System Architecture ======================== The following system roles make up the Kasm Architecture: **API Service (container: kasmweb/kasm_api)** This service contains the API endpoints used by the web application. The web application content is automatically installed as part of this service. **Manager Service (container: kasmweb/kasm_manager)** This service is responsible for monitoring the status of Agents and user sessions. Agents report to this service via an automatic check in process. **Agent Service (container: kasmweb/agent)** The agent is responsible for provisioning instances of end user session containers when requested via the web application. The Agent reports the available system resources to the manager. These Agents are represented in the Servers tab in the Administration tab of the web application. This service automatically downloads all Kasm Images defined within the application so they are available to provision new sessions on demand. **Proxy Service (container: kasm_proxy)** This container, based on nginx, is used to forward traffic to the correct service container. This container is required to be run in tandem with any of the following services: * **API Service** * **Manager Service** * **Agent Service** * **Database Services (container: kasmweb/kasm_db, kasmweb/kasm_redis)** Houses the postgresql and Redis Kasm application databases **Share Service (container: kasmweb/kasm_share)** This service is the chat handler for the sharing feature in sessions. It handles synchronising messages between chat clients using the Kasm redis database. **Kasms – End User Sessions/Containers (container: e.g kasmweb/firefox)** End users request to create sessions that are on-demand instances of Images registered in the application. These instances are provisioned by and on the Agent. These containers house the desktop or application presented to the end user via the web application. **Images** Any number of Images can be registered via the web application and can be customized by the administrator to add additional software and configurations. The administrator can also configure the CPU, memory and network resources available to each Image via the `Image Settings `_. By default several Images are installed and registered. **Desktop (container: kasmweb/desktop)** The default base desktop configuration based on ubuntu 16.04. This base image contains all the necessary configurations to allow this container to function within the Kasm ecosystem. All additional images are based off this base image. **Desktop Deluxe (container: kasmweb/desktop-deluxe)** An example custom configuration that provides additional productivity software. **Firefox (container: kasmweb/firefox)** An example of hosting a single application. In this example the popular Firefox browser is used.