2024.4 OnPremises Prerequisite Software for Windows

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

  • (Required) Install PostgreSQL 13.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
PostgreSQL 5432 (TCP)
Elasticsearch 

9200 (TCP)

9300 (if using ES Clustering)

Network File System (NFSV4) 2049 (TCP and UDP)

Install PostgreSQL on Windows

Please note, the following installation steps are for example only using Windows Server 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)

Databases should be created prior to installing qTest. If you are not using the "postgres" user, please ensure that you create the databases as the alternate superuser.

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)

For detailed instructions and information about transport layer security (TLS) configuration options for PostgreSQL, please refer to the official documentation. Please prepare CA-signed certificates and keys prior to completing this configuration.

TLS 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.