Install ThingWorx (Ubuntu/RHEL)
1. Create /ThingworxStorage and /ThingworxBackupStorage directories. If you haven’t already done so, create the /ThingworxPlatform directory as well:
$ sudo mkdir /ThingworxStorage /ThingworxBackupStorage /ThingworxPlatform
2. Change owner and access permissions of /ThingworxPlatform, /ThingworxStorage and /ThingworxBackupStorage. Without these permissions, the server will fail to start.
$ sudo chown tomcat8.5:tomcat8.5 /ThingworxStorage /ThingworxBackupStorage /ThingworxPlatform
$ sudo chmod 775 /ThingworxStorage /ThingworxBackupStorage /ThingworxPlatform
3. If you have not already done so, obtain the Thingworx.war file from PTC Software Downloads.
4. Move the Thingworx.war to $CATALINA_HOME/webapps.
$ sudo mv Thingworx.war $CATALINA_HOME/webapps
$ sudo chown tomcat8.5:tomcat8.5 $CATALINA_HOME/webapps/Thingworx.war
$ sudo chmod 775 $CATALINA_HOME/webapps/Thingworx.war
5. Place the platform-settings.json in the ThingworxPlatform folder.
6. If you are using H2 as a database perform this step. If you are not using H2 as a database, go to the next step. Add a username and password for H2 in the platform-settings.json file. See platform-settings.json Configuration Details for more information.
* 
ThingWorx connections to the H2 database require a username and password defined by the user, or the server will not start. This design fully mitigates any potential vulnerability represented by CVE-2018-10054.
},
"PersistenceProviderPackageConfigs":{
"H2PersistenceProviderPackage":{
"ConnectionInformation":
{
"password": "<addsecurepassword>",
"username": "twadmin"
}
},
7. Configure the Administrator password:
Add the following AdministratorUserSettings section (in PlatformSettingsConfig) to your platform-settings.json file along with a password that is at least 14 characters long. Reference platform-settings.json Configuration Details for more information on placement. See Passwords for additional information on setting passwords. Do not copy and paste the sample below, as it may cause bad formatting in your platform-settings.json. Instead, click here and copy from the file.

{
"PlatformSettingsConfig": {
"AdministratorUserSettings": {
"InitialPassword": "changeme"
}
}
}
* 
If Tomcat fails to start and reports the error message: Check the InitialPassword setting in the AdministratorUserPassword section in platform-settings.json..., check the following:
The password setting exists in platform-settings.json
The password is valid (14 or more characters by default)
The platform-settings.json file is formatted correctly - bad formatting could lead to errors
8. Enable extension import. By default, extension import is disabled for all users.
Add the following to the platform-settings.json file. Update the following ExtensionPackageImportPolicy parameters to true to allow extensions to be imported. See Importing Extensions for best practices on configuration.
"ExtensionPackageImportPolicy": {
"importEnabled": <true or false>,
"allowJarResources": <true or false>,
"allowJavascriptResources": <true or false>,
"allowCSSResources": <true or false>,
"allowJSONResources": <true or false>,
"allowWebAppResources": <true or false>,
"allowEntities": <true or false>,
"allowExtensibleEntities": <true or false>
},
9. Configure licensing:
Open the platform-settings.json file and add the following to the PlatformSettingsConfig section (reference platform-settings.json Configuration Options for more information on placement.)
* 
If you are performing a disconnected installation (no internet access), you do not need to add to the platform-settings.json file. Refer to the Licensing Guide for disconnected sites and skip this step.
"LicensingConnectionSettings":{
"username":"PTC Support site user name",
"password":"PTC Support site password"
}
* 
If the settings are filled out incorrectly or if the server can’t connect, a License Request text file (licenseRequestFile.txt) is created in the ThingworxPlatform folder. In this scenario, a license must be created manually. (If it is not created, ThingWorx will start in limited mode. Limited mode does not allow you to persist licensed entities to the database. Licensed entities are Things, Mashups, Masters, Gadgets, Users, and Persistence Providers).
More information on obtaining a ThingWorx disconnected site license through our License Management site can be found in the the Licensing Guide for disconnected sites (no connection to PTC Support portal).
10. Encrypt the license server password by following the steps in Encrypting Passwords.
11. If you are using Azure SQL as your database, follow these steps to download the JDBC driver. Skip this step if you are not using Azure SQL.
a. Go to the Azure portal and navigate to your ThingWorx database.
b. Select Connection strings.
c. Select the JDBC tab.
d. Select Download Microsoft JDBC Driver for SQL Server.
e. Select Microsoft JDBC Driver 6.0 for SQL Server.
f. Extract and copy the downloaded binary in your ThingWorx VM to your Tomcat lib directory.
12. Start Tomcat.
(UBUNTU) sudo service tomcat8.5 start

(RHEL) $ sudo systemctl start tomcat
Verify that a license file (successful_license_capability_response.bin) is created in the ThingworxPlatform folder.
13. To launch ThingWorx, go to http://<servername>:<port>/Thingworx in a Web browser.
14. Change the default password:
a. In Composer, select Administrator > Change Password.
b. In the Change Password window, enter Current Password, New Password, and Confirm Password.
* 
The password, which should not be easily guessed or a known, common password, is recommended to be at least 14 characters in length and should include a mix of uppercase and lowercase letters, numbers, and special characters.
c. Delete the initial password from the platform-settings.json file.
15. Select Done.
16. (OPTIONAL STEP) To determine the status of your license, open the Monitoring>Subsystem>Licensing Subsystem Settings in Composer to confirm the list of features (licensed entities) included with the license. If there are no licensed entities present, you are in limited mode.
Was this helpful?