Overview
To request assistance with upgrading or to obtain the links to self-upgrade, please click here to fill out the Upgrade Request Form.
In this guide, we'll run you through installing qTest Manager 9.8.3 with its additional applications on a single CentOS/ Ubuntu machine using Docker.
New for This Release: Enhanced Security Enablement for Sessions and Insights
During an attempted CSRF attack, user credentials may potentially be inherited and then used to maliciously perform undesirable actions, usually affecting a change of state of server. Please note that this does not result in any data theft.
Sessions Information needed for Enablement
- qTest Managers HTTP or HTTPS Port
- URL to access qTest Manager outside of this machine
- qTest Sessions HTTP or HTTPS Port
- URL to access qTest Sessions outside of this machine
- External Defect Tracker domain i.e. JIRA
3 Insights features are impacted by this new security configuration:
- embed reports/dashboard
- shareable URL dashboard
- rapid dashboard
Insights Information needed for Enablement
Insights allow users to generate an HTML template and embed it into an external website ex: Confluence. Therefore, the domain of this website need to be included in the Whitelist domain. SSL must be enabled.
- qTest Managers HTTP or HTTPS Port
- URL to access qTest Manager outside of this machine
- qTest Insights HTTP or HTTPS Port
- URL to access qTest Insights outside of this machine
- External Reporting domain i.e. Confluence
Before You Begin
What is included in the docker-deployment-4.10 package?
qtest's docker-deployment-4.10 includes the following applications. Among those, qTest Manager is the required application, simply specify more application you want to deploy (eligible application is up to your license.)
- qTest Manager 9.8.3 includes qtest and its prerequisite applications: postgres, elasticsearch, qtestlb
- qTest Session 4.2.8 includes Session and its prerequisite applications: postgres, qtestlb
- qTest Parameters 2.2.4 includes Parameters and its prerequisite applications: postgres, parameterslb
- qTest Insights 1.21.12 includes Insights and its prerequisite applications: postgres, insightslb, insightsetl
- qTest Launch 1.5.3 includes Launch and its prerequisite applications: postgres, launchlb
- qTest Pulse 9.2.2 includes Pulse and its prerequisite applications: postgres, pulselb
- qTest Scenario 3.2.0 includes Pulse and its prerequisite applications: scenariolb
To install qTest Manager and its additional applications, access the machine where Docker has been installed. Use the 'root' or a user which has been added to the docker user group, then the steps below.
Download Docker-Deployment-4.10 Package
$ wget <ENTER DOWNLOAD LINK HERE>
Extract the Package
$ tar -zxf docker-deployment-4.10.tar.gz
Configure before Deploying
$ cd docker-deployment-4.10
Configure to Deploy HTTP
Specify URL and http port of each application you want to deploy (qTest Manager is required).
APPLICATION NAME | APPEND ./CONFIGURE COMMAND WITH URL AND HTTP PORT OF YOUR APPS |
---|---|
qTest Manager | --qtest-url "[Manager URL]" --qtest-http "[qtest http port]" |
qTest Session | --sessions-url "[Session URL]" --sessions-http "[session http port]" |
qTest Insights | --insights-url "[Insights URL]" --insights-http "[insights http port]" |
qTest Parameters | --parameter-url "[Parameter URL]" --parameter-http "[parameters http port]" |
qTest Launch | --launch-url "[Launch URL]" --launch-http "<launch http port>" |
qTest Pulse | --pulse-url "[Pulse URL]" --pulse-http "<pulse http port>” |
qTest Scenario | --scenario-url "[Scenario URL]" --scenario-http "[scenario http port]" |
NOTE: if you are using server's IP address in the URL, you must use the public IP address so all the applications are able to connect to each other.
Scenario 1: Deploy qTest Manager with qTest Sessions, qTest Insights, qTest Parameters, qTest Launch, and qTest Pulse. This is applicable for Elite package.
$ ./configure --apps "postgres elasticsearch qtest qtestlb sessions sessionslb insights insightslb insightsetl mongo parameters parameterslb launch launchlb pulse pulselb scenario scenariolb" --qtest-url "http://:" --qtest-http "" --sessions-url "http://:" --sessions-http "" --insights-url "http://:" --insights-http "" --parameters-url "http://:" --parameters-http "" --launch-url "http://:" --launch-http "" --pulse-url "" --pulse-http "" --scenario-url "" --scenario-http ""
Scenario 2: qTest Manager with qTest Sessions. This is applicable for Premium package
$ ./configure --qtest-url "http://:" --qtest-http "" --sessions-url "http://:" --sessions-http ""
Scenario 3: To deploy only qTest Manager, do NOT run the configure command
The example below shows the URLs of qTest Manager, Sessions, Insights, Parameters, and Launch generated in default.in that uses a public IP address after executing the configured command, in bold.
# Generated by config configure ... # Global configs ssl_key='' ssl_cert='' ssl_ca='' qtest_url='http://34.234.18.38:8080' sessions_url='http://34.234.18.38:8081' sessions_token='QToy' # scenario_url='http://scenario:8082' insights_url='http://34.234.18.38:8000' parameters_url='http://34.234.18.38:1080' # pulse_url='http://pulse:3000' launch_url='http://34.234.18.38:80'
...
Configure to Deploy HTTPS
- Specify path to ssl-key, ssl-cert, ssl-ca
- Specify URL and https port of each application you want to deploy (qTest Manager is required)
APPLICATION NAME | APPEND ./CONFIGURE COMMAND WITH URL AND HTTPS PORT OF YOUR APPS |
---|---|
qTest Manager | --qtest-url "[Manager URL]" --qtest-https "[manager https port]" |
qTest Sessions | --sessions-url "[Session URL]" --sessions-https "[session https port]" |
qTest Insights | --insights-url "[Insights URL]" --insights-https "[insights https port]" |
qTest Parameters | --parameter-url "[Parameter URL]" --parameter-https "[parameter https port]" |
qTest Launch | --launch-url "[Launch URL]" --launch-https "<launch https port>" |
qTest Pulse | --pulse-url "[Pulse URL]" --pulse-https "<pulse https port>" |
qTest Scenario | --scenario-url "[Scenario URL]" --scenario-https "[scenario https port]" |
NOTE: if you are using server's IP address in the URL, you must use the public IP address so all the applications are able to connect to each other.
Scenario 1: Deploy qTest Manager with qTest Sessions, qTest Insights, qTest Parameters, qTest Launch, and qTest Pulse. This is applicable for the Elite package.
$ ./configure --apps "postgres elasticsearch qtest qtestlb sessions sessionslb insights insightslb insightsetl mongo parameters parameterslb launch launchlb scenario scenariolb" --ssl-key "" --ssl-cert "" --ssl-ca "" --qtest-url "https://:" --qtest-https "" --sessions-url "https://:" --sessions-https "" --insights-url "https://:" --insights-https "" --parameters-url "https://:" --parameters-https "" --launch-url "https://:" --launch-https "" --launch-url "" --launch-https "" --pulse-url "" --pulse-https "" --scenario-url "" --scenario-https ""
Scenario 2: qTest Manager with qTest Sessions. This is applicable for Premium package.
$ ./configure --ssl-key "" --ssl-cert "" --ssl-ca "" --qtest-url "https://:" --qtest-https "" --sessions-url "https://:" --sessions-https ""
Scenario 3: Deploy only qTest Manager with default https port 443.
$ ./configure --ssl-key "" --ssl-cert "" --ssl-ca "" --qtest-url "https://:" --qtest-https ""
The example below shows the URLs of qTest Manager, Sessions, Insights, Parameters, and Launch generated in default.in that uses public IP address after executing configure command, in bold.
# Generated by config configure ... # Global configs ssl_key='' ssl_cert='' ssl_ca='' qtest_url='https://34.234.18.38:443' sessions_url='https://34.234.18.38:8443' sessions_token='QToy' # scenario_url='http://scenario:8082' insights_url='https://34.234.18.38:9443' parameters_url='https://34.234.18.38:10443' # pulse_url='http://pulse:3000' launch_url='https://34.234.18.38:3443'
...
Enhanced Security Option for Sessions and Insights
During an attempted CSRF attack, user credentials may potentially be inherited and then used to maliciously perform undesirable actions, usually affecting a change of state of server. Please note that this does not result in any data theft. SSL must be enabled.
Enter this command for Sessions:
$ ./configure --sessions-security-csrf-trusted-source-pattern "<qtest-manager-domain>[:port]|<qtest-sessions-domain>[:port]"
If you are configuring an external configuration, e.g JIRA, then the JIRA URL should be whitelisted:
$ ./configure --sessions-security-csrf-trusted-source-pattern "<qtest-manager-domain>[:port]|<qtest-sessions-domain>[:port]|<jira-domain>"
For example:
$ ./configure --sessions-security-csrf-trusted-source-pattern "qtest-manager.com|sessions.com|jira.atlassian.net"
Enter this command for Insights:
$ ./configure --insights-security-csrf-trusted-source-pattern "<Whitelist domains>"
If you are configuring an external configuration, e.g Confluence, then the Confluence URL should be whitelisted:
$ ./configure --insights-security-csrf-trusted-source-pattern "<qtest-manager-domain>[:port]|<qtest-insights-domain>[:port]|<confluence-domain>"
For example:
$ ./configure --insights-security-csrf-trusted-source-pattern "qtest-manager.com|insights.com|confluence.atlassian.net"
Start the Deployment Process
- The vm.max_map_count kernel setting needs to be set to at least 262144 for ElasticSearch to work properly
$ sysctl -w vm.max_map_count=262144
- Execute this command to initially set up and start the application.
$ ./startup
The script will download the application images and qTest components to the Docker. It may take a couple of hours depending on your network connection
- Open your web browser, access qTest Manager using the URL specified above.
- Validate if it has started successfully.
- Execute these commands to set up qTest Manager as a Linux Daemon.
$ ./shutdown $ ./install
- Start the service. You may need to wait for few minutes for qTest Manager to be available.
$ systemctl start qtest
Set up qTest Applications
Please follow this guide: Configure qTest Applications to complete the remaining steps to activate your account.