BPMN Server by OmniWorkflow. Design, execute, and monitor business processes inside your Node.js application. Your application. Your workflows. Your control.
Start here
Choose the fastest path from an idea to your first running process.
Features
From simple approvals to complex long-running processes — bpmn-server handles the hard parts.
Design workflows in a browser-based BPMN 2.0 modeler powered by bpmn.io — no XML editing required.
Tasks, gateways, events, sub-processes, timers, messages and signals for real process execution.
Store process state with MongoDB or SQLite; use in-memory storage for evaluation and tests (not durable across restarts).
Assign tasks to users or groups, enforce candidate rules, and integrate with your existing auth via Passport.js.
With persistent storage configured, process instances can resume after restarts and wait for users or external events.
Production-ready Express web app with full REST API, modeler UI, task lists, and instance detail views.
Coordinate across process instances with BPMN message flows, signal broadcasts, and event correlation.
Drop into any Node.js app with a few lines of code. Extend with custom delegates and application listeners.
Built-in Google OAuth support — users sign in with their Google account, no password management needed.
How it works
bpmn-server bridges the gap between BPMN diagrams and production workflow execution.
Open the built-in modeler, drag and drop BPMN elements, and define data fields, assignments, and scripts in the property panel.
Save your model to the server. bpmn-server stores the BPMN XML and makes it instantly available for execution.
Call engine.start('myProcess', data) or hit the REST API. A new instance is created and persisted automatically.
User tasks appear in task lists. Users fill in forms, assign work, and invoke tasks — all tracked in the datastore.
Use the Data API to query instance state, view history, replay from save points, and track process metrics.
Install
An application on your machine, a Docker container, or a Linux server ready for production. Each signs you in as admin with a generated password; none of them ships a default one.
An application of your own with sample workflows. Node.js 20+; --memory needs no MongoDB.
npx bpmn-server init my-app --memory
cd my-app
npm run setup
npm start
# http://localhost:3000
Then npm test runs the workflows' Gherkin tests and npm run cli opens the console.
The bpmnserver/bpmn-server image with Compose. The setup asks for the port and the database: memory or MongoDB.
# Linux, macOS
curl -fLO https://raw.githubusercontent.com/bpmnServer/bpmn-server/main/docker/docker-compose.yml
curl -fLO https://raw.githubusercontent.com/bpmnServer/bpmn-server/main/docker/setup.sh
sh setup.sh
# Windows (PowerShell)
curl.exe -fLO https://raw.githubusercontent.com/bpmnServer/bpmn-server/main/docker/docker-compose.yml
curl.exe -fLO https://raw.githubusercontent.com/bpmnServer/bpmn-server/main/docker/up.cmd
.\up.cmd
Then bpmn status, bpmn logs, bpmn cli (bpmn.cmd on Windows). Docker guide →
A new Ubuntu 22.04 or 24.04 server: Node.js, MongoDB, a service and nginx, with HTTPS when you give a domain.
curl -fsSL https://raw.githubusercontent.com/bpmnServer/bpmn-server/main/deploy/install.sh \
| sudo bash -s -- --domain bpmn.example.com --email you@example.com
5–10 minutes; it ends with the address and the admin password. Without a domain, drop everything after bash. Then bpmn status, bpmn logs, bpmn password. Server guide →
Next: design a workflow that is ready for production — roles, forms, deadlines, services and tests.
Follow the tutorials → Read documentation →Open source, MIT licensed, runs on your own infrastructure. No vendor lock-in.