Virtualmin does too much. What should we get rid of?

Howdy all,

We’ve had an influx of new users with the Virtualmin 5 news making its way around the web. That’s great, and if you’re one of those new users, welcome to the VIrtualmin community!

But, the influx of new users has us staring down the elephant in the room: Virtualmin is too complex to be easy to use for new users. There are too many options, too many menus and items, too many things to learn in order to get the most out of Virtualmin.

Now, don’t get me wrong. Those options are part of Virtualmin’s biggest strength. We don’t tell you how to do things (though we offer reasonable defaults for folks who don’t want to think), and allow a mind-boggling array of possibilities for how to use it (Apache/nginx, Postfix/Sendmail/QMail, ProFTPd/vsftpd, MySQL/PostgreSQL/MariaDB/Oracle/SQLite, Ruby on Rails/Node.js/Django/PHP, mod_fcgid/mod_php, phpMyAdmin/phpPgAdmin/Webmin database modules, Usermin/Roundcube/Squirrelmail, etc.). We aren’t trying to dumb things down to the level of the “simple” control panels out there.

But, we need a better user experience for first-time Virtualmin users, and we need to reduce the cognitive load of using it daily for regular users. I bet the majority of Virtualmin users never click 50% of the items in the Virtualmin, Webmin, or Cloudmin left menu, and I bet most have never seen half of the configuration and options pages in any of these projects, and never needed to.

So, to that end, we’re going to start paring back Virtualmin (and Webmin and Cloudmin), and removing things that no longer have relevance for modern users, and we’ll be re-thinking how things are organized to make the common tasks more visible and the less common tasks tucked away or removed.

Now, I don’t think we can safely do a total menu overhaul from one version to the next (the “I hate change” crowd, of which we have plenty from our ten years as a company, and ~18 years of Webmin development), but, I believe we can kill one or two menu items, or refactor them, in each new release over the next year or two, until we have a very nicely refined menu system and a much simplified Virtualmin experience. Menu overhauls have been suggested in the past, and some good ideas were included in those suggestions…but, they were often pretty dramatic with everything moving around. We’re going to have to take this slowly in order to avoid chasing off all the old guard Virtualmin users who have muscle memory for the tasks they perform every day (and hopefully we’ve got some of those things right already and won’t need to change them much). There are about 100,000 people using Virtualmin, counting GPL and Pro, and many of them are probably comfortable with the way things are today…so we have to keep that in mind.

Anyway, here’s a bunch of screenshots:

Virtualmin virtual server menus:

Administration Options

Server Configuration

Logs and Reports

Disable and Delete

Services

System-wide menus:

System Settings

Email Messages

System Customization

Addresses and Networking

Limits and Validation

Add Servers

Backup and Restore

Holy crap! That’s a lot of menus and a lot of options. And we aren’t even looking at the pages they lead to. So, how do we make this easier to use, without making Virtualmin limited like some of those other “easy” control panels?

Here’s what I’m looking for:

  • “I never use this item, you can get rid of it, or tuck it away out of the left menu”
  • “I would expect this item to be under this category menu, instead of the one it is currently under”
  • “This category should be renamed to …”
  • “This item is mis-named. It should be called X”
  • “I’ve always been confused by this item”
  • “I can never find this item”

Etc.

General usability stuff is valuable, too, and I might make one of these threads every week or so where we just talk about what’s confusing about Virtualmin, and what we can do to improve it, without making things confusing for all the thousands of users who’ve grown accustomed to how things have been done in Virtualmin for the past decade.

The Virtualmin GPL menus are very detailed, but that just reflects power and choice. So that is a good thing.

I have had three types of problem with the menus.

  1. Can’t find what I am looking for.

  2. A menu item is unclear to ambiguous.

  3. Nothing wrong with the menu item, but it doesn’t really work.

Examples of can’t find: Suppose I want to make some PHP-related choices. It turns out that the menu items that mention PHP in their name are quite limited in what they do. Most of the PHP choices are under headings that don’t mention PHP. So merely going through all the menus looking for PHP in their titles does not work.

