Yes, here we go again :) Here's my problem : we long used Webmin, and still use it, and still plan to use it for the years to come. But...
Webmin comes with everything including the kitchen sink and the coffee maker, so that's great. However Webmin sucks terribly, too : it's insecure as hell (everything runs as root, all the time), it's insecure as hell (try adding trailing characters to your password...), it's insecure as hell ( use strict? warnings? taint mode? Nah...). Did I mention it lacks security and is written in ugly Perl 4 style (it's slowly improving, but 1994 called and they want their codebase back)?
So... I made a survey of alternatives to webmin and I have to admit it's pretty poor. There's eBox, it's nice, it's pretty but it's far (quite far, actually) from complete. No user profiles, no error messages internationalisation, and a questionable backend relying exclusively on gconfd. I have nothing against gconfd of course, but the whole concept of "whatever manual edit to whatever configuration file will be overwritten mercilessly" bothers me. After all I plan to provide my customers with a nice Web UI, but I'll certainly go on using vi to edit configurations.
Let's recapitulate : Webmin works, but it sucks. eBox works, but it sucks. I found nothing else that would even approximately cut it. So I'll have to build a (simple) system with :
- messages i18n (like webmin)
- running as unprivileged user most of the time (like eBox)
- offering user profiles (accessing different modules/options, like webmin)
- written in 21st century perl ( including #!perl -T; use warnings; use strict;, like eBox could be )
- using a standard templating engine ( like eBox );
- working with an API that allows it to edit standard configuration files the One True Unix Way, with ed or cat or vi or emacs or... (like webmin mostly does)
Well that's about it. So before I start, if anyone knows of such a beast that would save me some weeks of coding, or of some fantastic and easy feature I forgot to mention, please don't keep silent!