Supported Platforms for MidPoint Deployment
MidPoint can be deployed on a variety of operating systems, environments and platforms. From a technical point of view, midPoint is a Java application, therefore it can run on any platform where Java Runtime Environment is available. However, only some of all the platforms are recommended and supported for production use. This document summarizes support for midPoint deployment platforms, including explanation and motivation.
Linux - Recommended Platform
Linux is, always was, and most likely ever will be a recommended platform for midPoint deployment. MidPoint is designed for Linux environment, development testing of midPoint is done in Linux environment, performance and any other special testing is focused on Linux environment - midPoint is living and breathing in Linux environment. All performance testing, security evaluations and any special-purpose testing is done in Linux environment only.
MidPoint is fully supported in Linux environment for any use: development, demo, testing and production. There is no required Linux distribution. Any modern distribution should work well, as long as stated requirements for Java platform are met. However, most development and testing of midPoint is done in Ubuntu LTS environment, therefore users of Ubuntu LTS versions are probably least likely to run into any issues related to operating system and platform.
MidPoint is also supported in Docker or Kubernetes environment. It is even recommended to use Kubernetes environment to run midPoint. However, the recommendation holds only in case that such environment is running on top of Linux operating system.
MidPoint runs on Windows platforms, and it is supported for production use in long-term support (LTS) releases. However, production deployments on Windows platform are not recommended.
Theoretically, Java platform should isolate midPoint from underlying operating system. However, practice is much more complex than that. There are various details and peculiarities of operating system platform that leak through the Java abstraction layers. Then there are auxiliary details, such as the start/stop scripts, monitoring, logging and other details that makes midPoint quite an uncomfortable guest in Windows environment. MidPoint will run on Windows. However, it is likely to require more attention from system administrators and engineers as compared to Linux platform.
While midPoint will run on Windows, we do not guarantee that it will be running perfectly. Vast majority of midPoint testing is done on Linux. Therefore, we cannot guarantee that midPoint will have satisfactory performance in Windows environment, as we are not testing midPoint performance in Windows environment. Similarly, if security is your primary concern, we strongly recommend to use Linux environment instead. All security testing and evaluation of midPoint is done in Linux environment only. MidPoint bugs that are specific to midPoint environment will usually take longer time to fix. Such bugs are much more difficult to reproduce for our development team, as the majority of the team is not using Windows at all. It is perhaps perfectly understandable that Windows support is not our priority, especially given that number of production deployments of midPoint in Windows environment is very low.
Windows is supported for production use only in long-term support (LTS) releases of midPoint. While midPoint should run on Windows just fine in all midPoint releases, we are not specially testing midPoint on Windows during feature release cycle. Therefore we cannot guarantee that feature releases of midPoint will run on Windows smoothly. We are doing proper Windows testing only for LTS releases.
It is perfectly acceptable to use Windows for presentations, demo, even development of midPoint configurations. However, we do not recommend to use Windows as a production environment for midPoint.
All in all, we recommend choosing Windows only in case you have no other option.
MidPoint runs quite well in Apple macOS environment. However, macOS is not supported for production use.
Many midPoint developers and engineers are working in macOS environment. Hence, we are quite sure that midPoint runs in this environment quite well. In fact, it is a good environment for presentations, demos and similar purposes. Please feel free to install midPoint on your Mac and give it a spin. However, supporting midPoint in macOS environment for production use makes very little sense.
Only platforms that are in ordinary support period provided by their vendor are supported. Platform versions that are end of life (EOL), that are available only under extended support or any other special support arrangements are not supported for running midPoint. As a rule of the thumb, a platform is supported for running midPoint only as long as the vendor is regularly publishing security updates and fixes without requiring any non-standard support agreement.