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.
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.
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 –
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 –
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.
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.
If the admin thinks that the server has blocked a legit server, he can whitelist a particular client.
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’.
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.
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.
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.
Download Virtualmin script using wget.
wget http://software.virtualmin.com/gpl/scripts/install.sh
Run the installation script –
sudo sh install.sh
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
Enter server hostname –
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.
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.