Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Install Prerequisites

Install Docker and Docker Compose

Vera

Install Prerequisites

Install Docker and Docker Compose

Vera is designed to run inside Docker containers.  Use the following instructions to install Docker Engine on the installation machine.

Note:  This section can be skipped if Docker is already installed on the machine.

  1. The Docker website provides instructions for installing Docker:

    1. Docker CE (recommended for Linux installations):  https://docs.docker.com/install/

If the docker compose --version command is recognized, then Docker is correctly installed.

Install Vera

Pre-configure Storage Locations

Vera uses folder mapping (volume mounting) to create persistent storage outside of the Docker containers.  The first step of installation is to create a folder location for each storage item listed below.  Tricentis default recommendations are provided, but any storage location (drive and/or folder) may be selected.

  1. Create Storage Locations:  Use the following table as guidance to select storage locations for the Vera items listed. You can choose any location you like, or you can follow Tricentis default recommendation. NOTE: For Linux, paths are case sensitive.

Storage Item

Recommended Location

Description

MongoDB Data Storage

/var/lib/vera/data/db

This location will become the internal storage drive for the MongoDB database.

Vera Server Install Directory

/var/lib/vera

The folder containing all inputs and outputs for the Vera Server.

Vera Web Portal Install Directory

/var/lib/vera

The folder containing all inputs and outputs for the Vera Web Portal. Usually this is the same as the Vera Server Data Directory.

  1. Create Folders:  Create the following folders within the Vera Data Directory selected above.

Required Folder Name

Description

Certificates

A folder for placing SSL certificates used to enable HTTPS on the Vera Server, Vera Web Portal and SSO communication.

Configs

The folder containing the Vera Web Portal configuration file.

Logs

The output directory for log files generated by Vera applications.

UserImports

A folder for placing CSV files containing user profiles to import. The Vera Server will monitor this folder for new CSV files that are dropped in. Also, the repository for previous imported CSV files and their import logs.

Mongo-Setup

A temporary folder for placing setup scripts for the MongoDB database.

Create folders (

View file
namesetup-vera-folders.sh.txt
)

Code Block
languagebash
sudo mkdir -p /var/lib/vera/data/db
sudo mkdir /var/lib/vera/Logs
sudo mkdir /var/lib/vera/UserImports
sudo mkdir /var/lib/vera/Certificates
sudo mkdir /var/lib/vera/Mongo-Setup
sudo mkdir /var/lib/vera/Configs
  1. Stage Vera Web Portal Configurations:  Copy

    View file
    nameconfig.yaml
    to the Configs directory created in Step 2.

  2. Stage MongoDB Setup Script:  Copy

    View file
    namemongo-users-setup.js
    to the Mongo-Setup directory created in Step 2.

    Note

    You may want to change the default passwords in the script file. If you do, be sure to use the correct passwords in the docker-compose file below.

  3. Stage User Import File:  If desired, copy a CSV file containing initial user definitions into the UserImports directory created in Step 2. See Import Vera users

    Sample User import CSV file(

    View file
    nameuserimport.csv
    )

    Code Block
    languagetext
    User Name,Full Name,Email,System Roles,IdP,IdP User Name
    vera_admin,Default Vera Administrator,vera_admin@tricentis.com,System Administrator,Vera,vera_admin:ChangeThis1Pwd

Open TCP/IP Ports

Both the Vera Web Portal and the Vera Server (API) require the ability to receive inbound HTTP traffic.  Each component can accept traffic via HTTP, HTTPS, or both.  

  1. Select Ports:  Select an HTTP and/or HTTPS port for the Vera Web Portal and the Vera Server (API).  Default recommendations are provided, but any ports may be selected.

Container

Port Recommendation

(http / https)

Vera Web Portal

80 / 443

Vera Server

8080 / 8443

Vera API qTest Route Action

5100 / 6100

Vera API Jira Route Action

5101 / 6101

RabbitMQ

5672 / 15672

  1. Configure the installation machine's firewall to open each selected port for incoming traffic.

Create a JWT Certificate

