Webmin is the easy addition of new modules, without any of the existing code to enable. A module can of something like a Photoshop plug-in or iPhone application – it can be written by another than the developers of Webmin, and under license, and the developer will be distributed thought.

A module should be written to manage a service or server as the Unix password file or the Apache web server. Some complex system functions can be applied to multiple modules – split, for example, partitioning, installation of hard disks and disk quota management are 3 separate modules in the standard Webmin distribution.

Modules can theoretically be written in any language. However, to be used, the use of Webmin API Perl version 5.8 or higher. A module is to be completely written in Perl, not C functions or external binary programs. The goal is for the modules are as portable as possible in the various Unix systems and CPU types.

Modules in other languages will not be displayed, with the standard Webmin UI, and will not be able to call the API. For this reason, Perl is highly recommended.

At its simplest, the modules are really just lists of CGI programs running Webmin web server. However, there are certain rules that are followed to ensure that it coincides with the Webmin API, the main menu and access control system to work. Even if you only stick available CGI script in a module directory, this is not a good idea.