Concepts¶
The entire Qaack structure revolves around the concept of an environment. In a nutshell, an environment is a set of services that run your web application.
Conceptually, on top of 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¶
An entity that contains repositories. 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 user. Under group settings, new users can be added.
Repository¶
An entity that holds information about a code platform (like GitHub, GitLab, Bitbucket, etc.). It also has settings related to time to live, webhooks, SSH keys, and much more.
A repository belongs to exactly one group. Admins/owners of both the source and target groups can transfer a repository to another group; environments and repository-scoped settings are unchanged.
Read more about repositories here.
Environment¶
Every environment is attached to a git reference. All environments are created and built from a configuration file, the Qaackfile. This file can be fetched from the git reference (as a file in the repository) or from the repository settings and is 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 to the users what's happening.
Read more about environments here.
Service¶
This is a docker container running according to the Qaackfile.