Virtualmin cPanel - Free & Open Source Web Hosting 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, 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 set up the environment based on the server usage and size. The post-installation wizard makes it easy to enable the required features and disable the rest to the 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 the main server must have enough CPU, System memory, and storage resources.

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, it’s important to limit and monitor the network usage on each virtual server. If the virtual server reaches the limit, cPanel will 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 the 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 inboxes.

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

Enable Greylisting

When they try to connect an email server, all legit email servers like Gmail, they retry a couple of times before alerting the sender to check the recipient email. In 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 accepts the request if they retry. Spam servers will not contact the server after getting rejected, so that the server will mark these emails as spam.

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

Email Greylisting in Virtualmin

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

Virtualmin whitelist clients

Besides this, the admin can also enable mail client autoconfiguration, allowing 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 if spammers compromise any script; they will not be able to send spam emails more than the set limit.

Spam and virus scanning is enabled by default. If 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, the admin can check/edit the files in the file manager.

Virtualmin file manager

Edit PHP Settings for Virtual servers

We can change each virtual server’s PHP settings individually. Just log in to the 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 to host services using Virtualmin. It allows creating virtual servers 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 a script that will configure Virtualmin on your server easily. You need to have root access to the server; the server should have an 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.

wget http://software.virtualmin.com/gpl/scripts/install.sh

Run the installation script –

sudo sh install.sh
install Virtualmin script

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

How to create/increase swap space in Linux

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 package’s 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.