How to Install Virtualmin on Debian

Virtualmin installation tutorial

Hey there! Some links on this page may be affiliate links which means that, if you choose to make a purchase, I may earn a small commission at no extra cost to you. I greatly appreciate your support!

In this tutorial, you’ll learn how to install the Vitrualmin control panel on Debian. Because Debian is so closely related to Ubuntu, these steps should also work for Ubuntu installations. As a bonus, this tutorial will also install Webmin alongside of Virtualmin.

Vitrualmin System Requirements

Although Virtualmin suggests installing on a system with 1 GB RAM or more, I ran into the following when trying to install it on a Linode VPS with 1 GB of RAM.

Virtualmin system requirements RAM

In that case, I suggest you use a server with at least 2 GB of RAM.

At the time of this writing, the following operating systems are supported by Virtualmin.

  • CentOS/RHEL 6 on i386 and x86_64 and, 7 and 8 on x86_64
  • Debian 9 and 10 on i386 and amd64
  • Ubuntu 16.04 LTS, 18.04 LTS and 20.04 LTS on i386 and amd64 (non-LTS releases are not supported)

Please see the Virtualmin OS Support page for the latest compatible operating systems.

Virtualmin DNS Settings

While it’s not required, it’s a good idea to point your DNS A records to the IP address where you will be installing Virtualmin. This way, when you want to install an application like WordPress, you can associate the website with a domain name.

If you will be installing a free Let’s Encrypt SSL certificate through Virtualmin, the default subdomains that are created for a new server instance are as follows:

  • www
  • admin
  • mail
  • webmail

Add these subdomains as A records to your DNS settings as well.

Virtualmin and Webmin Installation

Virtualmin installation progress

Installing Virtualmin is a very automated process. Simply download the installer script with wget and execute it like this.

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

After confirming that you want to proceed with the installation and entering your hostname (if it’s not already set), the installation will take approximately 5 minutes to complete.

When the installation finishes, you can access your Virtualmin dashboard with a web browser. The default port for Virtualmin is 10000.

You can use your Debian username and password to log in to the Virtualmin dashboard.

Virtualmin and Webmin dashboard

Configuring Virtualmin

If you are interested in a basic overview, deploying a server, or installing WordPress on Virtualmin, please take a look at the following video tutorial.

YouTube video

If you have any questions about installing or configuring Virtualmin, please let me know in the comments below.

Facebook
Twitter
Pinterest
LinkedIn
Reddit

Meet Tony

Tony from Tony Teaches Tech headshot

With a strong software engineering background, Tony is determined to demystify the web. Discover why Tony quit his job to pursue this mission. You can join the Tony Teaches Tech community here.

7 Responses

  1. Hi.

    Thank you so much for all the great tutorials. I am not a programmer so don’t know/understand much. I was trying to do it with windows, and only got as far as 5 minutes and 1 second of the video. Till the part: Permanently added blah blah (ECDSA) to the list of known hosts.
    But that’s it, it doesn’t show the rest of the lines like it does on your screen: The programs included with the Debian/Linux systems are free………..

    Debian GNU/Linux comes with absolutely no warranty….

    None of these things show, what should I do? Please advice, awaiting for your kind response.

    Best regards,
    Abrar

    1. So this seems like you are at the point where you are installing logging into the server via SSH. This step is even before we begin to install Virtualmin. You will need to talk to the administrator of the server for help with logging in.

  2. Hi,
    I follow your tutorial and install virtualmin successfully, but i can not understand about subdomains. how to set A records to work default subdomains like mail.domain.com, http://www.domain.com etc.
    Please explain in detail or show any video if you have.
    Thanks,

  3. If you don’t need all the features Apache provides (just hosting a WordPress blog) then you can run this command to use LEMP instead of LAMP:

    /bin/sh install.sh –bundle LEMP

  4. Hey Tony,

    Please can you tell me how to fix this.
    The procmail command in the Postfix configuration does not exist.
    I got this error when I pressed check configurations.

  5. Thanks for the demo (don’t forget to verify port 10000 is listening on your VPS to access webmin)

    But you don’t show how to activate https on Webmin/Virtualmin Panel himself on port 10000.

    Pretty confusing for me.

Leave a Reply

Your email address will not be published. Required fields are marked *