Installation with Docker
The document describes a simple setup with Docker to get started with Flowable.
This setup is not intended to be used in production or for load testing. Please refer to the cloud deployment for a production setup.
Prerequisites
Docker needs to be installed on your machine to use this guide. If using Docker is not an option, please check out the detailed installation guide without Docker.
As a first step it is required to authenticate to the Flowable Artifactory which is hosting the Docker images.
This can be done either with your Flowable credentials or your account and an API key. To use an API key:
go to Flowable Artifacts and select at the top right Welcome ...
, then Edit Profile
.
Unlock the settings with your password and generate a new API key.
In case you do not have credentials yet, please reach out to your contact person at Flowable (e.g. Account Executive). Alternatively, you can also try out Flowable without docker with the enterprise trial.
Once you have your credentials, open a terminal and execute:
docker login artifacts.flowable.com
This will prompt you for your username and password. After a successful login (using the API key instead of the password if you chose that option) you will see that the authentication was successful:
docker login artifacts.flowable.com
Username: <your-username>@bots.flowable.com
Password:
Login Succeeded
Docker Images
Flowable offers the following out-of-the-box docker images:
Application | Docker Image |
---|---|
Flowable Work | artifacts.flowable.com/flowable/flowable-work |
Flowable Work with chat | artifacts.flowable.com/flowable/flowable-engage |
Flowable Design | artifacts.flowable.com/flowable/flowable-design |
Flowable Control | artifacts.flowable.com/flowable/flowable-control |
The docker images can be customized with additional JARs by extending them or mounting a volume into the directory /additional-classpath/
.
Docker Compose File
To start the Flowable applications you can use Docker compose. This allows you to define all the containers and dependencies to start the containers.
The following docker-compose.yml
file uses the latest Flowable version with a postgres database and Elasticsearch:
version: '3.4'
services:
database:
image: postgres:14.2
environment:
POSTGRES_DB: flowable
POSTGRES_USER: flowable
POSTGRES_PASSWORD: flowable
volumes:
- data_db:/var/lib/postgresql/data
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.3
environment:
discovery.type: single-node
node.name: flowable-node-01
cluster.name: flowable-cluster
xpack.security.enabled: "false"
volumes:
- data_es:/usr/share/elasticsearch/data
ulimits:
memlock:
soft: -1
hard: -1
flowable-work:
image: artifacts.flowable.com/flowable/flowable-work:latest
environment:
flowable.content.storage.root-folder: /content-storage
server.servlet.context-path: /
spring.elasticsearch.uris: http://elasticsearch:9200
spring.datasource.driver-class-name: org.postgresql.Driver
spring.datasource.url: jdbc:postgresql://database:5432/flowable
spring.datasource.username: flowable
spring.datasource.password: flowable
ports:
- 8090:8080
volumes:
- data_work:/content-storage
depends_on:
- database
- elasticsearch
user: root
deploy:
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
flowable-design:
image: artifacts.flowable.com/flowable/flowable-design:latest
environment:
flowable.design.remote.authentication.user: admin
flowable.design.remote.authentication.password: test
flowable.design.remote.idm-url: http://flowable-work:8080
flowable.design.deployment-api-url: http://flowable-work:8080/app-api
flowable.design.undeployment-api-url: http://flowable-work:8080/platform-api/app-deployments
flowable.design.db-store-enabled: "true"
server.servlet.context-path: /
spring.datasource.driver-class-name: org.postgresql.Driver
spring.datasource.url: jdbc:postgresql://database:5432/flowable
spring.datasource.username: flowable
spring.datasource.password: flowable
ports:
- 8091:8080
depends_on:
- database
flowable-control:
image: artifacts.flowable.com/flowable/flowable-control:latest
environment:
flowable.common.app.idm-admin.user: admin
flowable.common.app.idm-admin.password: test
flowable.control.app.cluster-config.server-address: http://flowable-work
flowable.control.app.cluster-config.port: 8080
flowable.control.app.cluster-config.context-root: /
flowable.control.app.cluster-config.password: test
server.servlet.context-path: /
spring.datasource.driver-class-name: org.postgresql.Driver
spring.datasource.url: jdbc:postgresql://database:5432/flowable
spring.datasource.username: flowable
spring.datasource.password: flowable
ports:
- 8092:8080
depends_on:
- database
volumes:
data_db:
data_es:
data_work:
You can replace the latest
version tag of Flowable with a specific version number of Flowable.
For Flowable Design until version 3.13 and the 3.14 Angular-based Flowable Design the properties are different:
flowable.common.app.idm-admin.user: admin
flowable.common.app.idm-admin.password: test
flowable.common.app.idm-url: http://flowable-work:8080
flowable.modeler.app.deployment-api-url: http://flowable-work:8080/app-api
flowable.modeler.app.undeployment-api-url: http://flowable-work:8080/platform-api/app-deployments
server.servlet.context-path: /
spring.datasource.driver-class-name: org.postgresql.Driver
spring.datasource.url: jdbc:postgresql://database:5432/flowable
spring.datasource.username: flowable
spring.datasource.password: flowable
A list of properties to configure the applications can be found on the following pages:
Start Flowable
Once you created the docker-compose.yml
file you can execute:
docker compose up -d
To start the applications.
To applications can be stopped with docker compose down
.
This will still keep the network and persisted volumes, to remove those as well you can use docker compose down -v
.
Once everything is started you can access the following applications:
Name | URL | Username | Password |
---|---|---|---|
Flowable Design | http://localhost:8091 | admin | test |
Flowable Work | http://localhost:8090 | admin | test |
Flowable Control | http://localhost:8092 | admin | test |
The docker images do not contain a license file. To upload the license you can sign in to Flowable Design. Flowable Design will ask you to upload the license directly after the successful login.
In case you would like to add the license file automatically, you can disable the database storage. Please refer to the documentation for Flowable Work, Flowable Design, and Flowable Control. The file can be mounted as a volume into the container.