Vera uses JSON Web Tokens (JWT) to securely transmit information between clients and the Vera Server API. These JWTs are digitally "signed" during creation so that their integrity can be verified on subsequent calls without requiring the user to provide login information. A certificate is required to "sign" the JWT. The certificate must be in the PKCS#12 format and can be from a trusted source or a self-signed certificate. The instructions below will create a self-signed certificate in the proper format and upload it to the appropriate location.

  1. Create a Private Key for use in the certificate.

    Code Block
    languagebash
    openssl genrsa -aes256 -out private.pass.pem 2048
    openssl rsa -in private.pass.pem -out key.pem
  2. Create the Self-Signing Request. Enter the information requested during the certificate creation.

    Code Block
    languagebash
    openssl req -new -key key.pem -out server.csr
  3. Generate the Self-Sign Certificate.

    Code Block
    languagebash
    openssl x509 -req -sha256 -days 3650 -in server.csr -signkey key.pem -out jwt.crt
    Note

    The -days parameter above sets the expiration date for the self-signed certificate.  We recommend setting the expiration to be 3650 days (approx. 10 yrs), but this can be modified based on your local security requirements.  Setting a shorter expiration only requires the certificate to be regenerated more frequently.

  4. Generate a PFX file from the certificate and private key. Provide a password for the PFX file, and make note of the password for a later use in the installation.

    Code Block
    languagebash
    openssl pkcs12 -export -out jwt.pfx -inkey key.pem -in jwt.crt
    Note

    You must provide a password when creating the PFX file. 

  5. Copy the PFX file to the Certificates directory for Vera Server.

Create or Provide a Service Provider Certificate and Private Key

Vera acts as a SAML Service Provider for Single Sign-On. This requires Vera to have a certificate available for signing SAML Requests that are sent to the SAML Identity Provider. The certificates are required for the Web Portal to start up, even if you are not using the SSO feature. The certificate and key must be in the PEM format. The simplest way to provide these is to use the certificate and key files created above when creating the JWT certificate. If needed, you can follow the instructions below to create a new certificate and key file for the Service Provider.

  1. Create a Private Key for use in the certificate.

    Code Block
    languagebash
    openssl genrsa -aes256 -out sp-private.pass.pem 2048
    openssl rsa -in sp-private.pass.pem -out sp-privatekey.pem
  2. Create the Self-Signing Request. Enter the information requested during the certificate creation.

    Code Block
    languagebash
    openssl req -new -key sp-privatekey.pem -out sp-server.csr
  3. Generate the Self-Sign Certificate.

    Code Block
    languagebash
    openssl x509 -req -sha256 -in sp-server.csr -signkey sp-privatekey.pem -out sp-publiccert.crt
  4. Copy the certificate and private key files to the Certificates directory for Vera Server.

  5. Ensure that the config.yaml file is updated with the correct filenames for the following parameters:

Config.yaml Variable

Example Value

samlPrivateKeyFile

sp-privatekey.pem

samlPublicCertFile

sp-publiccert.crt

Configure Docker Orchestration (Docker Compose)

  1. Download the Vera Docker Compose file for: 

    View file
    namedocker-compose.yml

  2. Place the file in the Vera Server Install Directory selected previously.

  3. Download the Vera Environment file:

    View file
    name.env

    1. For a filled in example, see below.

  4. Place the file in the Vera Server Install Directory selected previously.

  5. Configure Storage Volumes:  The file is pre-configured with the default recommendations for storage locations (as described above).  If any non-default storage location was selected previously, then update the Docker Compose file as necessary:

Docker Service

Configuration Item - Volume

Default Configuration

vera.mongo

MongoDB Data Storage Location

/var/lib/vera/data/db

vera.server

Vera Server Data Directory

/var/lib/vera

vera.web.portal

Vera Web Portal Data Directory

/var/lib/vera

  1. Configure Vera Server Encryption Key:  Vera Server encrypts stored user passwords. You must supply the encryption key for Vera to use to encrypt and decrypt user passwords. The encryption key is stored in the following environment variable of the docker compose file:

Docker Service

Configuration Item - Environment Variable

Default Configuration

vera.server

VERA_SERVER_ENCRYPTION_KEY

<Enter an encryption key>

