Development Ideas
Webmin development |
---|
Creating Overlay Themes |
Module Development |
Contents
Modules for Deletion
Eligible for Deletion Now
- majordomo - Last release was many, many years ago. It is no longer maintained, and does not run correctly on modern perl versions. Mailman is currently supported in Virtualmin (GPL and Pro) as an alternative. A module mlmmj might be considered a worthy successor in the spirit of majordomo, but majordomo is defunct, so no reason to keep the module.
- Security Sentries - Again, deprecated by maintainer for over a decade. fail2ban provides some of the capabilities and has a Webmin module. Other IDS type systems may be worth considering for addition.
- frox - Unmaintained for about a decade.
- LILO - ELILO (the modern-ish variant of LILO) is no longer maintained as of 2014. Slackware, the last distro to use it, has had grub as an option for many years.
- CVS (pserver) - No reason for anyone to be using CVS at this point in history. The last release appears to have been almost a decade ago.
- cfengine - Current module version only supports a version of cfengine that has long been deprecated. Module either needs to be updated to support cfengine3, or removed.
- dnsadmin - BIND4 is no longer a thing people use. OpenBSD has deprecated their custom BIND4 version in favor of nsd (for authoritative) and unbound (for caching DNS).
- telnet - Java applets are effectively dead. This should be considered deprecated by AJAX Term (or we should find something even better, or improve AJAX Term, as we have some complaints about it and some folks who prefer telnet module. But, there's no reason to continue developing or maintaining a Java applet. Codiad has a terminal emulator that spun out into its own project: https://github.com/Fluidbyte/PHP-jQuery-Terminal-Emulator/blob/master/term.php and GateOne may be another option to consider: https://github.com/liftoff/GateOne
Eligible for Deletion Soon
- File Manager - Java applets are effectively dead. Chrome has made it very difficult to run them, and is expected to remove the ability completely in September. There are better techs for implementing this functionality. Filemin (https://github.com/Real-Gecko/filemin) may be an appropriate replacement with some work to add ACLs and missing functionality, and a lot of security and stability testing.
New modules
- simple phpMyAdmin interface & admin module
- SELinux control (setenforce tor start with)
Enhancements of existing modules
- list php version number in PHP Configuration + button for phpinfo() (installation/selection of newer PHP-version(s))
- edit MON Service Monitor configuration-file button
- Webmin Configuration option to define default edit-area height/width (or store last sizes in a cookie or so)
- Option to remove all comment from large option files.
- GRUB2 support; GRUB Boot Loader doesn't work with GRUB2
- Webmin scheduled backup: add an option for Secure FTP
Usability
- Webmin and Usermin could always use some more usability testing and polishing.
- widen menu area such that all menu-items use one line (Samba Windows File Sharing needs two lines etc.)
UI and Themes
Accessibility testing and development for Authentic Theme.
Refinement and simplification of ui-lib, to make themes easier to build. In particular, move away from table-based layout and simplify with CSS, by default (rather than making theme authors rewrite every theme function before even beginning to design things).
Cluster
Some modules would be well-served by additional cluster capabilities. Apache, for example, could configure matching VirtualHosts across many machines (correctly configuring the IPs and paths and such, appropriate to the machine, across platforms).
Monitoring and Analytics
Addition of compressed data storage from System and Server Status monitors for use in graphing. Graphing tools could be ported from Virtualmin trivially--we just need the data. Storage in an RRDTool style database (probably without needing RRDTool itself to generate it or read it, since we won't need the graphs) would be ideal so that long-term disk usage can be predicated accurately.
Webmin REPL
An interactive command line shell hooked into the Webmin API. Obviously, extending one of the existing Perl shells is the only sane path here--we'd just need an additional layer to pull in the Webmin::API module and hook up the various modules automatically, so that apache::some_function() would be available immediately upon startup. It'd be nice for development at the very least--but I suspect it would be useful for other tasks, as well, like bulk management jobs.
The API needs to become more discoverable for this to be fun to use, however--we'll want to convert over to inline pod documentation, so that the auto-completion and doc browser found in the best perl shells will Just Work.
A good article about REPLs for Perl, including building one roughly from scratch, is here:
Profiles, which seem particularly well-suited to our task, are discussed in this post: