Skip to content

3 General Requirements

This document will guide you through some necessary steps, which are needed to install and configure OpenEMM. It requires a little knowledge of Linux system administration, of MariaDB database administration and knowledge of Domain Name Services (DNS) to configure the domain names for various services.

For questions, comments, suggestions for improvement and other contributions to improve this guide, please feel free to use the OpenEMM support forum at forum.openemm.org

3.1 Software Stack

This is the software stack required by OpenEMM 26.05:

  • 64-bit version of RHEL 8 or 9, AlmaLinux 8 or 9 or SLES 15
  • Java Open JDK 21 (LTS version)
  • Apache Tomcat 11
  • Python 3.11 or later (see chapter Python 3 for OpenEMM for details)
  • DBMS: MariaDB 10.6.10 or later (we use 11.4.13, see section MariaDB for details)
  • MTA: Postfix 3.5 or later
  • Node.js 22 or later

It may be that OpenEMM also operates on later versions than the ones listed above, but this has not been tested in a production environment, yet.

To install OpenEMM and the required software stack you need a shell access (like bash) for your server as user root. All command-line examples are based on RHEL or SLES. Unless otherwise noted, you should run all commands as user root to make sure you own and you can grant the required permissions.

Instructions that are valid only for RHEL, are introduced with a header line RHEL and are ended with two blank lines. Instructions that are valid only for SLES, are introduced with a header line SLES and are ended with two blank lines, too.

3.1.1 Software Stack Roadmap / End of Life

Hera are some additional information on the software stack requirement of future versions of OpenEMM, so that you have enough lead time for your release plannings:

  • Linux: EMM 27.05 will support AlmaLinux 10
  • Java: EMM 27.05 will support Java JDK 25
  • Oracle: EMM 27.05 will no longer support Oracle DBMS 11 or 21 and versions below 19.28
  • PostgreSQL: EMM 27.05 will start to support PostgreSQL 18 or later

3.2 RHEL Operating System

Make sure that service cron is enabled on your server and that that SELinux (RHEL) is disabled. Disable SELinux by changing parameter SELINUX to value "permissive" or "disabled" in file config of directory /etc/selinux and reboot the server.

If a legacy file timezone exists in directory /etc of your server, please make sure that this file uses your local timezone, because EMM picks up this timezone. If file timezone does not exist, check if symlink localtime in directory /etc points to your local timezone.

Update the operating system to its latest release. This will keep your system in the most stable state and harden it against various intrusion attempts.

Please be advised that if you have configured your operating systems to do automatic updates, these updates may cause problems. Example: The operating system updates the Java version EMM uses to a new version while OpenEMM is running. This will require a restart of OpenEMM to get rid of any inconsistencies caused by mixing the old and new Java version at runtime.

Install all required packages as noted below. Further dependencies will be resolved and installed automatically by the repository management software:

dnf update
dnf install gcc make
dnf install xorg-x11-fonts-75dpi fontconfig freetype libX11 libXext libXrender urw-fonts

For the backend of OpenEMM you have to compile and install Python 3.11 or later. But please follow the description in this manual and install the database driver module for Python only after the DBMS is installed. See section Python 3 for OpenEMM for details on compilation and deployment of Python 3.

The frontend of OpenEMM needs Java 17 or 21. You should use OST to install it, in case it is missing on your server. See section OST (OpenEMM Support Tool) for details.

3.3 SLES Operating System

Make sure that service cron is enabled on all servers and that SELinux is disabled on all servers.

If a legacy file timezone exists in directory /etc of your server, please make sure that this file uses your local timezone, because EMM picks up this timezone. If file timezone does not exist, check if symlink localtime in directory /etc points to your local timezone.

Update the operating system to its latest release. This will keep your system in the most stable state and harden it against various intrusion attempts.

Please be advised that if you have configured your operating systems to do automatic updates, these updates may cause problems. Example: The operating system updates the Java version EMM uses to a new version while OpenEMM is running. This will require a restart of OpenEMM to get rid of any inconsistencies caused by mixing the old and new Java version at runtime.

Install all required packages as noted below. Further dependencies will be resolved and installed automatically by the repository management software:

zypper install gcc
zypper install zlib fontconfig libfreetype6 libX11-6 libXext6 libXrender1 xorg-x11-fonts ghostscript-fonts-std
zypper install zip sudo wget

Get a list of all available repositories:

SUSEConnect -list-extensions

For the backend of OpenEMM you have to compile and install Python 3.11 or later. But please follow the description in this manual and install the database driver module for Python only after the DBMS is installed. See section Python 3 for OpenEMM for details on compilation and deployment of Python 3.

The frontend of OpenEMM needs Java 17 or 21. You should use OST to install it, in case it is missing on your server. See section OST (OpenEMM Support Tool) for details.

Install and enable the required logging service:

zypper install rsyslog
systemctl start rsyslog
systemctl enable rsyslog

Furthermore, directory /usr/sbin has to be included in the PATH variable for all new users. Therefore, add the following line to file .profile in directory /etc/skel before you create the user for OpenEMM:

export PATH=$PATH:/usr/sbin