2025.2 OnPremises Prerequisite Software for Windows

Use this article to install and configure prerequisite applications before you install qTest 2025.2 OnPremises on a Windows machine. These prerequisite applications apply both to a single server or load balancing server.

  • (Required) Install PostgreSQL or AWS RDS PostgreSQL13.x-16.x

    If installing PostgreSQL with SSL connections to encrypt client or server communications for increased security, a root certificate authority (root.crt) must be created and placed in application node servers with read and write permission. This certificate will be asked when configuring application with Command Line Wizard.

  • (Required) Install Elasticsearch 7.10-7.17.x

  • (Required) Run the following command to install necessary dependencies: :\qtestctl\sessions\build\node> node ../sessions/node_modules/puppeteer/install.mjs

We provide a range of supported versions for the prerequisite components so that OnPremises customers can easily maintain qTest OnPremises over time. This reduces the need for you to upgrade every prerequisite component each time you upgrade qTest to the most recent version.

Ports

Please note, that you must open the ports below prior to any self-assisted installation or upgrade.

Prerequisite applications

Product

Port

Transport Protocol

Application Protocol

Source

Destination

Configurable

PostgreSQL

5432

TCP

TCP

qTest Manager, Insights, Sessions, Parameters

Database (PostgreSQL) Server

Yes

Elasticsearch 

9200 (TCP)

9300 (if using ES Clustering)

TCP

HTTP

qTest Manager

Database (Elasticsearch) Server

Yes

Network File System (NFSV4)

2049

TCP/UDP

TCP/UDP

qTest Manager, Sessions

NFS

No

Install PostgreSQL on Windows

Please note, the following installation steps are for example only using Windows Server 2019/2022. Please refer to the instructions in the PostgreSQL official documentation for full details.

Install PostgreSQL 

Refer to the official documentation for detailed instructions for Windows installation.

Notes

  • PostgreSQL must be installed by a user with administrator permissions.

  • Complete Windows Update prior to installing PostgreSQL.

Configure PostgreSQL for Windows

After installation, there are basic configurations required for qTest applications to function.

Configuration Notes

  • In the examples, [ ] indicates a variable value that must be entered.

  • qTest does not support special characters in the PostgreSQL user password.

Change PostgreSQL Server Listen Address

# Locate postgresql.conf File

C:\Program Files\PostgreSQL\13\data\postgresql.conf

Edit the postgresql.conf file with any text editor. Change the following setting and save.

listen_address=’*’

Add Remote Access Permission

# Locate pg_hba.conf File

C:\Program Files\PostgreSQL\13\data\pg_hba.conf

Remote Access Notes

  • You may specify a single remote connection in this file or allow connections from all IP ranges.

  • Using this example, user authentication is still required when allowing connections from all IP ranges.

  • IP addresses and ranges MUST be entered in full CIDR format (0.0.0.0/0).

  • Both scram-sha-256 and md5 are supported by qTest. Please ensure you use the correct method in the pg_hba.conf file

Edit the pg_hba.conf file with any text editor. Edit or add the following row and save.

# IF NO TLS

host all all [0.0.0.0/0] scram-sha-256

# IF USING TLS

hostssl all all [0.0.0.0/0] scram-sha-256

Reload PostgreSQL Configuration

After making these configuration changes, restart PostgreSQL to load the changes.

Create qTest Databases (Windows)

It's important to create empty databases before you install qTest so that qTest can modify them during the installation process. qTest will create the table schema and indexing using the required PostgreSQL credentials.

We recommend creating and maintaining these databases as a default PostgreSQL postgres superuser. If you can't use the postgres role, you can create another user with specific priviledges.

You must create databases for the following applications so that they have a place to store their application data:

  • Manager

  • Sessions

  • Parameters

  • Pulse

Database Creation

Database Notes

  • The databases MUST be created by the superuser that qTest will use to access PostgreSQL.

  • Database names are configurable, but a simple naming scheme is recommended.

