Open Source · BPMN 2.0 · Node.js

From BPMN diagram to
running workflow

BPMN Server by OmniWorkflow. Design, execute, and monitor business processes inside your Node.js application. Your application. Your workflows. Your control.

Try the live demo Install →
bpmn-server modeler screenshot
Works with 🟢 Node.js 🍃 MongoDB 📐 BPMN 2.0 🎨 bpmn.io 🔷 TypeScript 🔑 Passport.js

See it. Run it. Build with it.

Choose the fastest path from an idea to your first running process.

Everything you need to automate workflows

From simple approvals to complex long-running processes — bpmn-server handles the hard parts.

🗺️

Visual Modeler

Design workflows in a browser-based BPMN 2.0 modeler powered by bpmn.io — no XML editing required.

⚡

BPMN Workflow Execution

Tasks, gateways, events, sub-processes, timers, messages and signals for real process execution.

💾

Built-in Persistence

Store process state with MongoDB or SQLite; use in-memory storage for evaluation and tests (not durable across restarts).

🔐

User Tasks & Security

Assign tasks to users or groups, enforce candidate rules, and integrate with your existing auth via Passport.js.

🔁

Long-running Processes

With persistent storage configured, process instances can resume after restarts and wait for users or external events.

🌐

REST API & Web App

Production-ready Express web app with full REST API, modeler UI, task lists, and instance detail views.

📡

Messages & Signals

Coordinate across process instances with BPMN message flows, signal broadcasts, and event correlation.

🧩

Embeddable & Extensible

Drop into any Node.js app with a few lines of code. Extend with custom delegates and application listeners.

☁️

Google OAuth Ready

Built-in Google OAuth support — users sign in with their Google account, no password management needed.

From model to running process in minutes

bpmn-server bridges the gap between BPMN diagrams and production workflow execution.

1

Design your process

Open the built-in modeler, drag and drop BPMN elements, and define data fields, assignments, and scripts in the property panel.

2

Save & publish

Save your model to the server. bpmn-server stores the BPMN XML and makes it instantly available for execution.

3

Start instances

Call engine.start('myProcess', data) or hit the REST API. A new instance is created and persisted automatically.

4

Users act on tasks

User tasks appear in task lists. Users fill in forms, assign work, and invoke tasks — all tracked in the datastore.

5

Query & monitor

Use the Data API to query instance state, view history, replay from save points, and track process metrics.

Run it your way

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.

Your machine

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.

Docker

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 →

Linux server

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 →

Ready to automate your workflows?

Open source, MIT licensed, runs on your own infrastructure. No vendor lock-in.