Install, License, and Configure ThingWorx Navigate > Install ThingWorx Navigate (Recommended) > Prerequisites
  
Prerequisites
In this topic, you’ll find the prerequisites for ThingWorx Navigate. These include requirements for hardware sizing, software versions, the ThingWorx platform, Windchill, and web browsers. Check the Platform Support Matrix for ThingWorx Navigate for product compatibility information.
You can directly navigate to any of the following topics:
Hardware sizing
Java prerequisites and required settings for environment variables
Prerequisites for Windows Server 2016 installations
Prerequisites for Red Hat Enterprise Linux 7.6 installations
Prerequisites for enabling SSL/TLS in the installer
Hardware sizing
The following are the minimum requirements; actual sizing depends on the application and your usage scenarios. Refer to the ThingWorx Navigate Platform Sizing Guide for details.
Aspect
Value
Notes
Memory
16 GB RAM (Minimum)
Dedicated memory must be allocated to the Java VM.
CPU(s)
4
Virtualized environments may have their own terminology for specifying how many CPUs and cores are being provided. This must be considered when determining if the environment meets the minimum requirements.
Disk Space
100 GB available disk space
This size can accommodate the default application and some initial configuration data.
* 
This does not include the space required for the OS or other prerequisite software.
The total disk space required for any given application depends on the amount of configuration and runtime data that will be maintained. Customers should work with Sales and Field Enablement to estimate space needs according to their application requirements.
Disk Speed
10K RPM or faster
Speed is important if you are storing data on the ThingWorx Navigate Platform.
Java prerequisites and required settings for environment variables
Java SE Development Kit 8, Update 141 and later, 1.8.0_141–bxx (64–bit)
Before you run ThingWorx Navigate Setup, make sure that you set these environment variables:
JAVA_HOME<JDK directory>
PATH<JDK_DIRECTORY>/bin
* 
Do not set the variables to JRE.
Prerequisites for Windows Server 2016 installations
Database Prerequisites
Database Version
Local Database
Remote Database
PostgreSQL 9.4.5, 9.5.11, 9.6 and 10
PostgreSQL should be installed
Path to PostgreSQL/bin must be in the PATH environment variable.
On the machine where your postgres is installed, do the following:
Ensure PostgreSQL/bin is in the PATH environment variable of the machine where postgres is installed
Allowed connections to PostgreSQL from the ThingWorx Navigate host by updating pg_hba.conf located at \PostgreSQL\<Version>\data folder.
For example, if ThingWorx Navigate is installed on the same host as PostgreSQL, you can update pg_hba.conf to allow connections as follows:
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
On the remote machine where you want to run the ThingWorx Navigate Installer, do the following:
Install the psql client that is compatible with your PostgreSQL version.
Add the installed psql to the PATH environment variable.
Microsoft SQL Server 2016
Make sure that Microsoft SQL client (sqlcmd) is installed and is available in the PATH environment variable.
A valid Microsoft SQL client (sqlcmd) is installed and is available in the PATH environment variable.
The host on which ThingWorx Navigate is to be installed must have access to Microsoft SQL Server 2016.
After verifying these prerequisites, proceed to the Database Connection Prerequisites for Installations section.
Prerequisites for Red Hat Enterprise Linux 7.6 installations
Red Hat 7.6 with Administrator access
Software Collections enabled:
Red Hat
yum-config-manager --enable 'Red Hat Enterprise Linux Server 7 RHSCL (RPMs)'
yum-config-manager --enable 'Red Hat Enterprise Linux Server 7 Extra(RPMs)'
yum-config-manager --enable 'Red Hat Enterprise Linux Server 7 Optional (RPMs)'
yum-config-manager --enable 'Red Hat Enterprise Linux Server 7 RH Common (RPMs)'
yum-config-manager --enable 'Red Hat Enterprise Linux Server 7 Supplementary (RPMs)'
Enable EPEL repository
Red Hat (Download and install)
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum localinstall epel-release-latest-7.noarch.rpm
Database Prerequisites
Database Version
Local Database
Remote Database
PostgreSQL 9.4.5, 9.5.11, 9.6 and 10
The host on which ThingWorx Navigate is to be installed must have access to a PostgreSQL server.
PostgreSQL is installed, and the path to PostgreSQL/bin should be in the PATH environment variable.
Allow connections to PostgreSQL from the ThingWorx Navigate host by updating pg_hba.conf located at \PostgreSQL\<Version>\data folder.
For example, if ThingWorx Navigate is installed on the same host as PostgreSQL, pg_hba.conf can be updated to allow connections as follows:
$ cat /var/lib/pgsql/9.6/data/pg_hba.conf
...
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
On the machine where your postgres is installed, do the following:
Ensure PostgreSQL/bin is in the PATH environment variable of the machine where postgres is installed
Allowed connections to PostgreSQL from the ThingWorx Navigate host by updating pg_hba.conf located at \PostgreSQL\<Version>\data folder.
For example, if ThingWorx Navigate is installed on the same host as PostgreSQL, you can update pg_hba.conf to allow connections as follows:
$ cat /var/lib/pgsql/9.6/data/pg_hba.conf
...
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
On the remote machine where you want to run the installer, do the following:
Run following command to install psql client:
yum install rh-postgresql96-postgresql-syspaths
Microsoft SQL Server 2016
A valid Microsoft SQL client is installed (sqlcmd) and is available in the PATH environment variable.
Install sqlcmd.
For installation instructions, see https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools?view=sql-server-2017#RHEL. After installation, run the following:
ln -s /opt/mssql-tools/bin/sqlcmd /usr/bin/sqlcmd
The host on which ThingWorx Foundation is to be installed must have access to Microsoft SQL Server 2016.
A valid Microsoft SQL client is installed (sqlcmd) and is available in the PATH environment variable.
A Microsoft SQL user with administrator rights.
Install sqlcmd.
For installation instructions, see https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools?view=sql-server-2017#RHEL. After installation, run the following:
ln -s /opt/mssql-tools/bin/sqlcmd /usr/bin/sqlcmd
After verifying these prerequisites, proceed to the Database Connection Prerequisites for Installations section.
Database connection prerequisites for installations
PostgreSQL or Microsoft SQL database is required that can be used for ThingWorx Navigate. Create a separate database for ThingWorx Navigate. Then, create the database user with the following settings and privileges:
* 
Ensure that you have not used this database for a previous ThingWorx installation. If you want to reuse the existing database, make sure you remove all tables in that database.
For PostgresSQL
1. Create a database user with the password and set the Can login? property to Yes.
2. Create a database with the following settings:
a. Set the Allow Connections? property to Yes.
b. Set the connection limit property to -1.
c. Set the Encoding property to UTF-8.
d. Set the user created in step 1 as the database owner.
e. Grant all privileges on the database to the database owner.
3. Note the following values:
PostgresSQL IP Address or Host Name
PostgresSQL Port
ThingWorx Database Name
ThingWorx Database Username
ThingWorx Password
For Microsoft SQL
* 
When connecting to MSSQL, enter the MSSQL Server Database Instance name if you have set up more than one server instance. If not, leave this field empty. You can establish a connection using the MSSQL Server IP address and MSSQL Server Port values.
1. Create an MSSQL database and set the following configuration settings on the database.
a. Set the Collate property to Latin1_General_100_CS_AS_SC.
b. Set the following properties to ON:
a. READ_COMMITTED_SNAPSHOT
b. ALLOW_SNAPSHOT_ISOLATION
2. Create a database user and ensure the user has the following settings and privileges:
a. Create a login for the Microsoft SQL Server with an SQL Server Authentication. The password for the login is the ThingWorx Navigate Database Login Password.
b. Create a database user for that login.
c. Set the database user as the owner of the database.
d. Ensure the database user is in the “public” role.
3. Note the following values:
MSSQL Server IP Address or Host Name
MSSQL Server Port
MSSQL Server Instance
ThingWorx Database Name
ThingWorx Database Username
ThingWorx Password
Prerequisites for enabling SSL/TLS in the installer
PTC recommends using Secure Sockets Layer (SSL) or Transport Layer Security (TLS) protocol for a production environment. Perform the steps in the Prerequisites for Enabling SSL/TLS topic if you choose to set up ThingWorx Navigate with SSL/TLS.