Virtualmin is very robust open source control panel. It can be installed on CentOS, Debian, Ubuntu, etc. It runs as module to webmin which is written in perl and provides almost everything required for managing control panel. Once installed you might never need to see command line again even for updating packages. It notifies you as soon as update is available and you can update them with just one click.


You need following things to be ready in order to install virtualmin

  • a domain from NameCheap
  • a VPS or cloud with a minimum of 1 GB RAM. I am using Contabo here.

Now, an immediate question could pop up in your mind. How to decide VPS or cloud specification? Well, it completely depends on the amount of traffic your website could generate. Virtualmin is going to consume roughly 512 MB of RAM. Therefore even at the beginning, I would say go with 2 GB RAM and 1 vCPU at least. In this demonstration, I will be using Contabo VPS with 8 GB RAM, enough for Virtualmin and most applications.

I have my domain registered with namecheap. Check out for deals on domain name registration and hosting.

Updating DNS records

After you receive the IP address from VPS seller login to the domain registrar and create custom nameserver also called hostnames/ child nameservers. For example if is your domain name, then you will have to create & and in next field pass on the IP address received.

Next, update the nameserver to newly created custom nameservers that is &


Before you begin the installation you need to connect to the server, with the details provided by the VPS company. It’s super easy to connect to the server from a Linux machine. But fortunately, we have several open-source application which makes the task easier even for Windows user. One such application is putty. After you have downloaded the putty first step is to connect to VPS from your Windows.


Enter the IP address of your server in the box highlighted in red in above box. A command window will open where you have to enter user name root and password provided by the VPS seller. Sometimes username could be different from root , therefore cross check with VPS seller. If it’s not root then you have to switch to root user with following command.

sudo -i

Next step is to update the server. On CentOS 8 run the following command.

dnf update -y

After that set the hostname

hostnamectl set-hostname

Replace with your domain name. Now comes the most awaited part. Go to Virtualmin and copy the command. I also have listed it here for convenience.

sudo /bin/sh

Above command will begin the installation. When asked for confirmation answer yes.

At the end of installation, you will be given an IP address something like this Open that URL in browser. You will receive warning, click in advanced and proceed.



Go to the IP address provided at the end of installation and login with server credentials, that is server username and password.

You will be asked several questions during the initial setup.


On, next screen make selection according to your server memory, if it’s 1 GB then don’t enable the following features.


Now, here on following screen it’s up to you to enable ClamAV or not. I like to keep using on demand scanner.


After that, you have enable or disable spam assassin feature.


Next, you have option to select among MySQL and PostgreSQL database server. Make your choice and hit next.


Thereafter, you will have to enter password for MySQL user. Keep this password safe, otherwise you will have to generate it. This will become handy later when you need to create and use a database.


Sometimes, you will receive error like this on next screen

If that is the case with you go to previous page an enter MySQL password once again and check the override box.

Now, on next screen make wise choice because database connection error depends on this.

Next, in primary nameservers enter and in next field Also check skip for resolvability.

After that, it will ask regarding password storage mode. Make your selection.

Finally, create default virtual server. It could be your domain or FQDN or even subdomain. Also, you have to option to install SSL certificate right now, though you can always install later.

After you finish going through initial configuration wizard, next you refresh the configuration. Now, create ” Virtual Server ” with main domain to finish the configuration.

After that you can install favorite apps on Virtualmin.


Installing virtualmin though seems to be difficult task, is not that hard. With 2 line install command it’s not only easy to install but also serve well the need of a user.AA

Installing & setup VestaCP with SSL and FTP could be a difficult task for beginners. Needless to say, many of us get lost in simple stuff like FQDN hostname for VestaCP. This guide includes videos as well to show it’s quite easy to install and setup VestaCP. But before we begin, you need to have few things ready.

Lecture 1: Introduction


  1. A domain
  2. A VPS or cloud or dedicated server – While placing an order, you would be given options to choose OS like Ubuntu, Debian, or CentOS. I would go with CentOS 7 this time, but if like to go with Ubuntu, it’s completely fine. In other article, I will discuss installing VestaCP on Ubuntu.

Lecture 2: Buying VPS

Lecture 3: Updating and preparing the server

Now after ordering, I hope you have credentials ready to connect to the server. Connecting to the server from Ubuntu and Mac is straightforward. Open the terminal and type the following command to connect.

ssh [email protected]_address -p password

However, for windows you need a special software called putty.

After you are connected to the server it’s time to update OS.

yum update -y

To steup hostname use the following command.

hostnamectl set-hostname

Lecture 4: Configuring DNS

Now before we proceed with VestaCP installation, let’s make changes to DNS enteries. I have demonstrated Godaddy in the video.

Read: How to create custom nameservers in Namecheap

Lecture 5: Installing VestaCP

Now it’s time to install VestaCP. Copy the following command to install it or you can get commands directly from VestaCP website.

# Download installation script
curl -O
# Run it

