Local runtime Docker setup
This topic describes how to configure the local runtime Docker image for setting up a local runtime.
Before you begin
-
Ensure that you have downloaded the Flow Docker image.
-
Ensure that you have copied and have access to the local runtime token created when Creating a local runtime connection in Boomi Flow.
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_TOKENenvironment setting. -
If you are using regions in combination with a local runtime, the optional
FLOW_API_URLsetting 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.
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
| Setting | Required? | Description |
|---|---|---|
| BASE_URL | The 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/subdirectoryFor 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_TOKEN | The 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_KEY | This 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_URL | If 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.comIf 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_OFFLINE | Starts 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_URLS | The 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.
| Setting | Required? | Description |
|---|---|---|
| Application Name | This setting is required to identify the specific application. This setting should not be changed from the default "(0)" value. For example: Application Name={0}; | |
| Database | The name of the database to use for the runtime. For example: Database=flow; | |
| Host | The 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; | |
| Keepalive | The 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; | |
| Port | The port to use for database connections. For example: Port=5432; | |
| Password | The password to use when connecting to the database. For example: Password=QUDFTo3YaQcFGRVgY2p8Ww4uift; | |
| SSL Mode | Whether 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 Certificate | Whether 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; | |
| Username | The user name to use when connecting to the database. For example: Username=postgres | |
| Minimum Pool Size | The 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 Size | The 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.
| Setting | Required? | Description |
|---|---|---|
| MANYWHO_BLOBSTORAGE_HOSTNAME | The hostname or endpoint URL of the S3-compatible storage service. | |
| MANYWHO_BLOBSTORAGE_PORT | The port used to connect to the storage service. | |
| MANYWHO_BLOBSTORAGE_ACCESSKEY | The access key (username equivalent) for authenticating with the storage service. | |
| MANYWHO_BLOBSTORAGE_SECRETKEY | The secret key (password equivalent) for authenticating with the storage service. |
Runtime service - Cloud Syncing settings
| Setting | Required? | Description |
|---|---|---|
| MCR_PING_INTERVAL_SECONDS | The amount of time between pings that the MCR node will make to the Flow cloud to sync State and Tenant data. | |
| STATE_SYNC_BATCH_SIZE | Amount of States to sync with the Flow cloud on every ping. Minimum 0 = no syncing. Maximum = 1000. Default = 200. |
Observability
| Setting | Required? | Description |
|---|---|---|
Otlp_Endpoint | Specifies the endpoint for the APM (Application Performance Monitoring). Enabling this setting turns on OTLP (OpenTelemetry Protocol). | |
Otlp_Headers | Allows you to set headers. For example: apikey=<apikey>. | |
Otlp_ServiceName | Defines the name for the service to which the data is assigned. If not specified, it defaults to FlowPlatformMcr. | |
Otlp_Environment | Sets the deployment.environment.name tag, which specifies the environment. For example: staging. |