Examples of unclear/ambiguous: Webmin’s DNS module, where it lets you set an MX record, never mentions MX record, but does mention “mail server”, which is a generic term that often refers to an IMAP or POP server.

Possible solutions to 1 and 2:

A. The less-used menu items should be moved into some sort of Advanced section. Or, like Firefox and Chrome browsers do, make us type the equivalent of about:config to see those menu items, otherwise don’t show them at all.

B. A quick search should show us all the menus that mention a string. The Chrome browser has such a search on its settings screen and it works really well. Webmin’s search box is slow and yields much more information that we usually need. We need two types of search: A quick search for menu items, and a slower comprehensive search for all strings.

C. Rename menu items so they are less ambiguous. For example, In the Virtualmin Post-install wizard menu, it’s not clear if “Run email domain lookup server?” refers to a DNS server. Rename it to either “DNS server for email” or “Email lookup server (not a DNS server)”, whichever is more correct. For example, in Webmin’s DNS module, the “Mail Server” item could be renamed to “MX Record”. In every single menu, imagine that the user doesn’t understand it, and does a Google search for some or all of the menu text. Will he find a good explanation in the first few hits? If not, rename the menu to something for which the answer can be quickly found with a web search. For example, a user searching on Google for “mail server” will find lots of hits, but most talk about IMAP and POP and only a few of them will tell him it means MX record. So, the menu should be renamed.

D. Let us set any menu screen to safe defaults with one click and, possibly undo that with another click. For all menu choices, always show which is the recommended choice with a * or other symbol. In the Post-install wizard, for example, the install script should pick the recommended choices based on how the machine hardware is current configured.

In lieu of doing all of A, B, C, and D above, how about just this: Simply add plenty of online help for all the menu items, complete with examples.

For example, in Webmin’s DNS module, where it lets you set an MX record, the online help for “mail server” could say: “Also called an MX record or mail exchanger record”.

For example, in the Virtualmin Post-install wizard menu, online help for “Run email domain lookup server?” should either say “also called a DNS server” or it should say “this is an email lookup server, not a DNS server”, whichever is the case.

For example, under Virtualmin Configuration => Server settings => Also update outgoing addresses for mailboxes?, the online help could give us some examples of the type of address mappings that would occur.

Possible solution to 3:

When a very small group of people sets out to support a dozen different operating systems and half-a-dozen different virtualization technologies, they won’t be able to make everything work right. The solution would be to narrow your focus enough that you can generate relatively bug-free code and test it thoroughly before it’s released.

I am truly awed by how much Virtualmin GPL tries to do. It’s obviously the result of a lot of hard work. With the menus reorganized, and the bugs fixed, it could be a brilliant piece of work. And someday, when you take Paypal or Google Wallet (or bitcoins even, just anything that doesn’t expose my credit card or bank account numbers), I hope to be able to say something similar about your Pro products.

I also like Virtualmin the way it is. At first when I installed it I was overwhelmed by options, but that passed after an hour or two when I discovered it’s the most logical panel out there, and everything is nicely structured.

Perhaps, if you want to make it very simple for the new users, a Novice / Advanced mode switch like VLC would be a good way out? https://images.duckduckgo.com/iu/?u=http%3A%2F%2Fwww.unixmen.com%2Fwp-content%2Fuploads%2F2014%2F10%2Fvlc-preferences.png&f=1

This is great feedback.

I’m gonna call out this one first, as it’s kinda dire and should never happen, so we want to make sure we know about it:

“3. Nothing wrong with the menu item, but it doesn’t really work.”

Hopefully, you’ve filed a bug report about any thing that doesn’t work? These are actually among the simplest things to fix (compared to usability issues). If something doesn’t work, tell us about it, and it’ll get fixed. Both Jamie and Ilia are super responsive to good bug reports (i.e. bug reports that include the steps to reproduce the problem). Usually fixing the bug within a few days.

So, if something simply does not work, file a bug right away! We don’t know of anything that doesn’t work (we wouldn’t ship it out with any known broken menus!), so you have to tell us!

*Examples of unclear/ambiguous: Webmin’s DNS module, where it lets you set an MX record, never mentions MX record, but does mention “mail server”, which is a generic term that often refers to an IMAP or POP server."

