Introduction ------------ The whole Qaack structure moves around the concept of **environment**. In a nutshell, a environment is a set of **services** that runs your web application. Conceptually, above a given environment you will find a **repository**, which provides the code for the environment. Every repository is contained in a **group**. Any **user** can belong to one or more groups. Let's see more details of each concept: **Group** A entity that contains repositorires. Each group may have many repositories and at least one user belongs to every group. By default, a new group is created for every user with the name of the users. Under groups settings, new users can be added. **Repository** A entity that holds information about a code platform (like GitHub, GitLab, Bitbucket, etc). It also has settings related with time to life, webhooks, SSH keys and much more. **Environment** Every environment is attached to a git reference. All environments are created and built from a configuration file, the Qaackfile. This file can fetch from the git reference (as a file in the repository) or from the repository settings and its very similar to a docker-compose file. All environments are proxied through a subdomain. In addition, the environment has a status (like creating, building, failed, etc) to indicate the users whats happening. **Service** This is a docker container running following the Qaackfile.