Font Size:
Ask Joget AI

OEM Edition Installer Packaging

Introduction

This guide will help you set up everything you need to build your customized OEM Edition installers. You will start by setting up your environment, then organizing your project and configuring the build process.

By the end, you will have fully working installers for both Linux and Windows that include your branding and custom changes that you have made.

Prerequisites

Warning
A bug has been fixed in Joget DX 9.0.6, where the placeholder build number is not replaced by the actual build number after compiling.

Before you begin, make sure you have already applied every necessary OEM branding or customization in oem-enterpriseweb project and successfully build the jw-community source code as explained in the Building and Deploying OEM Edition article.

This process requires stable internet connectivity to download Maven dependencies, and the following tools are installed:

  • Java JDK
  • Maven
  • Git

To verify tools are ready for use, you can check them with:

java -version
mvn -v
git --version

Set Up Windows Installer Builder

Step 1: Install NSIS (makensis)

Install NSIS to enable the generation of Windows .exe installer as part of the build process. It's a required tool for compiling wflow-install/src/main/resources/setup.nsi script into a Windows installer.

On Linux

sudo apt update
sudo apt install nsis

On Mac

brew update
brew install nsis

On Windows

Download NSIS from the official site, then install it.

Open System Properties > Environment Variables.

Then in System variables, edit the Path variable and add:

C:\Program Files (x86)\NSIS

Open up a new terminal and test the command below:

makensis -VERSION

If you can see the version, NSIS is now ready to use.

Step 2: Create a Project Folder

Create a dedicated folder for building the OEM Edition.

mkdir my-oem-repo
cd my-oem-repo

Prepare the Source Code

Step 1: oem-enterpriseweb Directory

Copy or move oem-enterpriseweb-9.0.0-958f479 project into my-oem-repo folder:

cp -r oem-enterpriseweb-9.0.0-958f479 /path/to/my-oem-repo

Then rename it to just oem-enterpriseweb.

Step 2: wflow-install and .gitignore

Copy the wflow-install folder from the jw-community source code into my-oem-repo project:

cp -r /path/to/jw-community/wflow-install /path/to/my-oem-repo

Create a .gitignore file to avoid committing build artifacts:

cat <<EOF > .gitignore
/*/target
/*/downloads
/*/builds
EOF

In my-oem-repo folder, you should now have similar content as below:

my-oem-repo/
├── oem-enterpriseweb/
├── wflow-install/
└── .gitignore

Step 3: /wflow-app

Replace ../wflow-app with ../oem-enterpriseweb in my-oem-repo/wflow-install/pom.xml

sed -i 's|\.\./wflow-app|../oem-enterpriseweb|g' /path/to/my-oem-repo/wflow-install/pom.xml
 

Build the Installers

Step 1: Initialize Git

This is required because the build process uses Git commit metadata (such as the short hash) to populate the OEM Build Hash.

In a terminal, execute the following commands:

cd my-oem-repo
git init
git config user.name "Your Name"
git config user.email "you@example.com"
git add .
git commit -m "Initial commit"

Step 2: Run Maven Build

Run the following command:

mvn clean install -f ./wflow-install/pom.xml

If all goes well, the installers will be generated at my-oem-repo/wflow-install/builds/ folder. You’ll see files like:

  • joget-linux-9.0.0-958f479.tar.gz
  • joget-windows-9.0.0-958f479.zip
  • joget-setup-9.0.0-958f479.exe

Where 958f479 is the short Git commit hash.

Troubleshooting

ZLIB or Corrupt Download Errors

If Maven fails with an error like:

Unexpected end of ZLIB input stream

Delete the corresponding corrupted files, for example:

rm wflow-install/downloads/apache-tomcat-*.tar.gz
rm wflow-install/downloads/jre*.tar.gz

Then rebuild:

mvn clean install -f ./wflow-install/pom.xml

JDBC Driver Missing on First Joget Launch (Windows)

You might see this error on the first time of starting up installed OEM Edition:

Unable to load class: com.mysql.cj.jdbc.Driver

Simply fix it by downloading the correct mysql-connector-java-<version>.jar from the MySQL website, then move the jar file to:

C:\Joget-DX9\apache-tomcat-11.0.10\webapps\jw\WEB-INF\lib

Then restart the Joget instance to load up the new jar file.

Summary

By following this guide, you’ve successfully set up a well-structured and repeatable process for building custom OEM Edition installers for both Linux and Windows platforms.

Why This Matters?

Fast iteration: You can make changes and quickly regenerate new installers without redoing setup steps.

Consistent output: Each build is tagged with the exact version and Git hash, ensuring traceability.

Cross-platform support: Both Linux and Windows installers are covered in a single process.

Custom branding: Your OEM changes are cleanly integrated, packaged, and distributed in the final artifacts.

Keeping Up With Joget Source Code Updates

Joget’s open-source jw-community repository and OEM Edition evolve over time. To keep your OEM Edition up to date:

Watch for updates in the wflow-install folder of jw-community and oem-enterpriseweb in the OEM Edition latest package. If any changes are identified, you’ll want to mirror those changes in my-oem-repo.

Copy updated files from the latest version of wflow-install and oem-enterpriseweb while preserving your customizations.

Maintain a changelog for your own updates to make merging or comparing easier later.

Regularly test your generated installers to ensure compatibility with newer Joget versions and other components like MariaDB, Tomcat, or Java JDK.

Created by Sahir Last modified by Debanraj Ravindran on Apr 24, 2026