Configuring ThingWorx Flow Docker
1. Depending on your environment, in the following files search for "artifactory" and update those lines with the correct build image tags. For more information, see Building ThingWorx Docker Images.
\ThingWorx-Flow-Dockerfiles-x-x-x\ThingWorx-Platform-Flow-Dockerfiles\docker-compose-files-single\.env
Or
\ThingWorx-Flow-Dockerfiles-x-x-x\ThingWorx-Platform-Flow-Dockerfiles\docker-compose-files-ha\.env
2. The default ThingWorx Flow Docker configuration is available under various files in the \ThingWorx-Flow-Dockerfiles-x-x-x\ThingWorx-Platform-Flow-Dockerfiles\ directory. To change the default configuration, review and modify the parameters, as given in the following tables:
3. Make ThingWorx Flow work properly when self-signed certificate is used for connected applications
Starting from ThingWorx Flow 9.2.0, 9.1.5, 9.0.10, and later versions, for any application, either third party applications or other PTC applications that are connected to ThingWorx Flow and configured with a self-signed certificate, the self-signed certificate must be appended to extra.crt file.
These connected application could be connected to ThingWorx Flow as: ThingWorx Flow connectors (that is Windchill, Integrity, SAP), or as CAS/IDP (that is PingFederate, ADFS, Azure AD) that is used for OAuth communication, or as Load Balancer that is used for HA architecture.
* 
If the connected application is configured with a single CA-signed certificate, then skip the steps described below. Users will be able to use ThingWorx Flow properly.
However, if the CA-signed certificate has certificate chains, and one of its intermediate certificates is a self-signed certificate, follow the steps below for the intermediate self-signed certificate.
* 
All self-signed certificates must be 2048 bit length.
To append the certificate, follow these steps:
a. Navigate to[path on the machine]\\ThingWorx-Platform-Flow-Dockerfiles\\dockerfiles\\node\\certs\server-crt.pem and edit the server-crt.pem file.
This file will include all the content for connected applications’ self-signed certificates.
b. Save the self-signed certificate content in PEM format.
* 
You can use the Chrome browser to get the self-signed certificate in PEM format (Base 64 encoded), by exporting the self-signed certificate.
c. Copy the self-signed certificate content.
d. Repeat steps b to d for every third-party self-signed certificate.
e. Append and save the content of the self-signed certificate content to server-crt.pem file. Make sure to add a new line after each certificate.
f. Run ./makeImages .sh
g. Run ./startImages-twx-http-postgres-and-flow-postgres.sh
Parameters for a single environment for ThingWorx Flow 9.0.3 and earlier: 
Parameter
Files to Update
Variable Name
Default Value
Comments
ThingWorx host name
docker-compose-files-single\.env
THINGWORX_SERVER
twx-server
Specifies the ThingWorx Foundation server name.
docker-compose files in the
docker-compose-files-single directory
Replace twx-server
occurrences with the new host name.
ThingWorx port
docker-compose-files-single\.env
THINGWORX_PORT
8080
Specifies the ThingWorx Foundation server port.
ThingWorx Flow host name
dockerfiles\node\Dockerfile
FLOW_HOST
flow-ux-static
Specifies the ThingWorx Flow server name. This is the NGINX server name entry point.
dockerfiles\nginx\Dockerfile
docker-compose files in the
docker-compose-files-single directory
Replace flow-ux-static
occurrences with the new host name.
ThingWorx Flow port
dockerfiles\nginx\Dockerfile
NGINX_PORT
443
Specifies the ThingWorx Flow server port. This is the NGINX server port entry point.
docker-compose files in the
docker-compose-files-single directory
443:443 under flow-ux-static.
To update this value,
modify the number on the left only.
RabbitMQ user name
docker-compose-files-single\security-common\keys.json
QUEUE.ADAPTERS.AMQP.CONFIG.credentials
Specifies the RabbitMQ username.
dockerfiles\rabbitmq\Dockerfile
RABBITMQ_USER
dockerfiles\rabbitmq\definitions.json
"name" and "user"
* 
Make sure that name, user, and password parameters are same as RabbitMQ username and password.
docker-compose files in the
docker-compose-files-single directory
RABBITMQ_USERNAME
RabbitMQ password
docker-compose-files-single\security-common\keys.json
QUEUE.ADAPTERS.AMQP.CONFIG.credentials
Specifies the RabbitMQ password.
dockerfiles\rabbitmq\Dockerfile
docker-compose files in the
docker-compose-files-single directory
RABBITMQ_PASSWORD
dockerfiles\rabbitmq\definitions.json
"password"
* 
Make sure that name, user, and password parameters are same as RabbitMQ username and password.
PostgreSQL host name
docker-compose-files-single\.env
POSTGRES_SERVER
postgres
Specifies the PostgreSQL Flow Database server name.
docker-compose-files-single\
docker-compose-twx-http-postgres-and-flow-postgres.yml
Replace postgres
(case-sensitive) with the new host name.
PostgreSQL port
docker-compose-files-single\.env
POSTGRES_PORT
5432
Specifies the PostgreSQL Flow Database server port
PostgreSQL database name
docker-compose-files-single\.env
POSTGRES_DB
symphony
Specifies the PostgreSQL Flow Database name that is used by ThingWorx Flow.
PostgreSQL user name
docker-compose-files-single\.env
POSTGRES_USER
DB_USER
Specifies the PostgreSQL Flow Database username. A database is created, and privileges are granted to the user.
dockerfiles\flow-tools\dbinit.js
user:
PostgreSQL password
docker-compose-files-single\.env
POSTGRES_PASSWORD
Specifies the PostgreSQL Flow Database password.
dockerfiles\flow-tools\dbinit.js
pwd:
docker-compose-files-single\security-common\keys.json
MODEL_DB.connection.password
PostgreSQL SSL mode
docker-compose-files-single\.env
SSL_MODE
false
Specifies whether the connection with PostgreSQL Flow database is SSL.
Azure PostgreSQL host name
docker-compose-files-single\.env
AZURE_POSTGRES_SERVER
AZURE_POSTGRES_HOSTNAME
Specifies the Azure PostgreSQL Flow Database server name.
docker-compose-files-single\
docker-compose-twx-http-postgres-and-flow-azure.yml
Replace postgres
(case-sensitive) with the new host name.
postgres
Azure PostgreSQL port
docker-compose-files-single\.env
AZURE_POSTGRES_PORT
5432
Specifies the Azure PostgreSQL Flow Database
Azure PostgreSQL database name
docker-compose-files-single\.env
AZURE_POSTGRES_DB
thingworxflow
Specifies the Azure PostgreSQL Flow Database name that is used by ThingWorx Flow.
Azure PostgreSQL user name
docker-compose-files-single\.env
AZURE_POSTGRES_USER
AZURE_POSTGRES_USERNAME
Specifies the Azure PostgreSQL Flow Database username. A database is created, and privileges are granted to the user.
dockerfiles\flow-tools\dbinit.js
user:
Azure PostgreSQL password
docker-compose-files-single\.env
AZURE_POSTGRES_PASSWORD
AZURE_POSTGRES_PASSWORD
Specifies the Azure PostgreSQL Flow Database password.
dockerfiles\flow-tools\dbinit.js
pwd:
docker-compose-files-single\security-common\keys.json
MODEL_DB.connection.password
Azure PostgreSQL SSL mode
docker-compose-files-single\.env
AZURE_SSL_MODE
true
Specifies whether the connection with Azure PostgreSQL Flow database is SSL.
Microsoft SQL Server host name
docker-compose-files-single\.env
MSSQL_POSTGRES_SERVER
mssql
Specifies the Microsoft SQL Flow Database server name.
docker-compose-files-single\
docker-compose-twx-http-mssql-and-flow-mssql.yml
Replace mssql
(case-sensitive) with the new host name.
Do not change the value of
mssql-tools.
mssql
Microsoft SQL Server port
docker-compose-files-single\.env
MSSQL_POSTGRES_PORT
1433
Specifies the Microsoft SQL Flow Database
Microsoft SQL Server database name
docker-compose-files-single\.env
MSSQL_POSTGRES_DB
thingworx
Specifies the Microsoft SQL Flow Database name that is used by ThingWorx Flow.
Microsoft SQL Server user name
docker-compose-files-single\.env
MSSQL_POSTGRES_USER
thingworx
Specifies the Microsoft SQL Flow Database username. A database is created, and privileges are granted to the user.
dockerfiles\flow-tools\dbinit.js
user:
Microsoft SQL Server password
docker-compose-files-single\.env
MSSQL_POSTGRES_PASSWORD
Specifies the Microsoft SQL Flow Database password.
dockerfiles\flow-tools\dbinit.js
pwd:
docker-compose-files-single\security-common\keys.json
MODEL_DB.connection.password
Microsoft SQL Server SSL mode
docker-compose-files-single\.env
MSSQL_SSL_MODE
false
Specifies whether the connection with Microsoft SQL Flow database is SSL.
Parameters for a single environment for ThingWorx Flow 9.0.4 and later: 
Parameter
Files to Update
Variable Name
Default Value
Comments
ThingWorx host name
docker-compose-files-single\.env
THINGWORX_SERVER
twx-server
Specifies the ThingWorx Foundation server name.
docker-compose files in the
docker-compose-files-single directory
Replace twx-server
occurrences with the new host name.
ThingWorx port
docker-compose-files-single\.env
THINGWORX_PORT
8080
Specifies the ThingWorx Foundation server port.
ThingWorx Flow host name
docker-compose-files-single\.env
FLOW_HOST
flow-ux-static
Specifies the ThingWorx Flow server name. This is the NGINX server name entry point.
docker-compose files in the
docker-compose-files-single directory
Replace flow-ux-static
occurrences with the new host name.
ThingWorx Flow port
docker-compose-files-single\.env
NGINX_PORT
443
Specifies the ThingWorx Flow server port. This is the NGINX server port entry point.
RabbitMQ user name
docker-compose-files-single\.env
QUEUE_ADAPTERS_AMQP_CONFIG_CREDENTIALS
Specifies the RabbitMQ username.
dockerfiles\rabbitmq\Dockerfile
RABBITMQ_USER
dockerfiles\rabbitmq\definitions.json
"name" and "user"
* 
Make sure that name, user, and password parameters are same as RabbitMQ username and password.
docker-compose files in the
docker-compose-files-single directory
RABBITMQ_USERNAME
RabbitMQ password
docker-compose-files-single\.env
QUEUE_ADAPTERS_AMQP_CONFIG_CREDENTIALS
Specifies the RabbitMQ password.
dockerfiles\rabbitmq\Dockerfile
docker-compose files in the
docker-compose-files-single directory
RABBITMQ_PASSWORD
dockerfiles\rabbitmq\definitions.json
"password"
* 
Make sure that name, user, and password parameters are same as RabbitMQ username and password.
PostgreSQL host name
docker-compose-files-single\.env
POSTGRES_SERVER
postgres
Specifies the PostgreSQL Flow Database server name.
docker-compose-files-single\
docker-compose-twx-http-postgres-and-flow-postgres.yml
Replace postgres
(case-sensitive) with the new host name.
PostgreSQL port
docker-compose-files-single\.env
POSTGRES_PORT
5432
Specifies the PostgreSQL Flow Database server port
PostgreSQL database name
docker-compose-files-single\.env
POSTGRES_DB
symphony
Specifies the PostgreSQL Flow Database name that is used by ThingWorx Flow.
PostgreSQL user name
docker-compose-files-single\.env
POSTGRES_USER
DB_USER
Specifies the PostgreSQL Flow Database username. A database is created and privileges are granted to the user.
dockerfiles\flow-tools\dbinit.js
user:
PostgreSQL password
docker-compose-files-single\.env
POSTGRES_PASSWORD
Specifies the PostgreSQL Flow Database password.
dockerfiles\flow-tools\dbinit.js
pwd:
docker-compose-files-single\.env
MODEL_DB_CONNECTION_PASSWORD
PostgreSQL SSL mode
docker-compose-files-single\.env
SSL_MODE
false
Specifies whether the connection with PostgreSQL Flow database is SSL.
Azure PostgreSQL host name
docker-compose-files-single\.env
AZURE_POSTGRES_SERVER
AZURE_POSTGRES_HOSTNAME
Specifies the Azure PostgreSQL Flow Database server name.
docker-compose-files-single\
docker-compose-twx-http-postgres-and-flow-azure.yml
Replace postgres
(case-sensitive) with the new host name.
postgres
Azure PostgreSQL port
docker-compose-files-single\.env
AZURE_POSTGRES_PORT
5432
Specifies the Azure PostgreSQL Flow Database server port.
Azure PostgreSQL database name
docker-compose-files-single\.env
AZURE_POSTGRES_DB
thingworxflow
Specifies the Azure PostgreSQL Flow Database name that is used by ThingWorx Flow.
Azure PostgreSQL user name
docker-compose-files-single\.env
AZURE_POSTGRES_USER
AZURE_POSTGRES_USERNAME
Specifies the Azure PostgreSQL Flow Database username. A database is created, and privileges are granted to the user.
dockerfiles\flow-tools\dbinit.js
user:
Azure PostgreSQL password
docker-compose-files-single\.env
AZURE_POSTGRES_PASSWORD
AZURE_POSTGRES_PASSWORD
Specifies the Azure PostgreSQL Flow Database password.
dockerfiles\flow-tools\dbinit.js
pwd:
docker-compose-files-single\.env
MODEL_DB_CONNECTION_PASSWORD
Azure PostgreSQL SSL mode
docker-compose-files-single\.env
AZURE_SSL_MODE
true
Specifies whether the connection with Azure PostgreSQL Flow database is SSL.
Microsoft SQL Server host name
docker-compose-files-single\.env
MSSQL_POSTGRES_SERVER
mssql
Specifies the Microsoft SQL Flow Database server name.
docker-compose-files-single\
docker-compose-twx-http-mssql-and-flow-mssql.yml
Replace mssql
(case-sensitive) with the new host name.
Do not change the value of
mssql-tools.
mssql
Microsoft SQL Server port
docker-compose-files-single\.env
MSSQL_POSTGRES_PORT
1433
Specifies the Microsoft SQL Flow Database server port.
Microsoft SQL Server database name
docker-compose-files-single\.env
MSSQL_POSTGRES_DB
thingworx
Specifies the Microsoft SQL Flow Database name that is used by ThingWorx Flow.
Microsoft SQL Server user name
docker-compose-files-single\.env
MSSQL_POSTGRES_USER
thingworx
Specifies the Microsoft SQL Flow Database username. A database is created, and privileges are granted to the user.
dockerfiles\flow-tools\dbinit.js
user:
Microsoft SQL Server password
docker-compose-files-single\.env
MSSQL_POSTGRES_PASSWORD
Specifies the Microsoft SQL Flow Database password.
dockerfiles\flow-tools\dbinit.js
pwd:
docker-compose-files-single\.env
MODEL_DB_CONNECTION_PASSWORD
Microsoft SQL Server SSL mode
docker-compose-files-single\.env
MSSQL_SSL_MODE
false
Specifies whether the connection with Microsoft SQL Flow database is SSL.
Parameters for a High Availability environment for ThingWorx Flow 9.0.3 and earlier: 
Parameter
Files to Update
Variable Name
Default Value
Comments
HAProxy host name
docker-compose-files-ha\.env
UI_DOMAIN
TRIGGER_DOMAIN
THINGWORX_SERVER
haproxy
Specifies the High Availability Proxy server name. This is the entry point to the system after which the Load Balancer will work based on its definition about balance and availability of ThingWorx instances.
docker-compose files in the
docker-compose-files-ha directory
Replace haproxy
host name, alias and links
with the new host name.
docker-compose-files-ha\
startImages-twx-ha-and-flow.sh
Replace haproxy
occurrences with the new host name.
HAProxy port
docker-compose-files-ha\.env
FLOW_SSL_PORT
THINGWORX_PORT
8443
Specifies the High Availability Proxy server port.
docker-compose files in the
docker-compose-files-ha directory
8443:8443 under haproxy.
To update this value,
modify the number on the left only.
ThingWorx Flow host name
dockerfiles\node\Dockerfile
FLOW_HOST
flow-ux-static
Specifies the ThingWorx Flow server name.
dockerfiles\nginx\Dockerfile
docker-compose files in the
docker-compose-files-ha directory
Replace flow-ux-static
occurrences with the new host name.
ThingWorx Flow port
dockerfiles\nginx\Dockerfile
NGINX_PORT
443
Specifies the ThingWorx Flow server port.
docker-compose files in the
docker-compose-files-ha directory
443:443 under flow-ux-static.
To update this value,
modify the number on the left only.
RabbitMQ user name
docker-compose-files-ha\security-common\keys.json
QUEUE.ADAPTERS.AMQP.CONFIG.credentials
Specifies the RabbitMQ username.
dockerfiles\rabbitmq\Dockerfile
RABBITMQ_USER
dockerfiles\rabbitmq\definitions.json
"name" and "user"
* 
Make sure that name, user, and password parameters are same as RabbitMQ username and password.
docker-compose files in the
docker-compose-files-ha directory
RABBITMQ_USERNAME
RabbitMQ password
docker-compose-files-ha\security-common\keys.json
QUEUE.ADAPTERS.AMQP.CONFIG.credentials
Specifies the RabbitMQ password.
dockerfiles\rabbitmq\Dockerfile
docker-compose files in the
docker-compose-files-ha directory
RABBITMQ_PASSWORD
dockerfiles\rabbitmq\definitions.json
"password"
* 
Make sure that name, user, and password parameters are same as RabbitMQ username and password.
PostgreSQL host name
docker-compose-files-ha\.env
POSTGRES_SERVER
postgres
Specifies the PostgreSQL Flow Database server name.
docker-compose-files-ha\
docker-compose-twx-posgres-ha-and-flow-postgres.yml
Replace postgres
(case-sensitive) with the new host name.
PostgreSQL port
docker-compose-files-ha\.env
POSTGRES_PORT
5432
Specifies the PostgreSQL Flow Database server port.
PostgreSQL database name
docker-compose-files-ha\.env
POSTGRES_DB
symphony
Specifies the PostgreSQL Flow Database name that is used by ThingWorx Flow.
PostgreSQL user name
docker-compose-files-ha\.env
POSTGRES_USER
DB_USER
Specifies the PostgreSQL Flow Database username. A database is created, and privileges are granted to the user.
dockerfiles\flow-tools\dbinit.js
user:
PostgreSQL password
docker-compose-files-ha\.env
POSTGRES_PASSWORD
Specifies the PostgreSQL Flow Database password.
dockerfiles\flow-tools\dbinit.js
pwd:
docker-compose-files-ha\security-common\keys.json
MODEL_DB.connection.password
PostgreSQL SSL mode
docker-compose-files-ha\.env
SSL_MODE
false
Specifies whether connection with PostgreSQL Flow database will be SSL.
Parameters for a High Availability environment for ThingWorx Flow 9.0.4 and later: 
Parameter
Files to Update
Variable Name
Default Value
Comments
HAProxy host name
docker-compose-files-ha\.env
UI_DOMAIN
TRIGGER_DOMAIN
THINGWORX_SERVER
haproxy
Specifies the High Availability Proxy server name. This is the entry point to the system after which the Load Balancer will work based on its definition about balance and availability of ThingWorx instances.
docker-compose files in the
docker-compose-files-ha directory
Replace haproxy
host name, alias and links
with the new host name.
docker-compose-files-ha\
startImages-twx-ha-and-flow.sh
Replace haproxy
occurrences with the new host name.
HAProxy port
docker-compose-files-ha\.env
FLOW_SSL_PORT
THINGWORX_PORT
8443
Specifies the High Availability Proxy server port.
ThingWorx Flow host name
docker-compose-files-ha\.env
FLOW_HOST
flow-ux-static
Specifies the ThingWorx Flow server name.
docker-compose files in the
docker-compose-files-ha directory
Replace flow-ux-static
occurrences with the new host name.
ThingWorx Flow port
docker-compose-files-ha\.env
NGINX_PORT
443
Specifies the ThingWorx Flow server port.
RabbitMQ user name
docker-compose-files-ha\.env
QUEUE_ADAPTERS_AMQP_CONFIG_CREDENTIALS
Specifies the RabbitMQ username.
dockerfiles\rabbitmq\Dockerfile
RABBITMQ_USER
dockerfiles\rabbitmq\definitions.json
"name" and "user"
* 
Make sure that name, user, and password parameters are same as RabbitMQ username and password.
docker-compose files in the
docker-compose-files-ha directory
RABBITMQ_USERNAME
RabbitMQ password
docker-compose-files-ha\.env
QUEUE_ADAPTERS_AMQP_CONFIG_CREDENTIALS
Specifies the RabbitMQ password.
dockerfiles\rabbitmq\Dockerfile
docker-compose files in the
docker-compose-files-ha directory
RABBITMQ_PASSWORD
dockerfiles\rabbitmq\definitions.json
"password"
* 
Make sure that name, user, and password parameters are same as RabbitMQ username and password.
PostgreSQL host name
docker-compose-files-ha\.env
POSTGRES_SERVER
postgres
Specifies the PostgreSQL Flow Database server name.
docker-compose-files-ha\
docker-compose-twx-posgres-ha-and-flow-postgres.yml
Replace postgres
(case-sensitive) with the new host name.
PostgreSQL port
docker-compose-files-ha\.env
POSTGRES_PORT
5432
Specifies the PostgreSQL Flow Database server port.
PostgreSQL database name
docker-compose-files-ha\.env
POSTGRES_DB
symphony
Specifies the PostgreSQL Flow Database name that is used by ThingWorx Flow.
PostgreSQL user name
docker-compose-files-ha\.env
POSTGRES_USER
DB_USER
Specifies the PostgreSQL Flow Database username. A database is created, and privileges are granted to the user.
dockerfiles\flow-tools\dbinit.js
user:
PostgreSQL password
docker-compose-files-ha\.env
POSTGRES_PASSWORD
Specifies the PostgreSQL Flow Database password.
dockerfiles\flow-tools\dbinit.js
pwd:
docker-compose-files-ha\.env
MODEL_DB_CONNECTION_PASSWORD
PostgreSQL SSL mode
docker-compose-files-ha\.env
SSL_MODE
false
Specifies whether connection with PostgreSQL Flow database will be SSL.
Was this helpful?