-
The postinstall wizard still wants to run after an automated install. I can probably add a mode to the virtualmin config-system
command where you can set all the bits you want to set a little more easily. You won’t need to install MySQL (or Mariadb, depending on the distribution). But, you will need to let Virtualmin know your MySQL password so it can manage the databases.
You can set the MySQL root password after installation using the virtualmin set-mysql-pass --user root --pass NEWPASS
command.
All of the other stuff in the wizard can be done manually…it’s not totally obvious how, though, and there isn’t currently a command for it. But, now that I’m thinking about it, we can work on that. It’s not a big stretch from what virtualmin config-system
already does; it’s occasionally arbitrary what we ask about in the wizard and what we set by default in the config-system process.
-
--minimal
install does not include spamassassin, ClamAV, AWStats, Webalizer…and maybe a couple of others. It does currently include DNS and the rest of the mail stack (we always need a local Postfix for things like notifications and such, even if we’re not hosting any local mail). You can disable those features after the fact, though there is not option during install to disable them.
If you used --setup
, you have to choose everything yourself. That mode does one thing: Enables the Virtualmin repositories. Beyond that, you’d need to make a list of packages to install, and you’d need to construct your own prefered list of virtualmin config-system
plugins to execute. All of these bits and pieces are open in our github, so you can see what our installer does, and where the dependencies come from.
The dependencies we install come from here (for CentOS; there are metapackages for Ubuntu and Debian):
https://github.com/virtualmin/virtualmin-yum-groups
There’s a group for each “type” of install, LAMP, LEMP, LAMP Minimal, LEMP Minimal.
Then the configuration comes from the Virtualmin-Config tool. If you look in this directory, you can see the four install targets (LAMP, LEMP, MiniLAMP, MiniLEMP):
https://github.com/virtualmin/Virtualmin-Config/tree/master/lib/Virtualmin/Config
Each of those has a list of plugins that get run to configure stuff. You can run individual plugins once everything is installed by using the virtualmin config-system
command, like this:
# virtualmin config-system --include Apache
This is, for now, the easiest way to build up a fully custom installation that leaves out a bunch of stuff. Though keep in mind that even the other bundles are still a lot less tested than the default LAMP bundle. They’re only a couple months old. And, completely new combinations are even less tested.
I probably should have actually called --minimal
something else, but I’m not sure what it should be called instead. Everybody seems to have different ideas about what “minimal” means. I wrote a post a few days ago about my philosophy on the minimal mode, and it basically sums up to “Big things can GTFO, we’re keeping the small stuff and the stuff we need to do all the usual activities with fewer features.” So, you can still run all the services, you just can’t scan mail, do log analysis, or have fail2ban. (That post is here, if you’re curious: https://www.virtualmin.com/node/53753 )