Virtualmin is an open source web hosting and cloud control panel available for installation on Linux with an automated script. Here we explain how to install Virtualmin & Webmin on Ubuntu 20.04 / 18.04 or Debian 9/10 server
The “VirtualMin” program has proven itself to be able to manage an online server as simply as possible. It allows access to the server through an SSL encrypted HTTP line (i.e. through a standard browser) and provides a clear user interface. (Almost) all server settings and options can be managed and controlled on it. Relatively little technical knowledge is required
Like Webmin, Virtualmin is free, although there is a paid version called Virtualmin PRO which offers specialized support and includes more tools than the normal version.
When you install it, you will be able to easily manage your domain and website. Where Webmin, which is a front-end server management tool, will be responsible for providing you with the tools to deal with pure server issues; Virtualmin is an advanced front-end virtual host management tool and will be in charge of controlling all part of emails, web pages, user spaces, etc.
Installation of WebMin / VirtualMin on Ubuntu 20.04 or Debian server
1. Run the system update command
First of all, make sure that all the existing packages on your system are up to date. Also, I recommend using a new server without any prior installation of another hosting platform or software.
sudo apt update
2. Download the Virtualmin script
Now let’s download the script that will atomically install both Webmin and Virtual minute on our Ubuntu 20.04 or Debian server.
sudo apt install wget wget wget http://software.virtualmin.com/gpl/scripts/install.sh
3. Define the hostname – fully qualified domain
The fully qualified domain that you want to use and managed by Virtualmin should be defined as the hostname for your server where you plan to install Virtual minute. It can also be a subdomain. For example- we want to use demo.how2shout.com and managed by Virtualmin. So, we set our system hostname to it.
sudo hostnamectl set-hostname demo.how2shout.com
Replace – demo.how2shout.com with your domain or subdomain. Also make sure that the IP address of the server on which you are installing Virtualmin, the A domain registration is pointed to it through your DNS, usually available from where you purchased your domain name or from your domain registrar.
4. Change the permission of the script to make it executable.
As we already have the Virtualmin or Webmin install script on our Ubuntu 20.04 LTS server, let’s move on to authorization so that we can run it on the system using
sudo rights for the installation of various components.
chmod a+x install.sh
5. Run the Webmin & Virtualmin installation script on Ubuntu 20.4
If you are using the root user, you do not need to use
sudo with the following command, but under the standard user, run it with
sudo rights, this will automate the installation process. Everything will be set up from here without your intervention.
To note: If your domain set as the host name could not resolve the pointed IP address, the installer may ask you to reenter the domain manually.
6. Firewall for Virtualmin on Ubuntu 20.04 or Debian
If you are using a cloud platform like Google, Amazon web server, Digital Ocean or any other, you need to open the Virtualmin port first “10,000“in their firewall. However, those using Ubuntu’s built-in firewall can use the command:
sudo ufw allow 10000
7. Go to Webmin or the virtual web interface and log in
Now is the time to access the graphical user interface of the Webmin, just open your browser which can access your server’s IP address and point to its IP address or the fully qualified domain you defined as the hostname for Virtualmin at port 10000 example-
Default Virtualmin / Webmin username and password
When you see the login page, enter your server name root username and password. Example username– root the password– the one you set for the root user on your server.
Finally, you will have the dashboard from where you can access the various settings and options needed to start hosting websites.
9. Post-installation of Virtualmin Server
Step 1: This post-installation wizard allows you to configure Virtualmin optimally for your system. You can make selections depending on whether you want to host websites, emails, or databases, and depending on the memory and CPU power of your system.
To continue, click on the following button below. To ignore it and use the default settings, click Cancel.
2nd step: Virtualmin can be tuned to improve the performance of its user interface and email processing, but at the cost of increased memory usage. The best choice depends on how your system will be used. So, depending on your needs, select the options or leave the default as it is.
Step 3: Enable virus scanning with ClamAV: If your system is going to host domains that will receive a large amount of e-mail, scanning incoming e-mail for viruses may generate a high CPU load. Since scanning is performed using the ClamAV clamd scan server, it consumes RAM even when you are not processing emails. If your system does not host email, virus scanning may be disabled. Or whether it’s on-demand scan
Step 4: Run the SpamAssassin Server Filter? If your system is going to host domains that will receive a large amount of email, filtering incoming messages for spam can place a heavy CPU load. This is due to the CPU usage by the SpamAssassin mail filter when starting it, which can be avoided by running the SpamAssassin spamd filter server in the background. This consumes RAM, but reduces the CPU load and speeds up mail processing.
Step 5: Virtualmin supports both the MySQL and PostgreSQL database servers, but you may want to run only one (or none) on your system. Each consumes RAM while running, even when not in use.
Depending on the websites and apps you plan to host, running MySQL this may be sufficient, as most web applications do not support or require PostgreSQL. If your system will only be used for messaging or DNS hosting, you don’t need to run it either.
Step 6: In order for the DNS zones created by Virtualmin to be resolvable, the primary nameserver record for each zone must be set to something that can itself be resolved by other systems on the Internet. Just press the following and Virtualmin will set it automatically after making sure it is available.
Step 7: Virtualmin gives you the option to store passwords in plain text for virtual servers and mailboxes or to store only one-way encrypted (hashed) passwords. Plain text passwords are more convenient, but less secure if your system is compromised.
Remember: When hashed passwords are used, password recovery for virtual servers will no longer be possible. In addition, the MySQL password for new servers will be different from the administration password and will be generated randomly.
Step 9: Virtualmin can create a default virtual server that will serve web requests to your system that do not match any other domain. It can also be used to request a Let’s Encrypt SSL certificate to be used by Virtualmin’s own user interface.
10. Upload files for the website
By default, if you access the domain set to Virtualmin, the HTML demo page will appear saying “Under construction”.
Now if you want to install a CMS like WordPress click on the button File manager, under Public_html you will find the index.html drop off. Delete it and upload the WordPress file to it by clicking on the File menu and correspondent Download option. Once it’s done. Create a database using Webmin. After this refresh, the URL of your domain showing the Page under construction, and this time you will see the WordPress setup page, provide the required details.
Although WHM Cpanel users may find it a bit difficult to use Webmin and Virtual minute, however, if you don’t want to pay for Cpanel, then this one is a good option. Nevertheless, Virtualmin is not the only one here, there are much better alternatives available- See our list- Webmin or Virtualmin fees and open source alternatives