Virtualmin cPanel – Free & Open Source Web Hosting Panel

virtualmin web hosting control panel

Today we are starting a new series on Linux cPanels. Many of you would already have used cPanel on popular web hosting services like Hostgator, and Bluehost, etc. In this series, I will cover web hosting panels for Linux servers.

You can follow our social media pages to stay in touch for other articles in the series.

What is a cPanel or Control Panel?

As the name suggests, a server control panel lets you control your server graphically, and provides you important server statistics, manage websites, databases, email accounts, etc. right in your browser without having to pass long commands.

You can do pretty much everything from the control panel. It makes handling complex and time-consuming server tasks extremely easy.

In this series, I will cover open source, free, and paid Linux control panels. If you need more features, you may need to support the development by giving a few dollars per year.

Virtualmin cPanel

The first Linux cPanel we’re going to talk about is Virtualmin. It’s free and open source. You may hire their support for installation and/or per incident vise.

For more information on Virtualmin premium support, visit here.

Virtualmin provides a ton of functionalities with a nice and clean user interface. It takes care of all the configuration and security. After the Virtualmin is successfully installed, it runs a post-installation wizard to setup the environment based on the server usage and size. The post-installation wizard makes it easy to only enable the required features and disable the rest to lower CPU load and server memory usage.

Virtualmin Dashboard

Virtualmin is built on top of Webmin, a popular web server manager UI for Linux. The dashboard gives you a quick look into server CPU, memory, disk usage and information of running services on servers.

Virtualmin Dashboard

Clicking on each of the stats will provide in-depth system processes information. For example, to view all the running processes consuming system memory, click on Memory.

Virtualmin server running processes

Account plans

Virtualmin allows creating plans for limiting the usage of server resources. It is best if you are a hosting provider, you can create multiple plans and charge users based on the server resources they get under each plan.

To create a plan, go under System Settings > Account Plans

Virtualmin list Account plans
Virtualmin Account Plans

Create a Virtual server

As you may already know Virtual server is creating a virtual server on an existing server. Basically, the server will share the current resources with the new virtual server so it’s important the main server has enough resources such as CPU, System memory, and storage.

Creating virtual servers in Virtualmin is done from List Virtual servers > Add new virtual server.


Bandwidth monitoring

If the main server gets a limited bandwidth each month, then it’s important to limit and monitor the network usage on each virtual server. In case the virtual server reaches the limit, cPanel would send an alert notifying the server user regarding the incident.

To enable bandwidth monitoring, go to System Settings > Bandwidth Monitoring –

Virtualmin bandwidth monitoring

Easy database management

Database management is also easy in Virtualmin. Administrators can not only create and manage databases on local server but also databases on another host.

Database management settings exist under System Settings > MySQL servers.

virtualmin mysql servers databases
MySQL database server

Emails management

Spam is one of the biggest challenges in server management. Hundreds of spam servers are always sending spam and fishy emails so it is important to scan and block the email before it hits your or any of your client’s inbox.

Virtualmin provides many layers of security against spam emails. Virtualmin post-installation wizard configures server email security features including scan of each emails using Spamassassin and ClamAV. There are a few more options that you can enable to further enhance the server security against spam.

Enable Greylisting

All legit email servers like Gmail etc. when tries to connect an email server, they retry a couple of times before alerting the sender to check the recipient email. In the case of spam servers, these servers don’t retry to contact the server once the server rejects their request.

So what Greylisting does is that it rejects all the server requests when they try to contact the server for the first time and accept the request if they retry. Spam servers will not contact the server after getting rejected, so the server will mark these emails as spam.

To enable Greylisting in Virtualmin, go to Email Settings > Email Greylisting.

Email Greylisting in Virtualmin

If admin thinks that the server has blocked a legit server, he can whitelist a particular client.

Virtualmin whitelist clients

Besides this, admin can also enable mail client autoconfiguration which will allow virtual servers to have their IMAP and SMTP setup in email clients like, Thunderbird just by typing an email.

Enable rate limiting allows users to limit the number of emails sent in a period of time. Enabling rate limiting is helpful in case any script is compromised by spammers, they will not be able to send spam emails more than the set limit.

Spam and virus scanning is enabled by default. In case you want to tweak settings, it is available under Email Settings > Spam and virus scanning.

Installing WordPress from Virtualmin

Users can easily install WordPress and other software on their server from ‘Install script’. 

Install script
Virtualmin install WordPress

The script will install all the dependencies and the software itself automatically. After the installation is done admin can check/edit the files in the file manager.

Virtualmin file manager

Edit PHP Settings for Virtual servers

Each virtual server’s PHP settings can be changed individually. Just login to virtual server and go under Services > Configure Website.

PHP configuration

So these are just some of the features that Virtualmin has. It has a lot more options but I think I have covered major functions. One can easily manage hosting services using Virtualmin. It allows to create virtual servers extremely easy.

Clients can install major applications using pre-installed and pre-configured scripts. Installing Virtualmin is also very easy.

Install Virtualmin

The team has developed an script which will configure Virtualmin on your server easily. You need to have root access to the server, server should have internet connection. In my case, I launched a digitalocean server which literally took 2 minutes to create a Ubuntu server.

deploy digitalocean server

Download virtualmin script using wget.


Run the installation script –

sudo sh
install virtualmin script

You may get error if you server is low on memory. You can create swap partition to pass through that error.

virtualmin error

Enter server hostname –

virtualmin hostname
virtualmin step 3

The installation may take a long time. There are so many dependencies to download and configure, so please wait while the installation is running. Once the script has installed Virtualmin successfully, you’ll see the following screen. You should see all the green checks next to the packages name.

webmin setup completed

That’s it!

You’ve installed Virtualmin. To access the virtualmin panel, visit server-ip:10000.  Your own hosting company is ready to be launched. 


Related posts

Best Linux Backup Software For Desktops And Servers [2021]

10 Steps To Secure Linux Server + {Bonus Tips}

What Is Headless Server