App Center Developer Guide
From Univention Wiki
Univention App Center provides a platform for software vendors and an easy-to-use entry point for Univention Corporate Server (UCS) users to extend their IT environment with business software. The App Center is part of the web-based UCS management system and gives an overview of available and installed Apps. Its purpose is to present available business applications for UCS and simplify their installation. This allows their easy evaluation and fosters the purchase decision.
Apps are the content of the App Center and they consist of the business software and some meta data about the presentation in the App Center. Most of them come with an integration into UCS, e.g. the management system or the mailstack. The purpose of an App is to provide the business solution in a way that it is ready to use after the installation and that comes with a decent default configuration to offer a satisfying impression of the solution. The installation is non-interactive and is done by just a click. Furthermore, an App utilizes the benefits of UCS and the business solution.
The App Center infrastructure consists of two parts: The already mentioned frontend is part of the web-based UCS management system (Univention Management Console, UMC) which installs, upgrades, removes Apps. There is also a command line tool, univention-app, but normally, users use the UMC module. The backend stores the App meta data, the App container images, and the App software packages in their own respective repositories on a remote server operated by Univention. The technological basis of all Apps is Docker, an operating-system-level virtualization software, and (where needed) APT, the well known advanced package tool from Debian.
Therefore, the App needs to provide a dedicated Docker image or so-called Debian packages. The App Center frontend handles the installation process and will download and start the Docker image and/or install packages using APT.
Ideally, integration into UCS can be achieved using the standard Docker image or Debian packages the software solution already provides elsewhere plus one more dedicated package or just a few unpackaged scripts.