Skip to content

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.