To create databases in PGAdmin, open the application (or web interface). Log in to the system as "postgres" or your superuser and right click on Databases in the left navigation pane. Select New Database, enter the name of the database, and click OK. Repeat this process for each of the four databases needed (Manager, Parameters, Sessions, and Pulse).

Configure PostgreSQL TLS (Windows)

All configurations require Certificate Signing Requests (CSRs). CSRs must be generated by your organization. TLS certificates must be signed by a valid Certificate Authority (CA). We do not support the use of self-signed certificates, and these are strongly discouraged for use with production or testing systems.

All machines that communicate with qTest applications must share the same certificate chain. This normally includes both the Intermediate and Trusted Root certificates.

Transport Layer Security (TLS) Certificates must meet the following requirements:

  • In pkcs8 format and inserted into the qTest Java Keystore.

  • Separate certificate and private key files available. Specify each file separately during installations or upgrades.

  • Has a fully qualified domain name with resolvable DNS Aliases.

  • Valid creation and expiration dates.

  • Signed by a valid CA. You may use an internal CA instead of a Public CA.

  • Complaint with RFC-5280 standards (link opens in a new window)

For detailed instructions and information about TLS configuration options for PostgreSQL, please refer to the official documentation.

TLS Configuration

Please prepare CA-signed certificates and keys prior to completing this configuration.

TLS Notes

  • You may use the default location to store certificates or choose your own.

  • Please verify the permissions and ownership of the certificate, key, and path before proceeding. This may vary depending on the environment.

  • If ONLY using TLS connections, remove any non-TLS entry made during previous steps in the pg_hba.conf file.

# Enable TLS in postgresql.conf

ssl = on

ssl_cert_file = ‘[/path/to/certificate]’

ssl_key_file = ‘[/path/to/key]’

# Enable Remote Access for TLS Users in pg_hba.conf

hostssl all all 0.0.0.0/0 scram-sha-256

Reload PostgreSQL Configuration

After making these configuration changes, restart PostgreSQL to load the changes.

Enable SSL Mode in Postgres

  1. Open the postgresql.conf file located in the Postgres data directory, and change the following value:

    ssl = on # (change requires restart) 
    ... 
    ssl_cert_file = 'path_of_cerfiticate' # (change requires restart) 
    ssl_key_file = 'path_of_private_key' 
    ...
  2. Open the pg_hba.conf file located in the Postgres data directory. Then append this line at the end of the file.

    hostssl all all [IP_Address] scram-sha-256     
    
    
    
    Eg. hostssl all all 0.0.0.0/0 scram-sha-256

Restart PostgreSQL

Run the following command to restart PostgreSQL:

 net stop postgresql-x64-9.5 && net start postgresql-x64-9.5

Elasticsearch

Please note, that the example installation below, provides the recommended install version. However, you can use a prerequisite version different than these examples as long as the prerequisite version falls within the range of supported versions listed above.

Windows

Install Elasticsearch using binary file. Official reference: https://www.elastic.co/guide/en/elasticsearch/reference/current/zip-windows.html

Since 7.10, Elasticsearch provides a bundle-jdk with the installation package. It is no longer required to have JDK pre-installed. If you have already installed the Java Development Kit (JDK) on your server, we strongly recommend you uninstall it and clean the JAVA_HOME environment variable. Otherwise, it will conflict with the bundle-jdk above.

Install

  1. Download zip package from Elasticsearch past releases.

Configure

  1. Open file %ES_HOME%\config\elasticsearch.yml, and add the following line to the end of the file, to allow connections from outside of the ElasticSearch server and allow single deployment:

    network.host: 0.0.0.0

    discovery.type: single-node

Install as Windows services

  1. Open the Command prompt and navigate to %ES_HOME%\bin.

    cd C:\<path\to\elasticsearch>\bin
  2. Install Elasticsearch as a service on your Windows machine.

    elasticsearch-service.bat install
  3. Start ElasticSearch service.

    elasticsearch-service.bat start

Please refer to the official installation instructions of Elasticsearch for further information.

After you install Elasticsearch, make sure you configure the default JVM heap size for Elasticsearch.