Install a flow runtime using Docker-compose
- Last UpdatedJul 15, 2026
- 2 minute read
This topic covers how to install a flow runtime using Docker-compose.
Prerequisites
You have a platform that supports the minimum requirements:
-
Docker is installed
-
Docker Compose is installed
-
Install a flow runtime using Docker-compose
-
Sign on to the Connect flows registry site: https://registry.flows.connect.aveva.com/
-
Open a terminal and enter: [sudo] docker login https://registry.flows.connect.aveva.com/
-
When prompted, enter the user name and password.
-
To locate the user name and password, open Flow manager, then select Manage and then select Flow runtimes.
-
Select the Settings icon. The Flow runtime artifacts dialog opens.
-
Select the Docker installation tab.
-
-
Scroll down in the dialog and locate the user name and password under step 1.
-
Copy this information to the clipboard.
-
From the flow runtime page, select the Register flow runtime tab.
-
-
Create docker-compose.yml
-
Before running this Docker Compose file, create a secret for encrypting persisted credentials with the commands below.
mkdir -p ./secrets
openssl rand -base64 32 > ./secrets/cfe-encryption.key
chmod 600 ./secrets/cfe-encryption.key
-
Download the file into a local folder or create it using the code sample below.
services:
flows:
image: registry.flows.connect.aveva.com/flow-runtime/flow-runtime:latest
container_name: flow-runtime
# Always restart the container if it stops or the host reboots.
restart: always
environment:
#- ApiConfiguration__Address=0.0.0.0
#- HttpConfiguration__Address=0.0.0.0
#- MqttConfiguration__Address=0.0.0.0
- MqttConfiguration__AuthenticationType=None
#- EDGENODE_API_DEFAULT_ADMIN_PASSWORD=<PASSWORD>
- SecurityConfiguration__Credentials__NodeId=<ID>
- SecurityConfiguration__Credentials__AccessKey=<KEY>
# Tell the container where to find the mounted Docker secret used for encrypting persisted credentials.
- SecurityConfiguration__CredentialEncryption__Linux__SecretFile=/run/secrets/cfe-encryption.key
# ports:
# Uncomment if external access to HTTP and/or MQTT services is needed
# Uncomment the corresponding 'Address' settings above and set an admin password
# Configure user access with the local web UI on port 9191
#- 9090:9090
#- 9191:9191
#- 8883:8883
volumes:
# Persist application data (credentials, configuration) across container restarts.
- "./data:/application/data"
# Mount the encryption secret into the container. Docker makes it available at /run/secrets/.
secrets:
- cfe-encryption.key
logging:
driver: json-file
options:
# Limit log file size to prevent disk exhaustion.
max-size: "50m"
max-file: "2"
entrypoint:
- ./Aveva.Connect.Flows.Server
# Define the secret source. Docker reads the key from the local file and mounts it securely inside the container.
secrets:
cfe-encryption.key:
# Path to the secret file on the host.
file: ./secrets/cfe-encryption.key
-
-
Configure credentials
-
Option A: Id and AccessKey
Replace <ID> and <KEY> with the values from Show Credentials.
-
Option B: Global key
For mass deployment, generate a registration key in the Key and Name Pattern tab, then replace the credential lines with the following:
- SecurityConfiguration__Registration__Key=ENTER-YOUR-GLOBAL-KEY-HERE
- SecurityConfiguration__Registration__Name=UNIQUE-NAME-HERE # Optional
Then replace:
ENTER-YOUR-GLOBAL-KEY-HERE with the registration key from the Key and Name Pattern tab.
UNIQUE-NAME-HERE (optional) with a unique runtime name using only alphanumeric characters and underscores.
-
-
Start the runtime
[sudo] docker compose up -d
The Runtime image will be downloaded from the registry and started.
-
Verify the runtime
If startup completes without errors, the runtime should appear in CONNECT Flows with a green checkmark on the Flow runtimes or Dashboard page.
Next, you can build and deploy flows on the new runtime.