The goal of the project is to provide a powerful and easy-to-use business process management suite for companies and organizations. With the help of 'Imixs-BPMN', business processes can be designed within the BPMN 2.0 standard and easily adapted to the individually needs of an enterprise.
Imixs-Workflow is a free and open source technology. Therefore, this solution can be easily customized and extended with custom plugins and modules. You can find further information on the Imixs-Office-Workflow Project Site.
- Blog & News can be found on the home page.
- Documentation online documentation
- Release notes can be read here.
- Migration notes can be found here
The source code of Imixs-Office-Workflow is free available on Github. If you have any questions about how Imixs-Office-Worklfow works and how you can use it in your own project, you can ask your question on the GitHub Issue Tracker. With a pull request on GitHub you can share your ideas or improvements that you want to contribute.
To run Imixs-Office-Workflow in a local test environment you can follow the Quick-Installation Guide of Imixs-Documents. This is a good starting point if you just want to setup a local demo version. But please note that Imixs-Office-Workflow is an comprehensive open source project designed for productive enterprise use. A professional use requires a detailed planning of architecture.
In Imixs-Office workflow, you define your business process with BPMN 2.0 – “Business Process Model and Notation “. This is the common standard to model a business process. You can install the Imixs-BPMN modeling tool with the official Install Guide.
Within a BPMN Business Model you can define:
- The Process Flow
- E-Mail Notifications
- Business Rules
- Forms & Descriptions
With the concept of Custom Forms you can also build your own form elements within a BPMN model.
Imixs Software Solutions GmbH is an open source company and we are specialized in business process management solutions (BPMS). If you need professional services or consulting for your own individual software project please contact us.
Imixs-Office-Workflow is based on Maven and runs on the Jakarta EE stack. Imixs-Office-Workflow can be deployed on JBoss/Wildfly server or other Java EE application servers. To build the application from sources, run the maven install command first:
$ mvn clean install
Please check the pom.xml file for dependencies and versions. The master-branch of the project is continuously under development and is typically against the latest snapshot releases form the Imixs-Workflow project. To run a stable version please build a tagged version. To deploy the artifact the application server must provide a database pool named "java:/jdbc/office" and a security domain/realm named 'office'. See also the Imixs-Workflow Deployment Guide for further details.
Docker & Kubernetes
Imixs-Office-Workflow provides a Docker Image to run the service with Docker or a container based environment like Kubernetes. The docker image is based on the docker image imixs/wildfly which can be used for development as also for production.
For development you can run Imixs-Office-Workflow with docker-compose for testing and the development of new features. To build a new container first build the maven artefact running:
$ mvn clean install -Pdocker
To start Imixs-Office-Workflow with docker, the docker-compose file 'docker-compose-dev.yml can be used:
$ docker-compose -f docker/docker-compose-dev.yml up
Note: this command will start several containers,
- a Postgre SQL database server
- a Wildfly Server running Imixs-Office-Workflow
- a Wildfly Server running the Imixs-Admin tool
The development configuration sets a local mount point at the following location:
Make sure that this directory exits. During development new versions can easily deployed into this directory which is the auto-deployment folder of Wildfly. For further details see the imixs/wildfly docker image.
Prometheus & Grafana
Imixs-Office-Workflow provides also powerful monitoring capabilities. For this purpose you can run a docker stack providing a Prometheus and a Grafana Instance to monitor workflow processing data generated by the Imixs-Workflow engine:
$ docker-compose -f docker/docker-compose-prometheus.yml up
The monitor functions are provided by the Imixs-Prometheus-Adapter, which collects detailed processing information for process analysis and monitoring.
The docker-compose file docker-compose-ocr.yml provides a dev-setup integrating the Imixs OCR feature. In addition to the dev setup this setup runs a Apache-Tika. Attachments are automatically full text indexed in this setup.
The Apache Tika service is accessible on port number 9998
The docker-compose file docker-compose-archive.yml provides a full archive setup with a cassandra single-node cluster. This setup can be used to run and test the Imxis-Archive features.
The Imixs-Archive service is accessible on port number 8081
Docker for Production
To run Imixs-Office-Workflow in a Docker production environment the project provides several additional maven profiles:
With the profile 'docker-build' a docker container based on the current version of Imixs-Office-Workflow is created locally
$ mvn clean install -Pdocker-build
With the 'docker-push' profile the current version of Imixs-Office-Workflow can be pushed to a remote repository:
$ mvn clean install -Pdocker-push -Dorg.imixs.docker.registry=localhost:5000
where 'localhost:5000' need to be replaced with the host of a private registry. See the docker-push command for more details.
Imixs-Documents provides a base deployment configuration for Kubernetes. The setup is based on Kustomize providing a declarative object management.
To create the deployment objects from the base-deployment run:
$ kubectl apply --kustomize https://github.com/imixs/imixs-documents/kubernetes/
The service endpoint of Imixs-Documents will be published on port 8080. This basic deployment configuration assumes that a default storage class is defined within your kubernetes cluster. This storage class will be used for the database storage and the search index. You can customize the service and persistence volume configuration to your needs by using a custom setup.