Configure Vera Server JWT Certificate and Password: Vera Server uses JWTs to authenticate users. A certificate must be present on the server in order to validate incoming JWTs. The certificate is stored in the Certificates directory and must be in the PFX format.  A password-protected PFX certificate file should have been created during an earlier step of these instructions.  Provide the filename and password of the generated PFX file in the following environment variables
  1. Update the .env file with the configurations below. Do not update the docker-compose.yml file directly unless you know what you are doing.

    1. NOTE: You should not need to update the docker-compose.yml file directly. That file will load the variables from the .env file when it is started by Docker. For custom configurations, see below for examples or contact your account representative.

  2. Configure Vera Installation Properties -- Set the following variables in the .env file:

Variable Name

Description

Suggested Value

VERA_RELEASE_TAG

This is the release tag for the version you want to install.

2023.4.0

VERA_SERVER_DATA_DIRECTORY

The path to the Vera Server Installation files and folders created above.

/var/lib/vera

VERA_WEB_PORTAL_DATA_DIRECTORY

The path to the Vera Web Portal Installation files and folders created above.

/var/lib/vera

  1. Configure Vera Server Encryption Key:  Vera Server encrypts stored user passwords. You must supply the encryption key for Vera to use to encrypt and decrypt user passwords. The encryption key is stored in the following environment variable of the docker compose file:

Docker Service

Configuration Item - Environment Variable

Default Configuration

vera.server

VERA_SERVER_JWT_CERT_NAME

<JWT Certificate File Name, eg. jwt.pfx>

vera.server

VERA_SERVER_JWT_CERT_PASSWORD

<JWT Certificate Password>

Warning

If you use a $ character in your password, you will need to escape the character with another $. E.g. $ would be $$ in the docker-compose file. Quotes may also be needed if using other special characters.

  1. Configure Ports:  The file is pre-configured with the default recommendations for TCP/IP ports (as described above).  If any non-default port was opened previously, then update the Docker Compose file as necessary:

Docker Service

Configuration Item - Internal Port

Default External Port

vera.server

5000

8080

vera.server

5001

8443

vera.web.portal

80

80

vera.web.portal

443

443

vera.api.qtest.routeactions

80

5100

vera.api.qtest.routeactions

443

6100

vera.api.jira.routeactions

80

5101

vera.api.jira.routeactions

443

6101

rabbitmq

5672

5672

rabbitmq

15672

15672

