Use Docker Compose

Minimum requirements for the Aviator server


  1. Ubuntu or Debian installation on the box.

    • You need to be able to SSH or have a console access to it.

    • You need a root access on it.

    • Docker engine needs to be installed. You can follow instructions here.

  2. The secrets file provided by Aviator.

  3. A domain name that can be assigned to the Linux box.

Variable definitions

$GITHUB_URL: Hostname where GitHub is hosted

$AV_HOSTNAME: Hostname where Aviator is hosted (e.g.

$GITHUB_APP_ID: ID generated when a GitHub app is created

$GITHUB_CLIENT_ID: Client ID of the GitHub app, you can find this in the General settings of the app.

$GITHUB_CLIENT_SECRET: Client Secret of the GitHub app, you can generate a client secret in the General settings for the app.

$MERGEQUEUE_PEM_FILE: Private key generated by GitHub for Aviator

Step 1

Configure the DNS records so that $AV_HOSTNAME points to your Linux box. Depending on your DNS, this may take some time to propagate. Make sure the hostname resolves before moving on.

Step 2

Follow GitHub App for On-Prem to create $GITHUB_APP_ID and $MERGEQUEUE_PEM_FILE.

Step 3

Verify that Docker engine is installed and running, otherwise follow the instructions here to install.

Step 4

Create /opt/mergequeue/keys directory and copy $MERGEQUEUE_PEM_FILE there. The file name must be mergequeue.pem.

$ sudo mkdir -p /opt/mergequeue/keys
$ sudo mv mergequeue.pem /opt/mergequeue/keys/
$ sudo chmod 0644 /opt/mergequeue/keys/mergequeue.pem

Step 5

Extract the file provided by us, and open enterprise/ in your favorite editor. There are configs around the top of the script. You will need to modify the variables there. Here are some details for each secret value:



Provided in the secrets file, used to pull Docker images.


Provided in the secrets file.


Email used by LetsEncrypt. This is where you will get emails about expiring certificates. During our setup of LetsEncrypt certificate, we also enable auto-renewal cron.


Same as $GITHUB_URL. This is only the hostname without any “https://” and any trailing slashes.


Same as $AV_HOSTNAME. This is only the hostname of Aviator server without any “https://” and any trailing slashes.


The same $GITHUB_APP_ID mentioned in Step 3.


We use sumo logic for log tracking. These values should be provided to you in the keys.


The same $GITHUB_CLIENT_ID and $GITHUB_CLIENT_SECRET mentioned in Step 3.

Save the file.

Step 6

Once the configurations above are set, run the install script. This will pull, build and start all the docker containers required for the Aviator service.

$ ./

At the end of that script, it will run docker-compose up -d to start the containers as detached. You can verify that the containers are running by:

$ sudo docker-compose ps

At this point, you should be able to open $AV_HOSTNAME in the browser.

Step 7

Once the page loads, you can go and register a new account from the following url on the app and follow the instructions.


It will guide you to connect the GitHub Repository with the GitHub app you created. Once authorized, you should see the connected repositories on your Repository page.

Use the same account for all purposes. You can invite other team members to this account from the Account / Users and Roles section.

Note that registering multiple accounts is disabled for on-prem, if you need additional accounts please contact


If the setup above fails, or docker fails to start containers, please reach out to the Aviator team. And share the output of install script along with logs from docker-compose:

$ sudo docker-compose logs

Last updated