Installation Guide

The architecture of Open BPMN makes it possible to run the modeller on various IDEs and platforms. It can be installed on different IDEs such as Visual Studio Code, Eclipse IDE, Eclipse Theia or it can be run as a standalone web application.

Install in Visual Studio Code

To run Open-BPMN in Visual Studio Code you can install the Open BPMN Extension. Just go to ‘Extensions’ and search for ‘Open-BPMN’

Note: The Open-BPMN VS Code extension includes the Imixs-Workflow BPMN Extensions. This makes it possible to model plain BPMN models as also workflow models for Imixs-Workflow.

Run With Docker

Open-BPMN can also be run as a Web Application in a Docker Container. This solution includes the Eclipse Theia Platform. To run Open-BPMN with docker just start a local Docker container:

$ docker run -it --rm --name="open-bpmn" \
  -p 3000:3000 \
  imixs/open-bpmn

After starting the container the application is accessible from your Web Browser:

http://localhost:3000

Workspace Directory

The Theia Client is using a local workspace directory /usr/src/app/open-bpmn.glsp-client/workspace. The workspace directory is the place to create and edit the BPMN files. With Docker you can change the workspace directory and map it to a local directory with the Docker param -v

In the following example the workspace is mapped to the local directory /tmp/my-workspace

$ docker run -it --rm --name="open-bpmn" \
  -p 3000:3000 \
  -v /tmp/my-workspace:/usr/src/app/open-bpmn.glsp-client/workspace \
  imixs/open-bpmn

Kubernetes

You can also run Open-BPMN in a Kubernetes cluster. The following is a deplyoment yaml file that you can use as a template for your own configuration. Note also in Kubernetes you can map the workspace directory to a persistence volume.

---
###################################################
# Deployment office-demo
###################################################
apiVersion: apps/v1
kind: Deployment
metadata:
  name: modeler-app
  namespace: open-bpmn
  labels:
    app: modeler-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: modeler-app
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: modeler-app
    spec:
      containers:
      - image: imixs/open-bpmn:latest
        name: modeler-app
        imagePullPolicy: Always
        env:
        - name: TZ
          value: Europe/Berlin
        ports:
          - name: web
            containerPort: 3000
        resources:
          requests:
            memory: "128M"
          limits:
            memory: "1G"
      restartPolicy: Always


---
###################################################
# Service open-bpmn
###################################################
apiVersion: v1
kind: Service
metadata:
  name: modeler-app
  namespace: open-bpmn
spec:
  ports:
  - protocol: TCP
    name: web
    port: 3000
  selector:
    app: modeler-app

To deploy Open-BPMN in your cluster create the namespace and apply your Pod configuration:

$ kubectl create namespace open-bpmn
$ kubectl apply -f apps/open-bpmn