(NOTE:  For each modified configuration, be certain to only update the first number in each pair of mapped ports.  The second port number in each configuration is the internal port number of Docker's internal container network.)

Enable/Disable HTTPS for the Vera Web Portal

Choose whether to enable or disable support for HTTPS in the Vera Web Portal.

To Enable HTTPS for Web Portal

  1. Obtain a valid SSL certificate registered for the installation machine's domain name.

  2. Export the server's certificate as a password-protected PFX file, and store the file in the Certificates directory configured previously.

  3. Edit the docker-compose.yml file as follows:

Docker Environment Variable

Value

VERA_WEB_HTTPS_FILE

<PFX file name>

Example: My-server.pfx

VERA_WEB_HTTPS_PASS

<PFX Password>

Example: crypticpassword

To Disable HTTPS for Web Portal

Delete the web portal's SSL port mapping configuration from the docker-compose.yml file.   (Unless previously edited, this configuration mapped port 443 to port 443 inside the vera.web.portal service.)

Enable/Disable HTTPS for the Vera Server (API)

Choose whether to enable or disable support for HTTPS in the Vera Server (API).

To Enable HTTPS for API

Export the server

Variable Name

Description

Suggested Value

VERA_ENCRYPTION_KEY

A string used to encrypt stored passwords.

<Enter an encryption key>

  1. Configure Vera Server JWT Certificate and Password: Vera Server uses JWTs to authenticate users. A certificate must be present on the server in order to validate incoming JWTs. The certificate is stored in the Certificates directory and must be in the PFX format.  A password-protected PFX certificate file should have been created during an earlier step of these instructions.  Provide the filename and password of the generated PFX file in the following environment variables of the docker compose file:

Variable Name

Description

Suggested Value

VERA_JWT_PFX_FILENAME

The JWT PFX file created above.

jwt.pfx

VERA_JWT_PFX_PASSWORD

The password for the JWT PFX file created above.

<JWT Certificate Password>

Warning

If you use a $ character in your password, you will need to escape the character with another $. E.g. $ would be $$ in the docker-compose file. Quotes may also be needed if using other special characters.

  1. Configure Ports:  Update the following ports based on the setup above:

Variable Name

Description

Suggested Value

VERA_SERVER_HTTP_PORT

HTTP Port for the Vera Server API.

8080

VERA_SERVER_HTTPS_PORT

HTTPS Port for the Vera Server API.

8443

VERA_QTEST_HTTP_PORT

HTTP Port for the qTest Route Actions Service.

5100

VERA_QTEST_HTTPS_PORT

HTTPS Port for the qTest Route Actions Service.

6100

VERA_JIRA_HTTP_PORT

HTTP Port for the Jira Route Actions Service.

5101

VERA_JIRA_HTTPS_PORT

HTTPS Port for the Jira Route Actions Service.

6101

VERA_WEB_PORTAL_HTTP_PORT

HTTP Port for the Web Portal.

5101

VERA_WEB_PORTAL_HTTPS_PORT

HTTPS Port for the Web Portal.

6101

Note

If you are not using HTTPS, you can leave the HTTPS related variables blank in the .env file.

  1. Configure Web Portal URL:

Variable Name

Description

Suggested Value

VERA_WEB_PORTAL_URL

The URL for the Web Portal.

https://<server>

Enable/Disable HTTPS for the Vera Server (API)

Choose whether to enable or disable support for HTTPS in the Vera Server (API).

To Enable HTTPS for API

  1. Export the server's certificate as a password-protected PFX file, and store the file in the Certificates directory configured previously.

  2. Edit the docker-compose.ymlenv file as follows:

Docker Environment Variable Name

Value

ASPNETCOREVERA_KestrelSERVER_HTTPS_Certificates__Default__PathPFX_FILENAME

<PFX file name>

example: My-server.pfx

ASPNETCOREVERA_KestrelSERVER_HTTPS_Certificates__Default__PasswordPFX_PASSWORD

<PFX Password>

Example: crypticpassword

To Disable HTTPS for API

Edit the docker-compose.yml file by changing the following configurations;

  1. Delete the server's SSL port mapping configuration.   (Unless previously edited, this configuration mapped port 8443 to port 5001 inside the vera.server service.)

  2. Delete the ASPNETCORE_Kestrel__Certificates__Default__Path environment variable configuration.

  3. Delete the ASPNETCORE_Kestrel__Certificates__Default__Password environment variable configuration.

  4. Edit the ASPNETCORE_URLS environment variable configuration as follows:

    1. Old Value:https://+:5001;http://+:5000

    2. New Value: http://+:5000

Configure a MongoDB Container

  • Download the MongoDB Docker Compose Setup file:  

    View file
    namesetup-mongo.yaml

    Note
    titleMongoDB Image Tag

    Make sure the image tag selected for the MongoDB image in the setup-mongo.yaml file matches the image tag in the docker-compose.yml file above.

  • Place the file in the Vera Server Data Directory selected previously.  (NOTE:  It is important that the setup-mongo.yaml file be located in the same directory as the docker-compose.yml file.)

  • Navigate to the Vera Server Data Directory.

  • Execute the following command:  docker compose -f ./setup-mongo.yaml up

    1. If you get the error: "Couldn't connect to Docker deamon - is it running?"

    2. Log out of the server, log back in, and start Docker with sudo service docker start

  • Wait for MongoDB to download and extract, and for the script to complete.  When completed, the user will see a message instructing them to press Ctrl+C to exit.

  • Use Ctrl + C to exit the script and to stop the MongoDB container

    :

    1. Under the “ports” section of the following services: vera.server, vera.api.qtest.routeactions, vera.api.jira.routeactions, remove the HTTPS port entry.

      1. Examples:

        1. "${VERA_SERVER_HTTPS_PORT}:5001"

        2. "${VERA_QTEST_HTTPS_PORT}:443"

        3. "${VERA_JIRA_HTTPS_PORT}:443"

    2. Delete the ASPNETCORE_Kestrel__Certificates__Default__Path environment variable configurations.

    3. Delete the ASPNETCORE_Kestrel__Certificates__Default__Password environment variable configurations.

    4. Edit the ASPNETCORE_URLS environment variable configurations for all services as follows:

      1. Old Value: http://+:5000;https://+:5001

      2. New Value: http://+:5000

    Enable/Disable HTTPS for the Vera Web Portal

    Choose whether to enable or disable support for HTTPS in the Vera Web Portal.

    To Enable HTTPS for Web Portal

    1. Obtain a valid SSL certificate registered for the installation machine's domain name.

    2. Export the server's certificate as a password-protected PFX file, and store the file in the Certificates directory configured previously.

    3. Edit the .env file as follows:

    Variable Name

    Value

    VERA_WEB_PORTAL_HTTPS_PFX_FILENAME

    <PFX file name>

    Example: My-server.pfx

    VERA_WEB_PORTAL_HTTPS_PFX_PASSWORD

    <PFX Password>

    Example: crypticpassword

    To Disable HTTPS for Web Portal

    Delete the web portal's SSL port mapping configuration from the docker-compose.yml file.   

    1. Under the “ports” section of the vera.web.portal service, remove the HTTPS port entry:

      1. "${VERA_WEB_PORTAL_HTTPS_PORT}:443"

    2. Delete the VERA_WEB_HTTPS_FILE environment variable configuration.

    3. Delete the VERA_WEB_HTTPS_PASS environment variable configuration.

    Configure a MongoDB Container

    1. Edit the .env file as follows:

    Variable Name

    Description

    Suggested Value

    MONGODB_VERSION_TAG

    The docker tag for the version of MongoDB you want to use.

    6.0.2

    MONGODB_VERA_SERVER_USERNAME

    The user name for the user that will access MongoDB on behalf of Vera Server.

    vera_server_user

    MONGODB_VERA_SERVER_PASSWORD

    The password for the Vera Server MongoDB user.

    <crypticpassword>

    MONGODB_WEB_PORTAL_USERNAME

    The user name for the user that will access MongoDB on behalf of the Web Portal.

    vera_web_portal_user

    MONGODB_WEB_PORTAL_PASSWORD

    The password for the Vera Web Portal MongoDB user.

    <crypticpassword>

    1. Download the MongoDB Docker Compose Setup file:  

      View file
      namesetup-mongo.yaml

    2. Place the file in the Vera Server Data Directory selected previously.  (NOTE:  It is important that the setup-mongo.yaml file be located in the same directory as the docker-compose.yml file.)

    3. Navigate to the Vera Server Data Directory.

    4. Execute the following command:  docker compose -f ./setup-mongo.yaml up

      1. If you get the error: "Couldn't connect to Docker deamon - is it running?"

      2. Log out of the server, log back in, and start Docker with sudo service docker start

    5. Wait for MongoDB to download and extract, and for the script to complete.  When completed, the user will see a message instructing them to press Ctrl+C to exit.

    6. Use Ctrl + C to exit the script and to stop the MongoDB container.

    Configure a RabbitMQ Container

    1. Edit the .env file as follows:

    Variable Name

    Description

    Suggested Value

    RABBITMQ_VERSION_TAG

    The docker tag for the version of RabbitMQ you want to use.

    3.12.7

    RABBITMQ_USERNAME

    The user name for RabbitMQ.

    rabbitmq_user

    RABBITMQ_PASSWORD

    A password for the RabbitMQ user.

    <crypticpassword>

    1. Download the RabbitMQ Docker Compose file:  

      View file
      namerabbitmq.yml

    2. Launch the RabbitMQ container.

      1. docker-compose -f .\rabbitmq.yml up -d

    Info

    RabbitMQ should be left running when restarting other Vera containers and must be running before starting other Vera containers.

    Download/Launch the Vera Containers

    1. Navigate to the Vera Server Data Install Directory.

    2. Execute the following commands:

      1. docker login veraserver20190209075900.azurecr.io -u fc12bdd5-6753-40b3-a4da-32bc5d451b39 -p bhfV1g0RhN1O~xS-R-Osv67~HO.zeKMbHp

      2. docker - compose up -d

    3. Wait for the MongoDB, Vera Server, and Vera Web Portal services to start.

      1. You can check container processes by executing docker ps – containers should running consistently and appear healthy.

    4. Verify that you can access the Vera Web Portal at the expected port.

    Example Configurations

    HTTP Only:

    Table of Contents

    Table of Contents
    maxLevel2