How to install Virtualmin control panel in ubuntu 18.04 Server on VPS

Virtualmin is better open source Webhosting control panel which provides all required tools and setting for monitoring, configuring and maintaining hosting environment. I use and suggest a Virtualmin control panel when users or business requirements are to host more than one website or mail domain service and addon to manage multiple hosting servers with backup and redundancy support.

This blog post will cover how to install Virtualmin on Ubuntu 18.04 VPS server.

The minimum requirement for Virtualmin installation as it can be used in 512MB RAM also but requires lots of tweaking.

For users who required mail, web hosting with SPAM and AB protecting better to start with at least 2GB RAM.

Login on VPS via ssh, Updating the ubuntu server with the latest patches using command.

sudo apt update && sudo apt upgrade -y
ubuntu upgrade and update command


virtualminwebsite download page

Run wget command from the page or below to download the installation script file.

downloading virtualmin using wget

The following help command will show options.

sudo /bin/sh --help
virtualmin install help options

By default, Virtualmin uses LAMP stack and prompts to enter a fully qualified domain name at a time of installation. But we can choose Server stack with a script.

LEMP Installation with Virtalmin

For LEMP stack (Linux, Nginx, MySQL/MariaDB, PHP) the following command can be used.

sudo /bin/sh -b LEMP -n FullyQualifiedDomain
virtualmin install LEMP stack selection

LAMP Installation with Virualmin

For LAMP stack (Linux, APACHE, MySQL/MariaDB, PHP) the following command can be used.

sudo /bin/sh -b LAMP -n FullyQualifiedDomain
virtualmin install LAMP stack selection

In both options, the difference is LEMP use Nginx and LAMP uses Apache services. Sometimes it differs as I have seen some PHP project requirements are to use Apache only and Some Apps works well with Nginx.

After running the command, the process will ask select y to continue or n to stop installation.

Y for continue.

The installation is divided into 3 phases

  • Phase 1 for Downloading
  • Phase 2 for Installation of component
  • Phase 3 Configuration of Component
3 phase of installation virtualmin

After successful installation, the success message will prompt to access Virtualmin on a browser using https link on port 10000

success installation of virtualmin

Note: Even we select domain name at a time of installation the virtual min will not work on URL unless the DNS is pointed on the IP.

For the first instance always access from IP address, I have pointed DNS to this VPS IP so it can be accessed using the Domain name

proceed virtualmin https warning

The Default Login username and password are the same which used to login on VPS, or in some cases, we need to create User on VPS and provide SUDO privileges so that username and password can be used to login in Virtualmin Webmin portal.

virtualmin default login

After Login First-time configuration wizard will start to guide the process for tweaking Virtualmin as per requirement.

Note: The following settings screen images just for testing purpose only please select proper yes and no options as per requirements for example

If EMAIL Hosting is a primary requirement then Memory Use, Virus Scanning, and SPAM Filtering should be enabled on RAM for Better Performance.

Virtualmin Post install wizerd

Click Next to Continue

Memory Use

Virtualmin can be tuned to improve performance in its user interface and email processing but at the cost of increased memory use. The best choice depends on how your system will be used.

virtualmin Memory Use wizerd

Click Next to Continue

Virus scanning

If this system is going to host domains that will receive a large amount of email, scanning incoming messages for viruses can generate a high CPU load. This is due to CPU use by the ClamAV virus scanner when it is started, which can be avoided by running the ClamAV scanning server clamd in the background. This consumes RAM but reduces CPU load and makes mail processing faster.

virtualmin Virus scanning

Click Next to Continue

Spam filtering

If this system is going to host domains that will receive a large amount of email, filtering incoming messages for spam can generate significant CPU load. This is due to CPU use by the Spam Assassin mail filter when it is started, which can be avoided by running the Spam Assassin filter server spamd in the background. This consumes RAM but reduces CPU load and makes mail processing faster.

virtalmin spam filtering

Click Next to Continue

Database servers

Virtualmin supports both the MariaDB/MySQL and PostgreSQL database servers, but you might want to run only one (or neither) on your system. Each consumes RAM when running, even if they are not being used.

Depending on the websites and applications you plan to host, running MariaDB/MySQL only may be enough, as most web applications do not support or require PostgreSQL. If your system will only be used for mail or DNS hosting, there is no need to run either.

virtualmin database server

Click Next to Continue

MySQL password

IMP: Please Note Down this password as its Database Root password as not recommended to save on the same server in plain text format.

virtualmin database password

Click Next to Continue

MariaDB/MySQL database size

MariaDB/MySQL can be configured to trade off memory use for performance, depending on how much RAM your system has and how heavily you expect the database to be used

Virtualmin database size

Click Next to Continue

DNS configuration

IMP: IF domain provider is pointed properly to this server, we can leave the primary name server as it for reverse DNS lookup or temporary “Skip Check”

virtualmin dns configration skip

Click Next to Continue

Password storage

For the production environment highly recommended to store only hashed passwords. But when hashed passwords are used, password recovery for virtual servers will no longer be possible. Besides, the Database password for new servers will be different from the administration password and will be randomly generated.

virtualmin password storage

Click Next to Continue

Process Installation.

Now the Wizard will process configuration settings to this server.

Virtualmin All done

Click Next to Continue

Re-Check and Refresh Configuration

It’s better to re-check and refresh configuration on the first installation.

recheck configuration

Process settings.

Virtualmin Redy to use

Installation complete now create Virtual Server.

For this example, I want my different domain “” new news subdomain should be hosted on this server with email.
Cover in my Next Post