ThingWorx Flow > Installing ThingWorx Flow
  
Installing ThingWorx Flow
ThingWorx Flow is released with ThingWorx 8.4.1.
You can either install ThingWorx Flow on an existing instance of ThingWorx or perform an end-to-end installation of ThingWorx and ThingWorx Flow using a single installer.
* 
If you are installing ThingWorx Flow on an existing ThingWorx installation, you must upgrade that ThingWorx instance to version 8.4.1 manually. The automatic installation of ThingWorx Flow 8.4.1 over ThingWorx 8.4.0 is not supported.
You can install ThingWorx Flow on the following operating systems with different database combinations:
Windows Server 16 with PostgreSQL 9.6
Windows Server 16 with Microsoft SQL Server 2016
Red Hat Enterprise Linux 7.6 with PostgreSQL 9.6
Red Hat Enterprise Linux 7.6 with Microsoft SQL Server 2016
* 
Note the following points:
The ThingWorx Flow installer does not support repeated execution unless all the artifacts from a previous installation are removed. Install ThingWorx Flow on a virtual machine snapshot that can be rolled back to a preinstallation state.
The ThingWorx Flow installer does not support uninstallation.
Server Requirements
The following tables provide information about the minimum system requirements for the deployment of ThingWorx and ThingWorx Flow. However, the actual sizing depends on the application and usage scenarios.
Hardware Sizing
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 ThingWorx Flow web 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 must 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 Platform. ThingWorx Flow recommends the fastest disks that you can afford, but you should not use disks slower than 10000 RPM.
Operating System
Supported Operating System (64-bit only)
Production
Windows Server 2016 or a later version (Administrator access)
Yes
Red Hat Enterprise Linux (RHEL) 7.6
Yes
Database Options
Database
Supported Versions
PostgreSQL
9.6 minimum
Microsoft SQL Server
2016
* 
A remote database is supported for ThingWorx Flow
For detailed information on the server hardware requirements for running ThingWorx in a production environment, refer to the ThingWorx System Requirements guide on the PTC Reference Documents Support site.
Installation Prerequisites
Before installing ThingWorx Flow, perform the following tasks:
1. Identify the environment where you want to deploy the components, such as a physical server, virtual server environment, public or private cloud.
2. After you decide the deployment environment, ensure that ThingWorx Platform and ThingWorx Flow prerequisites are met.
For information on ThingWorx installation prerequisites, refer to the prerequisites section in the ThingWorx Installer topic.
* 
The prerequisites for installing ThingWorx using the thingworx.war file and the installer are different. Before you install ThingWorx Flow, ensure that you have completed the prerequisites for the ThingWorx installer.
3. Download the appropriate software packages according to your operating system and database combination from the PTC Support Site.
The following installers are available under Download Software > Order or Download Software Updates > ThingWorx Platform > Release 8.4:
ThingWorx Flow on Windows Server 2016 with PostgreSQL
ThingWorx Flow on Windows Server 2016 with Microsoft SQL Server 2016
ThingWorx Flow on Red Hat Enterprise Linux 7.6 with PostgreSQL
ThingWorx Flow on Red Hat Enterprise Linux 7.6 with Microsoft SQL Server 2016
ThingWorx and ThingWorx Flow on Windows Server 2016 with PostgreSQL
ThingWorx and ThingWorx Flow on Windows Server 2016 with Microsoft SQL Server 2016
ThingWorx and ThingWorx Flow on Red Hat Enterprise Linux 7.6 with PostgreSQL
ThingWorx and ThingWorx Flow on Red Hat Enterprise Linux 7.6 with Microsoft SQL Server 2016
4. If you are installing ThingWorx Flow on an existing instance of ThingWorx, ensure that you install and configure ThingWorx Platform.
For more information on installing and configuring ThingWorx, refer to Installing and Upgrading ThingWorx.
5. Depending on the database that you have installed, ensure that you have the following values:
Database
Parameters
PostgreSQL
PostgreSQL IP Address or Host Name
PostgreSQL Port
PostgreSQL Administrator User Name
PostgreSQL Administrator Password
ThingWorx Database Login User name
ThingWorx Login Password
ThingWorx Database Name
Microsoft SQL Server
SQL Server IP Address or Host Name
SQL Server Port
SQL Server Database Instance
SQL Server Administrator User Name
SQL Server Administrator Password
ThingWorx Database Login User name
ThingWorx Login Password
ThingWorx Database Name
6. (Linux only) Ensure that you have set the following prerequisites:
Red Hat 7.5 with Administrator access
Run the following commands to enable Software Collections:
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)'
Run the following commands to enable EPEL repository:
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum localinstall epel-release-latest-7.noarch.rpm
Installing ThingWorx Flow
Complete the following steps to install ThingWorx Flow:
1. Log in as administrator.
2. Launch the appropriate installer.
3. Follow the instructions on the installer screens.
* 
In the Properties for ThingWorx Flow window, in the Hostname for ThingWorx Flow field, enter one of the following values:
Host name of the machine where you are installing ThingWorx Flow
If ThingWorx was already deployed, it is recommended to reuse the host name that been used for the ThingWorx instance.
This configuration allows users to not change their bookmarks or learn a new URL. However, you must modify the value of the name attribute in the Host tag in the server.xml file under the Tomcat installation.
The entire setup takes about 45 to 60 minutes depending on the host hardware configuration. During the final stages of installation, a console window is launched. Do not close or right-click the console window. The window closes automatically after the installation is complete.
If you want to install ThingWorx Flow on a different machine than ThingWorx, complete the following tasks:
1. Copy the ThingWorx platform_settings.json file to the host where you want to install ThingWorx Flow.
2. Install ThingWorx Flow.
3. After the ThingWorx Flow installation, copy the updated platform_settings.json file to the ThingWorx host.
4. Restart ThingWorx.
5. Run the following command to enable PORT on the ThingWorx host:
firewall-cmd --zone=public --add-port=8080/tcp --permanent && firewall-cmd --reload
Post Installation Steps for ThingWorx Flow
Before you begin using ThingWorx Flow, complete the following post installation steps:
If you have installed ThingWorx Flow on RHEL, add your <user> to the twxflow group to run pm2.
To implement custom connectors, use the Flow SDK. For more information, see Deploying Connectors.
Generate a third-party SSL certificate:
By default, the installer generates an unsigned SSL certificate for the host. Complete the following steps to change the certificate after installation:
1. Navigate to the following path:
<ThingWorx Flow Installation directory>\SSL
2. Use the orchestration.csr certificate request file to obtain a certificate from Certificate Authority.
3. Follow the Certificate Authority instructions.
4. Replace the existing orchestration.crt with the certificate generated by Certificate Authority.
Verification
To verify that ThingWorx Flow is installed correctly, launch Command Prompt as an administrator and execute the following command:
pm2 ls
The status of the following ThingWorx Flow components must be ‘online’:
flow-api
flow-engine
flow-exchange
flow-lookup
flow-oauth-server
flow-trigger
To execute a simple test flow, refer to Testing Flow Execution.
Accessing ThingWorx Flow
To access ThingWorx Flow, complete the following steps:
1. Enter the following URL in Google Chrome to access ThingWorx Flow:
https://<hostname>/Thingworx/Composer/apps/flow/, where <hostname> is the host name that you entered in the Hostname for ThingWorx Flow field while installing ThingWorx Flow. By default, this is the host name of the machine where you installed ThingWorx Flow.
2. Enter ThingWorx Platform user credentials to log in.
Accessing ThingWorx
Use the following URL to access ThingWorx Composer:
https://<hostname>/Thingworx/Composer/index.html
Depending on the value that you entered in the Hostname for ThingWorx Flow field, <hostname> is one of the following:
Host name of the machine where you are installing ThingWorx Flow
Host name of an existing ThingWorx installation
Troubleshooting
Scenario
Resolution
If the ThingWorx Flow server URL is not accessible or returns an error code 500
1. Open the settings.json file found in the orchestration-installer
folder.
2. Check the values of the protocol, host, or port parameters in orchestration section.
"orchestration": {
"url": "hostname",
"services": {
"thingworx": {
"protocol": "https",
"host": "localhost",
"port": "8443",
"platform_settings": "C:\\Program Files (x86)\\ThingWorxPostgres-8.4.1-SNAPSHOT\\ThingworxPlatform\\platform-settings.json"
}
}
},
3. If any of the values are not correct, update the values and save the file.
4. Navigate to the orchestration-installer\bin folder and depending on the operating system, run either of the following:
install.bat
install.sh
5. Restart the ThingWorx-Flow service.
6. Access the ThingWorx Flow server URL.
If the ThingWorx host is not accessible from the ThingWorx Flow virtual machine
1. Navigate to the RabbitMQ log files under the ThingWorxOrchestration\modules\RabbitMQ\log folder.
2. Open the log file and check if the following line is available in the log file:
user 'flowuser' authenticated and granted access to vhost 'orchestration'
3. If the line is not available, do the following:
Check the firewall connection on the ThingWorx virtual machine.
Ensure that the RabbitMQ port is accessible on both hosts.
Check if ThingWorx and ThingWorx Flow hosts can reach each other using the DNS name or the hostname.
You can use the log files to troubleshoot your installation. The log files are saved to the following locations:
Windows
Installation logs: C:\orchestration-installer\logs\install.log
ThingWorx Flow logs: C:\ThingWorxOrchestration\.pm2\logs\
Linux
Installation logs: /opt/orchestration-installer/logs/install.log
ThingWorx Flow logs: /opt/ThingWorxOrchestration/.pm2/logs/