Skip to main content
Feedback

Local runtime Docker setup

This topic describes how to configure the local runtime Docker image for setting up a local runtime.

Before you begin

Setting up the Docker local runtime

  • To set up a local runtime, one or more local runtime nodes will need to be started.

  • The runtime nodes must be able to access a PostgreSQL database, using a user with permission to create, modify and drop tables in the specified database and schema.

  • The runtime nodes must be able to access the following URLs:

  • The runtime nodes do not need to be publicly accessible to the internet. Flow will never try to connect to them via an inbound connection.

  • The local runtime token must be provided in the INSTALLATION_TOKEN environment setting.

  • If you are using regions in combination with a local runtime, the optional FLOW_API_URL setting must be provided, with the appropriate matching regional URL. Refer to Flow regions.

Example Docker Compose YAML

The following example docker-compose.yml illustrates how to use Docker Compose to run a base configuration of the local runtime node and database services. Docker Compose is a tool for defining and running multi-container Docker applications; with Docker Compose, a YAML file is used to configure your application’s services.

To learn more about Docker Compose, refer to the official Docker Compose documentation.

caution

This example is not suitable for a production deployment, as the database is not persistent and there is only one runtime node, but it is provided to show the minimum required configuration. Users should consult with their appropriate System Administrator for a production-like deployment environment (for example utilizing a High-availability database, multiple runtime nodes behind a load balancer, and so on.)

#This example Docker Compose file uses the latest Postgres, Boomi Flow to run a local runtime within a testing environment. 
#This does not include a web server. Players should be placed as .html files on the webserver or embedded in the content managment system. To learn more about embedding players, see /csh?context=GUID-8145909a-9fec-40f2-a4a4-4e305f06b1a4.
#Docker Compose is a tool for defining and running multi-container Docker applications. Compose allows you to use a YAML file to configure your application's services.
#Using a single command, you can then create and start all the services from your configuration. For example, 'Docker-compose up'.
#To learn more about all the features of Docker Compose see https://docs.docker.com/compose/.

version: "3.8" # This is the Docker Compose version. See https://docs.docker.com/compose/compose-file/.
services: # Docker Compose is a tool for defining and running multi-container Docker applications. Compose allows you to use a YAML file to configure your application's services.

database: # Learn more about using the Docker Postgres image at https://hub.docker.com/_/postgres.
image: postgres:latest # This command will use postgres:latest.
environment:
- POSTGRES_DB=flow # This optional environment variable can be used to define a different name for the default database that is created when the image is first started.
- POSTGRES_PASSWORD=a-secure-password # This environment variable is required for you to use the PostgreSQL image. It must not be empty or undefined.
ports:
- "5432" # The port to use for the Boomi Flow runtime connection.
volumes:
- ./data:/var/lib/postgresql/data #Used to persist the database volume. To learn more about Docker volumes, see https://docs.docker.com/storage/volumes/.

runtime: # Learn more about the Boomi Flow image at https://hub.docker.com/r/boomi/flow.
image: boomi/flow:latest # This will use boomi/flow:latest.
depends_on:
- database # Express dependency between services, expresses start order (and implicitly image pulling order), i.e. the database service above.
environment:
- BASE_URL=http://localhost:8080 # The base URL of the API, used when generating absolute URLs.
- DATABASE_CONNECTION_STRING=Application Name={0};Database=flow;Host=database;Keepalive=300;Minimum Pool Size=5;Maximum Pool Size=50;Password=admin;Port=5432;SSL Mode=Prefer;Trust Server Certificate=True;Username=postgres # A postgres connection string to runtime database
- INSTALLATION_TOKEN=12345abcde # The unique local runtime token used to install a runtime.
- FLOW_API_URL=https://eu.flow-prod.boomi.com
ports:
- "80:80" # Expose 80 on host and send to 80 in container.
restart: unless-stopped # Unless-stopped restarts the container only when any user executes a command to stop the container, not when it fails because of an error.

Runtime service environment - general settings

SettingRequired?Description
BASE_URLRequired RequiredThe base URL of the API, used when generating absolute URLs, such as OAuth 2.0 redirect URIs and callback URIs for services.

For example:
BASE_URL=https://flow.yourcompany.com:8080/subdirectory

For example, if the port that the container is being exposed on is set to '1234:80' in the docker compose file, this would be:
BASE_URL=https://localhost:1234
INSTALLATION_TOKENRequired RequiredThe unique local runtime token used to install a runtime. This value is obtained during the process of Creating a local runtime connection in Boomi Flow.

For example:
INSTALLATION_TOKEN=mfZXe7RPbnc0iEu9eoud6X+ZQjneuui=
AUTHENTICATED_USER_TOKEN_ENCRYPTION_KEYRequired RequiredThis string has to be of 128 characters and can be generated randomly, similar to a password. It is specifically utilized when Enhanced Token Security is enabled in an Identity Provider.
FLOW_API_URLOptional OptionalIf you are using a different region to the main US region, specify the alternative cloud platform regional URL.

For example, if you are using the Europe (EU) region:
FLOW_API_URL=https://eu.flow-prod.boomi.com

