Create an Ubuntu Server – Linux VM in Azure
- Login to the Azure Portal at https://portal.azure.com
- Create a new Virtual Machine Resource. By selecting Create –> Virtual Machine

- Set Virtual Machine Image to the latest Ubuntu Server Image. Also, set the region and VM size to the desired value.

- Set Inbound Port rules to allow HTTPS, HTTP + SSH

- Go to the disk page and select –> create and attach a new disk

- Choose your required disk size.

- Check Network Interface Settings are correct and that Inbound Port rules are set to allow HTTPS, HTTP + SSH

- Go to the Review + Create Page and confirm all settings are correct

- If using a SSH Key Pair for access you will be prompted to download and save the private key for later use when accessing the VM. Please retain this private key to use later in the guide.

Configure Linux Server
- Use the SSH Key saved earlier to connect via SSH to your Linux Server. You connect using any SSH client of your choice. You will be required to specify the SSH Key in order to authenticate successfully.

- Once you have connected successfully you should see a screen similar to this.

- Create a new folder called ‘manifest’ by running the command “mkdir manifest”.

- Run the command “cd manifest” to enter the manifest folder.
- Download the docker-compose template file from https://experts.taqtile.com/knowledgebase/docker/
- Set up environment variables in docker-compose.yml file
- API VARIABLES:
- VOLUMES: Update </put/path/to/file/storage/here>:/uploads (Example: /c/manifest/uploads:/uploads)
- IP_ACCESS: “<PUT_VM_IP_ADDRESS>” – Based on this variable manifest will create stun/turn configuration with our stun/turn container from compose.
- ADMIN_EMAIL: “<PUT_ADMIN_EMAIL>” – With this variables manifest will generate admin account.
- ADMIN_PASSWORD: “<PUT_ADMIN_PASSWORD>” – With this variable manifest will generate the login for the admin
- LICENSE_KEY: ” ” – Obtain license key from your Manifest Account Manager
- WEB VARIABLES:
- VOLUMES: </put/path/to/file/storage/here>:/usr/share/nginx/html/uploads
- SELF-ASSIGNED CERTIFICATES: <put_here_path_to_folder_where_certs_will_store>:/usr/share/nginx/certs
- EXAMPLE: /c/manifest/uploads:/usr/share/nginx/certs
- If clients want to use their own certs they can replace certs in this folder and restart the web container and new certs will automatically be applied.
- IMPT! Certs must be named “nginx-cert.crt” and “nginx-cert.key” in order to work. Without these file names, Manifest will create self assigned certs and will use those instead.
- IP_ACCESS=”<PUT_VM_IP_ADDRESS>” – Based on this variable manifest will create self-signed ssl certificate.
- CONVERTER VARIABLES:
- VOLUMES: </put/path/to/file/storage/here>:/manifest-cs/folder
- EXAMPLE: /c/manifest/uploads:/manifest-cs/folder
- VOLUMES: </put/path/to/file/storage/here>:/manifest-cs/folder
- API VARIABLES:
- Example of the docker-compose.yml

- Save the file with name docker-compose.yml and type “All Files.” Change Encoding to UTF-8

- Once the docker-compose.yml is saved you should see a file with YML format:

- You should now copy your finalized docker-compose.yml into the “manifest” directory on your Linux server. There are a few different ways to do this in my case I’m going to use SCP to copy the docker-compose file from the local machine to the Linux server “manifest” directory. I used the following command to do so.
- scp -i “/Users/matthew/Documents/Manifest-Linux_key.pem” “/Users/matthew/Documents/docker-compose.yml” azureuser@20.70.192.221:/home/azureuser/manifest
- You will be required to specify the SSH Key in order to authenticate successfully.
- Run the command “sudo snap install docker” to install docker on to the Linux Server if docker is not already installed.
- Check docker is installed by running the command “docker -v” you should see a response similar to the response below specifying your current docker version and build number.

- Login to the Manifest Container Registry by running the following command:
- sudo docker login taqtile.azurecr.io -u taqtile -p [please inquire for password]
- You may be prompted to provide your Linux account password
Install Manifest on Linux Server
- Confirm you are connected to the Linux Server over SSH and have navigated into the “manifest” directory.
- While in the “manifest directory” run the following command
- sudo docker-compose up –d
- You may be prompted to provide your Linux account password
- After pulling the required images the Manifest containers will start automatically.
- Ensure inbound port 443 and port 80 are open on your Linux Server in order to allow Manifest Web Traffic.
- Using a chrome browser type in the IP Address and confirm the Manifest Client Portal is displayed correctly.

- Login in using the admin username and password supplied in the docker compose file earlier.
Adding a Custom Certificate
- Open the docker-compose.yml file
- Add the following information to the Web Container Variables.
- CERTIFICATES: <put_here_path_to_folder_where_certs_will_store>:/usr/share/nginx/certs
- EXAMPLE: /c/manifest/uploads:/usr/share/nginx/certs
- If clients want to use their own certs they can replace certs in this folder and restart the web container and new certs will automatically be applied.
- IMPT! Certs must be named “nginx-cert.crt” and “nginx-cert.key” in order to work. Without these file names, Manifest will create self assigned certs and will use those instead.
- Save the docker-compose file back onto the Linux Server and restart the web container and the new certs will automatically be applied.