Virtualmin: a free alternative to cPanel
In a previous article, I talked about why you should get a VPS for your site/projects.
I mentioned in there the fact that most people are familiar with cPanel and if they want it on their VPS, it requires a license. This adds to the total cost. A cPanel license is $15/month according to their website, and while you might get a better deal from your hosting provider, it is an expense that you need to take into account.
Why Virtualmin? It’s free!
Virtualmin is a powerful and flexible web hosting control panel for Linux and BSD systems.
To put it in plain English: Virtualmin is an alternative for cPanel. An incredibly good alternative I may say.
I think it is by far the most complete free solution that you can have for your server.
I will list below just some of the things I really like:
- Works with Let’s Encrypt SSL. You will be able to generate SSL certificates for your sites in no time and they will automatically renew after 2 months (this can be adjusted, but no more than 3 months).
- Simple and fully responsive interface. On more than one occasion I had to log in to Virtualmin from my phone to do something quick and I had no trouble navigating the interface to get where I needed to.
- Total control over what packages are installed, what is running on the server, users, FTP accounts, etc.
- Easy to install and set. There is a one-line command that installs Virtualmin on your server. You can install a LAMP or LEMP bundle based on what you need. The default install will be the LAMP version (the one using Apache), but you can opt-in to install the Nginx one (LEMP). Also, you can install a minimal version bundle with only the vital things on it. The normal version requires at least 1GB RAM on your server, the minimal version works with 512MB RAM.
- Install Scripts option. This is like Softaculous on cPanel. You will be able to install WordPress, phpMyAdmin, Django with just one click.
- Easy to set backups and restore. You can do a full Virtual server back-up or just DB and even link it with Amazon S3.
- Notification system for package updates. You are able to select what updates you want to do, and you can even schedule them.
- PHP version control (based on folders or virtual servers).
There are a lot more features in there and, from my experience, I didn’t notice anything cPanel has that Virtualmin is missing. Some things might just be renamed in a different way.
How to install Virtualmin?
As I mentioned above, the install process is simple.
You will need a server that runs Linux (OS supported) and of course access to the terminal.
First, you need to get the install script on your server. You can do that by running:
And after that, you need to run the install script
sudo /bin/sh install.sh
Here and here you can find details on how to install Virtualmin (LAMP or LEMP and other options on the install). I really recommend checking this video tutorial made on their official channel that explains how to install and configure Virtualmin after installation.
In the video, you will find a lot of useful details when it comes to configuring Virtualmin and get to understand if you need some features or not. This way you might save on memory used while running your sites.
Requirements for Virtualmin
On the technical side:
- One of the supported Linux distributions
- At least 1GB (512MB for the minimal version) of memory and 1GB storage. More is always better.
Something I want to mention, that I talked about in the VPS articles as well: you need to be ready to learn some new things. You might need to dig into some issues, use the terminal, install some modules/packages, search for a fix on the Virtualmin forum.
This is part of owning a VPS that is not managed by the hosting provider. But I’m pretty sure you wouldn’t be reading this article if you opted for a managed VPS,.
So, take a deep breath and don’t be scared by the idea of inputting commands into the dark terminal. There are some commands that you will learn fast and this will make life much easier. Not to mention that understanding what you need to do and being able to use the terminal makes it much faster.
Final thoughts on Virtualmin
After using it for a while, I want to say that I don’t miss anything from cPanel. Although I used cPanel for years, it took me a day to move everything we have in Virtualmin and about a month to get used to all the details.
2 weeks ago, I’ve set-up another Virtualmin on a DigitalOcean droplet and with CentOS 8 it worked like a charm from the start.
There is a comprehensive documentation and an active forum (old forum) where you can troubleshoot your issues. I was afraid that there would be a small community and I would have to figure out most of the issues by myself, but that was not the case.
If you just Google your issue/question and add “virtualmin” in it, in almost all cases there will be at least an answer on the official forum.