If this optional setting is not included in the docker file, it defaults to https://flow.boomi.com.

To learn more about using regions, and to view a list of regional URLs, refer to Regions.
FLOW_OFFLINEOptional OptionalStarts the runtime up in an 'offline' mode. This means that no network communication is attempted with the cloud platform. This setting is useful if your runtime has already been installed online and has flows deployed, but you wish to move it to an internal network or a location with poor external connectivity. This setting allows the runtime to operate 'offline', and run the flows that have already been deployed to it.

For example, you may have connectivity to the cloud platform in your test environment, but require an 'offline' mode in your production environment as it requires/has no connectivity to the cloud platform.

- Set to 'true' to start up the runtime in 'offline' mode, i.e. no network communication is attempted with the cloud platform.
- Set to 'false' or leave unspecified to start the runtime in normal 'online' mode, i.e. it will initially connect to the cloud platform. This is the default mode.

For example:
FLOW_OFFLINE=true
ASPNETCORE_URLSOptional OptionalThe ASPNETCORE_URLS environment variable helps you to configure the port that the Flow runs on inside the container for incoming HTTP requests. It defines the endpoints (URLs) that the ASP.NET Core application will bind to, allowing it to accept incoming requests.
Format: The value of ASPNETCORE_URLS should be in the format: http://+:<Port>
- The http://+ indicates that the application will listen on all network interfaces.
- Replace <Port> with the desired port number. For example: http://+:22336

Runtime service environment - database settings

Database connection information is defined in the DATABASE_CONNECTION_STRING setting.

SettingRequired?Description
Application NameRequired RequiredThis setting is required to identify the specific application. This setting should not be changed from the default "(0)" value.

For example:
Application Name={0};
DatabaseRequired RequiredThe name of the database to use for the runtime.

For example:
Database=flow;
HostRequired RequiredThe hostname or IP address that will be used for database connections. It can point to a load balancer, or could be a virtual IP but it must resolve to the current database primary.

For example:
Host=flow-database.company.internal;
KeepaliveRequired RequiredThe time (in seconds) to maintain the database connection for, used to prevent the database connection being closed due to an idle time-out for example.

For example:
Keepalive=300;
PortRequired RequiredThe port to use for database connections.

For example:
Port=5432;
PasswordRequired RequiredThe password to use when connecting to the database.

For example:
Password=QUDFTo3YaQcFGRVgY2p8Ww4uift;
SSL ModeRequired RequiredWhether SSL encryption is used, depending on server support.
Refer to the Npgsql documentation for more information:
- Npgsql Connection String Parameters
- Npgsql Security and Encryption

For example:
SSL Mode=Prefer;
Trust Server CertificateRequired RequiredWhether to trust the server certificate without validation.
Refer to the Npgsql documentation for more information:
- Npgsql Connection String Parameters
- Npgsql Security and Encryption

For example:
Trust Server Certificate=True;
UsernameRequired RequiredThe user name to use when connecting to the database.

For example:
Username=postgres
Minimum Pool SizeOptional OptionalThe minimum size of the database connection pool for the node.
This setting is optional, with a default setting of '5'.

For example:
Minimum Pool Size=5;
Maximum Pool SizeOptional OptionalThe maximum size of the database connection pool for the node.
This setting is optional, with a default setting of '50'.

For example:
Maximum Pool Size=50;

Runtime service - storage settings

These parameters define the connection to an S3-compatible storage API. Flow uses this connection when generating PDFs with the PDF connector. If you do not use the PDF connector, these parameters are optional.

SettingRequired?Description
MANYWHO_BLOBSTORAGE_HOSTNAMEOptional OptionalThe hostname or endpoint URL of the S3-compatible storage service.
MANYWHO_BLOBSTORAGE_PORTOptional OptionalThe port used to connect to the storage service.
MANYWHO_BLOBSTORAGE_ACCESSKEYOptional OptionalThe access key (username equivalent) for authenticating with the storage service.
MANYWHO_BLOBSTORAGE_SECRETKEYOptional OptionalThe secret key (password equivalent) for authenticating with the storage service.

Runtime service - Cloud Syncing settings

SettingRequired?Description
MCR_PING_INTERVAL_SECONDSOptional OptionalThe amount of time between pings that the MCR node will make to the Flow cloud to sync State and Tenant data.
STATE_SYNC_BATCH_SIZEOptional OptionalAmount of States to sync with the Flow cloud on every ping. Minimum 0 = no syncing. Maximum = 1000. Default = 200.

Observability

SettingRequired?Description
Otlp_EndpointRequired RequiredSpecifies the endpoint for the APM (Application Performance Monitoring). Enabling this setting turns on OTLP (OpenTelemetry Protocol).
Otlp_HeadersRequired RequiredAllows you to set headers. For example: apikey=<apikey>.
Otlp_ServiceNameOptional OptionalDefines the name for the service to which the data is assigned. If not specified, it defaults to FlowPlatformMcr.
Otlp_EnvironmentOptional OptionalSets the deployment.environment.name tag, which specifies the environment. For example: staging.
On this Page