Roll-based Installation... (looking for feedback)

Hey Folks,

It’s been a long time since I last posted on here, as I’ve been crazy busy building Virtualmin-based clusters for our in-house hosting setup.

At the moment, we’ve got 6 serves in the cluster, 2 managing DNS, 4 managing everything else (minus email which is handled by Google Apps).

Over the coming weeks, my goal is to further restructure our cluster design in order to offer the best performance across all machines and therefore optimizing our customer’s experience.


What if there was a means for slimming down your Virtualmin installation, without actually breaking apart the core of Virtualmin…

When I install a node in my network, I am left disabling and in many cases “removing” software which will never be used on that node, but was installed by default when running the Virtualmin install script.


I believe that Virtualmin is one of the powerful CP’s on the market, rivalling the big players who claim millions each year with their proprietary software.

The goal I’m seeking is a “role-based” installation process.

When going through the initial installation process, it’d be nice if Virtualmin asked me which services I intend to use and then only installed the necessary applications needed to run this type of setup.

In doing so, the core of Virtualmin would remain the same, but the rest of the install could be optimized in the same way that my current installations are (after I do all the disabling and removing of software).

Further, it’d be nice if, at a later date I either wanted to “add” or “remove” a role from my machine, I could go to a screen to modify the role, and therefore add/remove applications and reconfiguring settings automatically.

The goal of all this would be to slim down my OS, remove potential security threats, and ultimately keep things more organized on a machine-by-machine basis.


I’d love to hear everyone’s feedback on this type of change, and ultimately if both Joe/Jamie see the value in such a change, and/or could do this with little impact on the development of Virtualmin.

As a web developer, I understand the need to keep things simple. As such, my idea has gone through a great deal of thought before I wrote it here, and if anything is unclear please feel free to let me know. I’ll be happy to clarify my idea further should it be necessary.


Here are some suggested rolls that could be defined in the “” file. After selecting the appropriate server(s) to be installed, the appropriate dependencies could then be installed accordingly:

1. Install DNS Server: n/y
2. Install Email Server: n/y
3. Install MySQL Server: n/y
4. Install PostgreSQL Server: n/y
5. Install Web Server: n/y

After the install process is complete, a number of “post-install” options could be setup in the web-based interface, similar to what you see now, but perhaps could be focused around additional options that are service specific.

*** also, after installing the appropriate roll(s) above, an option to either “add/modify/delete” a roll could be added to Virtualmin’s web-based panel so you could change things later. ***