Raspberry Pi Webmin: A Web Interface for System Administration

In this Raspberry Pi Webmin tutorial, I will go through all the steps to set up the Webmin software package for the Raspbian operating system.

Raspberry Pi Webmin

Webmin is excellent if you wish to have a web-based interface for system administration. It removes the need to manually edit configuration files and makes administration a lot easier.

You can easily setup, modify and control applications such as an Apache HTTP server, SQL, Postfix, DHCP, PHP and many other software packages. These require a bit of setting up so check out the Webmin wiki page once you have it installed.

There are modules that you can use to extend the functionality of Webmin. For example, Virtualmin is a module that manages multiple virtual hosts through a single interface. Think software like Cpanel or Plesk.

The full tutorial can be found right below. I go through all the basics of setting up Webmin. Due to the sheer number of things you can configure I recommend that you look at the Webmin wiki after installation.

Equipment List

Below is all the equipment that I made use of for this Raspberry Pi Webmin tutorial.

Recommended

Optional

Installing Webmin

Before we begin, you will need to be on the latest version of the Raspbian operating system. It is likely these instructions will also work on other operating systems but I cannot guarantee it.

1. First, make sure Raspbian is completely up to date by running the following commands.

sudo apt-get update
sudo apt-get upgrade

2. Now we will need to install all the required packages of Webmin.

sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python shared-mime-info

3. The following wget command will download the required deb file to the Raspberry Pi. You may want to update the version number so that you’re downloading the latest version, you can view the latest version here.

wget http://prdownloads.sourceforge.net/webadmin/webmin_1.994_all.deb

4. Once downloaded, run dpkg It may take some time to install.

dpkg --install webmin_1.994_all.deb

5. You should now be able to access Webmin by going to the Pi’s IP address followed by the port 10000. Find out the Raspberry Pi’s IP address by using hostname -I

Below is an example of my address to access Webmin.

https://192.168.0.142:10000

6. You will receive a warning because the SSL will be invalid. It is safe to ignore this as we can’t receive a valid SSL certificate on an IP address.

7. Enter your username and password. If you haven’t changed it then the username will be pi and the password will be raspberry.

Raspberry Pi Webmin Main Dashboard

8. You can now move onto configuring any options that you wish to alter.

Configuring Webmin

There are a ton of options that you can configure in Webmin. These options include changing your SSL encryption, adding modules, logging, managing users, managing software packages and so much more.

Since there are just so many options to configure I recommended checking out the Webmin wiki for more information. Out of the box, there isn’t anything that really needs configuring.

Raspberry Pi Webmin Configuration

I do recommend that you secure your admin by changing the password and setting up two-factor authentication.

I will be looking at doing further tutorials on some of the cool modules that you can use with Webmin such as Virtualmin.

I hope by now you have been able to install Webmin on the Raspberry Pi without any issues. If you have some feedback regarding this Raspberry Pi Webmin tutorial, then please be sure to leave us a comment below.

16 Comments

  1. Avatar for E
    E on
    sudo dpkg --install webmin_1.994_all.deb
    (Reading database ... 200811 files and directories currently installed.)
    Preparing to unpack webmin_1.994_all.deb ...
    Unpacking webmin (1.994) over (1.994) ...
    dpkg: dependency problems prevent configuration of webmin:
     webmin depends on libnet-ssleay-perl; however:
      Package libnet-ssleay-perl is not installed.
     webmin depends on libauthen-pam-perl; however:
      Package libauthen-pam-perl is not installed.
     webmin depends on libio-pty-perl; however:
      Package libio-pty-perl is not installed.
    
    dpkg: error processing package webmin (--install):
     dependency problems - leaving unconfigured
    Errors were encountered while processing:
     webmin
    1. Avatar for Emmet
      Emmet on
      Editor

      Hi E,

      Please make sure that you have run step 2 of the “Installing Webmin” section.

      That error indicates that you are missing required packages that we install in that step.

      Cheers,
      Emmet

  2. Avatar for David
    David on

    You might want to update the instructions to use the Webmin 1.994 released vs. Webmin 1.991 released.

    1. Avatar for Gus
      Gus on
      Editor

      Thanks David, We have updated the tutorial with the new version!

  3. Avatar for hawk
    hawk on

    To fix dependency problems,try to use the following command
    sudo apt install -f

  4. Avatar for Jonathan
    Jonathan on

    Thanks for these well documented instructions.

    Step 2 needs a slight tweak I think. It has the final package as ‘shared-mime-inf’ should be ‘shared-mime-info’.

    I also note that the latest version of webmin is 991 according to the link you provided.

    1. Avatar for Emmet
      Emmet on
      Editor

      Hi Jonathan,

      Thank you for pointing out that mistake, I have now corrected that step so the correct package is referenced.

      I have also updated the tutorial to point to the latest version.

      Cheers,
      Emmet

  5. Avatar for Paul
    Paul on

    Hi

    Thank you for your guide, not sure if I did something wrong, or if dependencies have change since you wrote this.

    The latest version of webmin is 1.990, and the install failed –

    sudo dpkg --install webmin_1.990_all.deb
    [SNIPPED]
    dpkg: dependency problems prevent configuration of webmin:
     webmin depends on shared-mime-info; however:
      Package shared-mime-info is not installed.
    
    dpkg: error processing package webmin (--install):
     dependency problems - leaving unconfigured
    Errors were encountered while processing:
     webmin

    Sorted by running “sudo apt install shared-mime-info -y”

    1. Avatar for Emmet
      Emmet on
      Editor

      Hi Paul,

      Thank you for leaving a comment about that issue and your solution.

      I have updated our webmin link to point to the latest available version.

      Additionally I have added the missing package to the list we install within the tutorial.

      Cheers,
      Emmet

  6. Avatar for Sen
    Sen on

    You may need to install “unzip”.
    apt-get install unzip

  7. Avatar for Michael A Cooper
    Michael A Cooper on

    Hello,

    Nice article I have used Webmin with Virtualmin for years. After reading your article i am going to try and give it shot it would be great if virtualmin works on the RPi4 platform. Thanks for your work on this.

    Happy New Year! to everyone.

  8. Avatar for tom
    tom on

    Thank you very much – It works brilliantly!

  9. Avatar for bluesguy
    bluesguy on

    Thank you. I am just getting into the Raspberry PI and back into using ‘Unix’ style OS. This tutorial was very helpful.

  10. Avatar for Shark
    Shark on

    Thanks so much for this simple tut man!… trying to save some money on hosting fees by running my own server!

  11. Avatar for user_nm
    user_nm on

    Thanks for the quick and easy guide! Chrome no longer allows you to skip the SSL /unsafe page warning, so some Webmin config is required. Changing ssl=1 to ssl=0 in /etc/webmin/miniserv.conf does the job! I got some help from https://stackoverflow.com/a/48353997/7723476

  12. Avatar for tmaster
    tmaster on

    Ive been using webmin long before I got my PI so it was the first software I installed on the PI. I recommend installing it first. You wont need anything else. The chron editor is the best. And it can install most software on its own from the interface.

Leave a Reply

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