| title: | Controller |
|---|---|
| description: | The Deis controller is the brains of the Deis platform. Details on what the Deis controller is in charge of and what the Deis controller stack includes. |
| keywords: | controller, deis |
The controller is the "brains" of the Deis platform. The controller manages container :ref:`Formations <formation>`, comprised of clusters of nodes providing proxy and runtime services for the application platform. A single controller manages multiple container formations.
Controllers are tied to a configuration management backend (typically a Chef Server) where data about users, applications and formations is stored.
The controller is in charge of:
- Processing client API calls
- Managing nodes that provide services to a formation
- Managing containers that perform work for applications
- Managing proxies that route traffic to containers
- Managing users, providers, flavors, keys and other base configuration
The controller stack includes:
- Django API Server for handling API calls
- PostgreSQL database as a backing store for Django
- Celery / RabbitMQ for dispatching tasks
- Gitosis to handle access control for Git Push over SSH
- Docker and Buildstep to process Heroku Buildpacks
Follow the :ref:`Installation` process to setup your own private Deis controller.