Great idea. Though I will note that Virtualmin already does this, so for non-technical users using Virtualmin (non-technical users shouldn’t really be exposed to the rest of Webmin, at all), they’ll already get an option labeled “MX - Mail Server” in the “Create Record” form field. But, this is an easy fix, and just the kind of thing we like (it’s actionable and concise and has clear benefit).

“For example, in the Virtualmin Post-install wizard menu, online help for “Run email domain lookup server?” should either say “also called a DNS server” or it should say “this is an email lookup server, not a DNS server”, whichever is the case.”

You’re right. That isn’t clear. It is not a DNS server. It is a server that looks up account details to find out what actions to take (e.g. scan for viruses/spam). It is part of Virtualmin; the alternative is to start that process every time mail arrives, which is more CPU intensive, but less memory intensive, generally speaking.

This is why I dislike that everybody calls these kinds of accounts “domains”. It’s confusing. But, the rest of the world seems to want these accounts to be called domains (our largest competitor, cPanel, calls then domains, and so everybody seems to want us to use that terminology, too…so much so that we even do it accidentally a lot of the time). We may just need to embrace that, but also be more clear about what we mean when using the word “domain” in all of these different contexts.

“For example, under Virtualmin Configuration => Server settings => Also update outgoing addresses for mailboxes?, the online help could give us some examples of the type of address mappings that would occur.”

Also good, and easy. We do need more online help. Way back in the day, I went through and added online help for every single option in Virtualmin. Virtualmin has grown a lot since then, and the online help has only seen minor updates. It’s probably time for another overhaul of the online help.

“The solution would be to narrow your focus enough that you can generate relatively bug-free code and test it thoroughly before it’s released.”

Perhaps this isn’t apparent to new folks, but we have narrowed our focus quite a bit over the years. We once has installer support for: FreeBSD, Mandriva, SuSE, Fedora, Solaris, and the beginnings of support for Gentoo. That proved unworkable for me to maintain alone (I’m the only person that works on installer and packaging for Virtualmin). And, it turned out that 95% of our sales were to CentOS, Ubuntu, and Debian users (in that order), so we couldn’t possibly ever expect to be able to outsource some of that work, because it brought in so little money, and I couldn’t afford to keep devoting so much time to it on my own. Some of those may find their way back in, but we’ll need to figure out how to pay for it, if we do.

That’s also part of my desire in this conversation. Let’s find some features, options, etc. we can kill off from Virtualmin. The surface area for bugs, regressions, and confusion is very very high with such large software. So, we all win if we kill off things that no one is using any more. My biggest concern with Authentic I think is that it already has so many options! Hopefully, I can convince Ilia to reduce the options going forward. Configurable is good, but sometimes it’s just overkill, and there is technical debt in maintaining those options.

“And someday, when you take Paypal or Google Wallet (or bitcoins even, just anything that doesn’t expose my credit card or bank account numbers), I hope to be able to say something similar about your Pro products.”

We’ll be turning on PayPal payments again soon. But, I did want to mention: We never see your credit card data. At all.

Our payment processor is Braintree (a subsidiary of PayPal), and we use what is called their “drop-in payment UI”. It puts a frame on our page, loads their form (over SSL), and sends the card data directly to Braintree servers. They return a token for us to bill recurring orders, and the last four digits of the card, so it can be identified in the list of “Stored Cards”. It does not pass through our system, at all, and the only company you have to trust in that exchange is Braintree/PayPal.

I wish the payment drop in were more clear about that; it looks like it’s part of our site (which I guess is neat, but it also makes people think they have to trust us to store their card, which is not the case).

So, if you trust PayPal with your billing details, you can also trust the drop-in payment method from Braintree that is on our site. You can read more about that here: https://www.braintreepayments.com/features/drop-in

Note that this is one of the kinds of payment method that does not require external PCI compliance testing, because no card data is handled by our servers (just like PayPal’s redirect method does not require external compliance testing).

Anyway, you’re not alone in wanting PayPal payments to come back. It’ll happen, as soon as possible.