Deployment guide

Flowable

Overview

Flowable is an open-source engine for workflow and Business Process Management. It executes BPMN 2.0 processes, DMN decision tables and CMMN case models, and ships a complete web UI. The Modeler designs processes and decisions, the Task application handles assigned tasks, the Admin application monitors the engines, and the IDM application manages users and groups.

The SecureAnyCloud image installs Flowable 6.8.1 on an Eclipse Temurin 17 JRE and runs it as a systemd service behind an nginx reverse proxy on port 80. It is backed by a local PostgreSQL database whose data directory lives on a dedicated Azure data disk.

What you get:

  • Flowable 6.8.1 (the full Flowable UI: Modeler, Task, Admin and IDM) running on an Eclipse Temurin 17 JRE
  • The Flowable UI published on port 80 via nginx (reverse-proxying the loopback-bound application on 127.0.0.1:8080), with a static unauthenticated /health endpoint
  • A local PostgreSQL database (flowable) whose data directory lives on a dedicated Azure data disk at /var/lib/flowable
  • A unique admin password generated on the first boot of every VM, written to a root-only credentials file
  • flowable.service, nginx.service and postgresql.service as systemd units, enabled and active
  • 24/7 SecureAnyCloud support

Prerequisites

  • An active Azure subscription, an SSH key pair, and a VNet and subnet in the target region.
  • Standard_B4ms (4 vCPU / 16 GiB RAM) is a good starting point for the Flowable UI plus its local PostgreSQL.
  • NSG inbound: allow 22/tcp from your management network and 80/tcp for the Flowable UI. To expose the UI publicly, front it with TLS (see Enabling HTTPS).

Step 1 - Deploy from the Azure Marketplace

Sign in to the Azure Portal, choose Create a resource, search the Marketplace for Flowable by SecureAnyCloud, and select Create.

On Basics, pick your subscription, resource group, region and size. Under Administrator account, choose SSH public key and paste your key. Under Inbound port rules, allow SSH (22) and HTTP (80). Review the dedicated data disk on the Disks tab, then select Review + create and Create.

Step 2 - Deploy from the Azure CLI

Accept the Marketplace terms once per subscription, then create the VM:

# Accept the Marketplace terms once per subscription (required before the first CLI deploy)
az vm image terms accept --urn sac1647283583153:flowable-ubuntu-24-04:default:latest
az vm create \
  --resource-group <your-rg> \
  --name flowable \
  --image sac1647283583153:flowable-ubuntu-24-04:default:latest \
  --size Standard_B4ms \
  --admin-username azureuser \
  --ssh-key-values ~/.ssh/id_ed25519.pub \
  --vnet-name <your-vnet> --subnet <your-subnet> \
  --public-ip-sku Standard
az vm open-port --resource-group <your-rg> --name flowable --port 80 --priority 1010

Step 3 - Connect to your VM

Connect over SSH:

ssh azureuser@<vm-public-ip>

Step 4 - Confirm the services are running

Check the three services:

systemctl is-active flowable.service nginx.service postgresql.service

All three report active. On first boot, Flowable generates a unique admin password, and the Flowable IDM bootstraps the admin user with it against an empty database.

Step 5 - Retrieve your admin password

First boot generates the admin password uniquely for your VM and writes it to a root-only file. Read the file:

sudo cat /root/flowable-credentials.txt

This file contains FLOWABLE_ADMIN_USER (admin), FLOWABLE_ADMIN_PASSWORD and the FLOWABLE_URL for your VM. Store the password somewhere safe, because it grants full administrative access to every Flowable application.

Step 6 - Check the health endpoint

nginx serves a static health endpoint that does not require a login and does not depend on the application being fully started. Request it:

curl -s -o /dev/null -w '%{http_code}\n' http://localhost/health

The request returns 200. The Flowable UI itself requires authentication, so the static /health endpoint is the liveness probe.

Step 7 - Sign in to the Flowable UI

Browse to http://<vm-public-ip>/flowable-ui/ (the bare / redirects there). Sign in as admin with the password from Step 5.

After you sign in, you land on the application launcher, which links to the four Flowable applications: Task App, Modeler App, Admin App and IDM App.

Step 8 - Design a process in the Modeler

Open the Modeler App to design BPMN 2.0 processes, DMN decision tables, CMMN case models and forms with the visual editor. Create a new process model, then drag start events, tasks and gateways from the palette onto the canvas and wire them together.

Step 9 - Monitor the engines in the Admin app

Open the Admin App to inspect the Process, CMMN, App, Form, DMN and Content engines: deployments, process definitions, running instances, jobs and tasks. The endpoint configuration points at the local Flowable REST API on the same VM.

Step 10 - Verify the admin login from the command line

Confirm that the admin credentials authenticate against the Flowable IDM REST API:

PW=$(sudo grep '^FLOWABLE_ADMIN_PASSWORD=' /root/flowable-credentials.txt | cut -d= -f2-)
curl -s -o /dev/null -w '%{http_code}\n' -u "admin:${PW}" http://localhost/flowable-ui/api/idm/users/admin

The command returns 200 for the correct password. A wrong password returns 401.

Data storage on the dedicated data disk

Flowable's state lives in a local PostgreSQL database named flowable. The PostgreSQL data directory is relocated onto a dedicated Azure data disk mounted at /var/lib/flowable (the cluster data lives under /var/lib/flowable/pgdata). Your process definitions, running instances, decision tables and user data therefore ride on the data volume and survive image and instance maintenance.

Check the data disk:

df -h /var/lib/flowable

The Flowable application binds to loopback only (127.0.0.1:8080). nginx on port 80 is the single public listener and reverse-proxies the Flowable UI.

Enabling HTTPS

To expose Flowable publicly, terminate TLS in front of it. Point a DNS record at the VM's public IP, then install a certificate with Certbot's nginx plugin. Flowable is then served over HTTPS.

Certbot prompts interactively for your email and domain, so consult the Certbot documentation for the exact certbot --nginx invocation for your domain.

Maintenance

  • Service status: systemctl status flowable.service shows the Flowable application, and systemctl status postgresql.service shows the database.
  • Logs: run journalctl -u flowable.service for the Flowable application logs.
  • Restart: run sudo systemctl restart flowable.service after configuration changes under /etc/flowable.
  • Backups: back up the flowable PostgreSQL database with pg_dump and snapshot the /var/lib/flowable data disk.
  • OS updates: the image ships with unattended security updates enabled.

Support

SecureAnyCloud publishes this image and provides 24/7 support for it. Flowable is a trademark of Flowable AG. This image bundles the open-source Flowable distribution (Apache License 2.0) and is not affiliated with or endorsed by Flowable AG.

Deploy on Azure

Launch Flowable on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.

View this image

Need Help?

Our support team is available 24/7.

sales@secureanycloud.com

Deploy on Azure