How To Install Webmin on Ubuntu 20.04 – DigitalOcean


Webmin is a modern web control panel that allows you to manage your Linux server through a browser-based interface. With Webmin, you can manage user accounts, configure DNS settings, and change common packet settings on the fly.

In this tutorial, you will install and configure Webmin on your server and secure access to the interface with a valid Let’s Encrypt certificate. You will then use Webmin to add new user accounts and update all packages on your server from the dashboard.

Prerequisites To

complete this tutorial, you will need:

  • An Ubuntu 20.04 server. This server must have a non-root user with sudo privileges and a UFW firewall configured. Set this up by following our Ubuntu 20.04 server initial setup guide.
  • Apache

  • installed by following our tutorial on how to install Apache web server on Ubuntu 20.04. As you follow this prerequisite guide, be sure to configure a virtual host.
  • A

  • fully qualified domain name (FQDN), with a DNS A record that points to the IP address of the server. To set this up, follow these instructions on DNS hosting on DigitalOcean.

Step 1 — Installing


First, update your server’s package index if you haven’t done so recently:

  1. sudo apt


Then we need to add the Webmin repository so we can install and update Webmin using our package manager. We do this by adding the repository to the /etc/apt/sources.list file.

Open the file in your preferred editor. Here, we’ll use


  1. sudo nano /etc/apt/sources.list

Then add this line to the end of the file to add the new repository:

. . . deb sarge contrib

Save the file and exit the editor. If you used nano, do so by pressing CTRL + X, Y, and then ENTER.

Next, you’ll add the Webmin PGP key for your system to trust the new repository. To do that, however, you must install the gnupg1 package, which is GNU’s tool for secure communication and data storage.

After that, download the Webmin PGP key with wget and add it to your system’s key list: wget

-q -O- | sudo apt-key add

Then update the package list again to include the now trusted

Webmin repository: sudo apt update Then install Webmin:

  1. sudo apt install webmin

After the installation is complete, you will be presented with the following output:

Output . . .

Complete Webmin installation. You can now log in to https://your_server:10000 as root with your root password, or as any user who can use sudo.

Let’s secure access to Webmin by adding a valid certificate.

Step 2 — Add a valid certificate with Let’s Encrypt

Webmin is already configured to use HTTPS, but uses a self-signed and untrusted certificate. Let’s replace it with a valid Let’s Encrypt certificate.

Navigate to https://your_domain:10000 in your web browser, replacing your_domain with the domain name pointing to your server’s IP address.

You will be presented with a login screen. Log in with the non-root user that you created by meeting the prerequisites for this tutorial.

Once you log in, the first screen you will see is the Webmin control panel. Before you can apply a valid certificate, you must set the host name of the server. Find the System Hostname field and click the link on the right, as shown in the following figure:

Image showing where the link is in the Webmin control panel

This will take you to the DNS Host and Client Name page. Locate the Host Name field and enter your Full Domain Name in the field. Then click the Save button at the bottom of the page to apply the settings.

After setting your hostname, click the Webmin drop-down menu in the left navigation bar and then click Webmin Settings.

On the Webmin Settings page, select SSL Encryption from the list of icons, and then click the Let’s Encrypt tab. You will see a screen like the following figure:

Image showing the Let

On this page, you will tell Webmin how to obtain and renew your certificate. Let’s Encrypt certificates expire after 3 months, but you can instruct Webmin to try to automatically renew the Let’s Encrypt certificate every month. Let’s Encrypt looks for a verification file on the server, so we’ll configure Webmin to place the verification file inside the /var/www/your_domain folder, which is the folder used by the Apache web server you configured in the prerequisites. Follow these steps to configure

the certificate:

  1. Populate the host names of the certificate with the FQDN
  2. .

  3. For Website root directory for the validation file, select the Other Directory button and enter the document root for your website. Assuming you followed the Apache tutorial as a prerequisite, it will be /var/www/your_domain.
  4. In the Months between auto-renewal section, deselect the Renew only manually by typing 1 option in the input box and select the radio button to the left of the entry box.

Click the Request Certificate button. After a few seconds, you will see a confirmation screen.

To use the new certificate, click the Back to Webmin Settings button on the confirmation screen. From that page, scroll down and click the Restart Webmin button. Wait about 30 seconds, and then reload the page and sign in again. Your browser should now indicate that the certificate is valid.

Step 3 – Using


You have now set up a secure working instance of Webmin. Let’s see how to use it.

Webmin has many different modules that can handle everything from the BIND DNS server to adding users to the system. Let’s see how to create a new user and then explore how to update your system packages using Webmin.

Managing Users and

Groups Let’s explore how to manage the users

and groups on your server. First, click the System drop-down menu in the left sidebar, and then click the Users & Groups


. From here, you can add and manage users and groups.

Let’s create a new user called deploy that you can use to host web applications. When you create a user, you can set options for password expiration, the user’s shell, and whether or not they are allowed a home directory.

To add a user,

click Create a new user, which is located at the top of the user table. This displays the Create User screen, where you can provide the user name, password, groups, and other options. Follow these instructions to create the user:

Fill in User name with

    deploy. Select Automatic

  1. for user ID
  2. .

  3. Fill in Real Name with a descriptive name such as Deployment User
  4. . Under

  5. Home Directory, select Automatic
  6. . In the Shell, select /

  7. bin/bash from the drop-down list.
  8. Under Password, select Normal password and

  9. type a password of your choice
  10. .

  11. Go to Parent Group and select New Group with the same name as the user
  12. . Under

  13. Secondary group, select sudo from the All Groups list. This should be automatically added to the In Groups list, but if it isn’t, press the -> button to add it.

After you make those selections, press Create. This will create the deployment user in no time.

Next, let’s see how to install updates on our system.


Webmin packages allows you to update all your packages through its user interface. To update all your packages, first, click the Panel button above the left sidebar and then find the Package Updates field. If updates are available, you’ll see a link indicating the number of available updates.

Click this link, and then press Update Selected Packages to start the update. You may be prompted to restart the server, which you can also do through the Webmin interface.


You now have a secure working instance of Webmin and have used the interface to create a user and update packages. Webmin gives you access to many things that you would normally need to access through the console, and organizes them in an intuitive way. For example, if you have Apache installed, you’ll find the configuration tab for it under Servers and then Apache.

Explore the interface or read the official Webmin wiki to learn more about managing your system with Webmin.

Contact US