After installation, you will be give an URL like and username “admin” and password. Save it for future and go to the URL given.

Login with the credentials.

Lecture 6: VestaCP configuration

After installation, when you login for the first time, you will be presented with a nice dashboard. Here you have to add the main domain and create few DNS records. This way our server will be reachable over the main domain. After this configuration, you would also be able to access admin at This means you need not always go to hostname or FQDN to access the admin.

Lecture 7: Adding Domains and Subdomains

Adding a domains and subdomains is fairly straightforward. Just go to the WEB tab and click add web domain. After that enter domain name or subdomain and save it. That’s all.

Lecture 8: Creating Plans & Adding Users

If you are planning to sell hosting to customers, then you would have to create different pricing plans and corresponding packages. In order to create plans first go to “Packages” at the top menu. There you would find several plans are already listed. The second step would be to add or edit the existing plan. Now, you have plans ready, head towards “USER” tab, add a user, assign a package, and share credentials with your customers.

Lecture 9: Installing Letsencrypt SSL on VestaCP

Nowadays, SSL is a must for any website. There are several SSL providers costing from ten dollars to thousands of dollars. Fortunately, we do have a free SSL provider which is none other than Letsencrypt. The best part of VestaCP is that you can import and enable letsencrypt SSL easily. In the following video, I have demonstrated the process.

Lecture 10: Creating Mail Accounts

Creating Mail accounts is as simple as adding domain. Just got to Mail tab and hit create account, fill the details and you are good to go.

Read: How to Install WordPress on VestaCP

Finally, you have successfully installed VestaCP. Let me know if you have any questions in the comment.

Recently, one of the my students asked for list of best and cheap VPS hosting provider for email marketing. This is one of difficult question to answer. It is because there are hundreds of VPS hosting provider but none of them is perfect.


10 ways to build your own SMTP server for email marketing

1. Contabo

The German VPS provider sells VPS really cheap. Starting at €4.99 per month they are best one for SMTP server. They sell VPS with open port 25. So you don’t have to worry port at least. You can also order additional IPv4 to fulfill your need of emailing.

Check out Contabo VPS plans

2. OVH

The France based hosting provider is second on my list. They also sells VPS for cheap but not as cheap as Contabo. But they are good one and several datacenters across the world. Here also you can order additional IPv4.

Check out OVH plans

3. Hetzner

It is another cheap VPS provider in Germany and Finland. They do sell VPS with open port 25 as of now. Also you can get up to 10 additional IPs.

Check out Hetzner cloud plans

4. Hostwinds

Hostwinds price is not very cheap, but they are known for reliability. There do offer competitive price and open port 25. Now a days many VPS providers are not selling VPS with open port 25 to curb spamming.

Check out Hostwinds plan

5. Interserver

Interserver not only provide VPS hosting but also let you choose different platform to which you can subscribe based on your need. From KVM to open VZ, they provide various options at competitive price.

Check out Interserver VPS plans

This list would be inexhaustible and I have tried to list few cheap and best one. Let me know in comment if you find another best one.

Today almost all web hosting company provides cPanel on Linux hosting to manage users their website and application. It is because cPanel is simple and easy to use. But when it comes to self hosting, in other words you bought a VPS or cloud and wants to manage application getting cPanel could be expensive affair. The cost of monthly license of cPanel is $15 which will add to your server rental. Luckily, we have number of control panel available free of cost. In this article, I have listed 15 best free control panel that you could use as cPanel alternative. Let’s get started.

1. Virtualmin

Virtualmin is very powerful and flexible control panel. It is available for major Linux distros and just one command is required to install. You can mange user, quotas, email accounts just like cPanel. It doesn’t come with Softaculous but shortcut is available for WordPress installation. Also, WHMCS is available listed in install scripts which will make billing customers easy.

2. VestaCP

VestaCP is light weight and one of the popular control panel. With extremely friendly user interface, it consume very little resources on your server. Therefore, you can install it on smallest specs cloud as well. Also, Softaculous comes with it but not all CMS are unlocked. But you can always upload the web files to public_html directory and install it manually.

3. CentOS Web Panel

CentOS Web Panel is CentOS exclusive control panel. It is loaded with all the necessary features needed to manage your customers.

4. ISPconfig

With extensive documentation and big community ISPconfig control panel is available in market for quite sometime. You can also get support through forum if you ran into issues just in case.

5. Froxlor

Froxlor is completely free and open source panel. It is lightweight software and installs quickly. It is also backed by large community and therefore you will get updates timely. You may find UI of Froxlor is not very intuitive, but its get the job done.

6. Ajenti

Ajenti is one of the best light weight control panel. It can also be extended with phython and JS. If you are looking for no fuss control panel then Ajenti is what you want to choose.


There’s a good number of free control panel available, but obviously you have to make a choice. If you are feeling difficulty in making choice then go through my installation videos, that will definitely help you make choices. However, I am using virtualmin as control panel to manage this website. I hope that could help.