Virtualmin for Dummies - How to Replace cPanel Shared Hosting with Virtualmin

Hi All!

I am new to Virtualmin, but not server administration (I have been a linux sysadmin for closing in on 20 yrs now). I have always done everything from the command line :slight_smile:

Last year I decided to switch all of my personal and side-hustle websites/email to a shared hosting company. In my mind this was a great idea because I didn’t have to deal with the day-to-day server admin that comes along with running your own servers. However, I stumbled upon a niche that all of a sudden has increased the traffic to one of my websites quite significantly. After looking at the options, shared hosting is not where I want to be… I want to go back to my own server.

After having used cPanel for the past year I have become lazy when it comes to my website/email hosting :stuck_out_tongue: What I would like to do is to transition everything over to a VPS. My current env is a moderate-sized Linode VPS (4 GB RAM, 2 CPU Cores, 80 GB SSD) running Debian 9 with fail2ban installed. I am using Linode for my DNS. I purchased the 10 site license for Virtualmin and I have it installed, but I am not sure where to go from here.

My current shared web hosting is divided into 2 cPanel accounts, one for personal (mostly email hosting) and business (all of my side-hustle niche sites + email). What I would like to do is:

  1. Transition all of the domains to my VPS
  2. Have the websites hosted with Let’s Encrytpt SSL
  3. Host email (don’t necessarily need webmail)
  4. Be able to host a domain for a friend - giving them their own (locked down) admin panel

Some of my questions include:

  1. If I create a ‘Virtual Server’ in Virtualmin, is it basically the same as a cPanel account? Which would mean that it would be a separate account that could be limited (see #4 above)? If that is the case, would that account be able to add other domains to their account or does each new domain need to be added by the main Virtualmin admin?

  2. Does there exist the same sort of notion of ‘Add-on Domains’ like there is in cPanel where additional domains are considered subdomains of a particular account?

  3. How does Virtualmin handle DNS for additional domains if it is not configured to be a DNS server?

I am not sure what I need to do from here. I have found the Virtualmin YouTube channel and watched the videos, but I’m having trouble tying it all together in my mind to match what I am trying to accomplish. Any of the other tutorials I have found online are way outdated!

Any help would be greatly appreciated.
Cheers!

“1. If I create a ‘Virtual Server’ in Virtualmin, is it basically the same as a cPanel account? Which would mean that it would be a separate account that could be limited (see #4 above)? If that is the case, would that account be able to add other domains to their account or does each new domain need to be added by the main Virtualmin admin?”

Yes. Yes. Yes, virtual server (domain) owners may be granted permission to manage their own domains as well as create new sub-servers (which is a new site+other services managed by the same user).

“Does there exist the same sort of notion of ‘Add-on Domains’ like there is in cPanel where additional domains are considered subdomains of a particular account?”

I’m not very familiar with cPanel terminology. But, a sub-server is basically a domain (website+optional mail/dns/databases/etc.) owned by an existing virtual server user account.

“How does Virtualmin handle DNS for additional domains if it is not configured to be a DNS server?”

I don’t think I understand the question. There’s nothing to handle about DNS if Virtualmin is not configured to be a DNS server, is there? What are you wanting it to do (aside from “nothing”)?

Virtualmin’s concept of users has never changed significantly in 13 years or so (reseller accounts arrived in 2005, and “subdomains” went away around 2007, there have been no changes since). So, any tutorials or docs about users from the past decade won’t be outdated, but we’re happy to answer questions as best we can (but we aren’t cPanel experts, so we may not understand the terminology!).

Thanks for your reply!
Since I’m pretty ‘old school’ the whole cPanel thing was new to me, and now Virtualmin too :slight_smile: The cPanel way of doing “add-on domains” is a pain point for me since adding a domain under an account always creates it as an alias/subdomain as well (super annoying!!)

Like so:

MainAccountDomain.com
SubDomain.com --> also maps to --> SubDomain.MainAccountDomain.com

And what you end up with is a zillion unnecessary subdomains of your main domain, and a bunch of crazy SSL certs issued for both your add-on domain FQDN, as well as the convoluted subdomain.maindomain.com >:-/

I am happy to see that Virtualmin deals with additional domains in a rational way :slight_smile:

I just disabled DNS Bind and all is good as far as the DNS goes. I guess that was kind of a dumb question. haha

lunatrix, I have a similar story. The best thing is just install virtualmin over a minimal OS install and play with it for a while until you get familiar with it. You can pick up a cheap OpenVZ VPS or two from some of the providers on lowendtalk and create dev/test machines. I also added separate machines across the globe for my DNS/backups/whatever. Webmin clusters nicely for DNS management across multiple machines.

@noisemarine - thanks for the advice! I have done just that. I installed and played around with it, and now I think I’m ready to do it ‘for real’ :slight_smile: I am setting things up on a Linode and that seems to be working great. I tested a backup of my busiest Wordpress site on the install, and the site is blazing fast - as opposed to the lag it suffers being hosted on shared hosting.

I’m so glad I found Virtualmin!