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 24.04:

  • 64-bit version of RHEL 8 or 9, AlmaLinux 8 or 9, or SLES 15
  • Java Open JDK 17 or 21 (LTS version)
  • Apache Tomcat 10.1 or 11
  • Python 3.11 or later (see chapter Python 3 for OpenEMM for details)
  • DBMS: MariaDB 10.6.10 or later (we use 10.11.7, see MariaDB for details)
  • MTA: Postfix 3.5 or later
  • Node.js 18 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: Since EOL for Suse 12 was end of October 2024, OpenEMM does no longer support it.
  • Java: OpenEMM 25.04 is compiled with Java 17 and needs a deployment of Java JDK 17 or 21 as runtime environment.
  • Tomcat: Because OpenEMM is compiled with Java 17, it requires Jarkata EE libs. Jarkata EE is only supported by version 10.1 (or later) of web container Tomcat.
  • Python: Starting with OpenEMM 25.04, the required minimum version for Python is 3.11, because security support for Python 3.8 has end in October 2024.
  • MariaDB: Since OpenEMM does not support MySQL 8 or later (due to compatibility issues), we recommend to switch from MySQL to a current version of MariaDB now (see section Special Advice for Upgrades to Version 22.10), because Oracle’s extended support of MySQL 5.7 has ended and OpenEMM 22.10 was the last version of OpenEMM officially supporting MySQL 5.7.
  • Postfix: We have dropped support of Sendmail because while Postfix is actively developed further, progress of Sendmail stalls. Also, beginning with version 3.4, performance of Postfix is superior to Sendmail.

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