Introduction
Are you searching for a step-by-step guide to install Webmin on Debian 12? This simple tutorial is for you!
Webmin is a free, open-source web-based control panel that simplifies Linux server management right from your browser. Its intuitive dashboard lets you handle various configurations, including user accounts, disk quotas, DNS settings, services, web servers, and much more. If you’re using a LAMP stack, Webmin makes it easy to manage your Apache web server, MySQL, PHP applications, and even technologies like PostgreSQL and Python. Plus, you can manage your server remotely from any browser.
In this guide, we’ll walk through installing Webmin on an Debian 12 server. We’ll also cover basic system administration tasks like monitoring your system, adding users with custom permissions, managing packages, and running software or commands on your server.
Prerequisites
- A server running Debian 12.
- A root password is configured on the server.
Note
If you want to skip all the technical steps of setting up Webmin and have it installed in minutes, you can use our tried and tested 1-click Webmin application. Just choose a server, click Customize Your Own Server, under Select Server Image go to the Apps tab, then choose Webmin. This will set up Webmin in minutes!
Step 1: Updating the Package Cache
Start by updating the packages in the package manager cache to the latest available versions using the following command:
apt update
Step 2: Install Webmin on Debian 12
To install the Webmin control panel on Debian 12, you’ll first add the Webmin repository that will enable you to install the Webmin packages and update them with apt
, then you’ll update the package cache, and finally you’ll use the apt install webmin
command.
Install the Required Packages
First, install curl
to use it to download the Webmin repository setup script, and gnupg2
to verify Webmin signatures:
apt install gnupg2 curl -y
Download and Run the Setup Script
Next, download the setup script:
curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
Run this script:
sh setup-repos.sh
Update the package cache:
sudo apt update
Install Webmin
After the Webmin repositories setup, you can now install Webmin:
sudo apt install webmin --install-recommends
Once the installation finishes, check that the webmin
service is running properly using the following command:
systemctl status webmin
●root@mail:/tmp# systemctl status webmin
● webmin.service - Webmin server daemon
Loaded: loaded (/lib/systemd/system/webmin.service; enabled; preset: enabl>
Active: active (running) since Fri 2025-06-13 16:22:11 EDT; 13min ago
Process: 3606 ExecStart=/usr/share/webmin/miniserv.pl /etc/webmin/miniserv.>
Main PID: 3607 (miniserv.pl)
Tasks: 5 (limit: 2300)
Memory: 149.3M
CPU: 18.701s
CGroup: /system.slice/webmin.service
├─3607 /usr/bin/perl /usr/share/webmin/miniserv.pl /etc/webmin/min>
├─4007 /usr/bin/perl /usr/share/webmin/authentic-theme/stats.pl 555
├─4226 /usr/bin/perl /usr/share/webmin/miniserv.pl /etc/webmin/min>
├─5678 sh -c "(vmstat 1 2 2>/dev/null)"
└─5679 vmstat 1 2
Manage Webmin Service
Now that Webmin is installed, you can easily manage its service. The following commands will help you start, stop, restart, and check the status of the Webmin service.
To start the Webmin service, use the command:
service webmin start
To restart the Webmin service, execute:
service webmin restart
To stop the Webmin service, use the command:
service webmin stop
To check the status of the Webmin service, run the following command:
service webmin status
Note: Webmin is accessible via port 10000
. If you have a firewall, you need to allow Webmin’s port through the firewall:
ufw allow 10000
Warning: You should be extremely careful with your security practices. It is best to allow only a few trusted IP addresses or IP ranges to access your Webmin control panel.
With the Webmin package installed, use your browser to visit the following URL, replacing your_ip_address_or_domain
with your server’s IP address or domain name:
https://your_ip_address_or_domain:10000
If you haven’t set up an SSL certificate from a trusted Certificate Authority like Let’s Encrypt, your browser will show a “Not Secure” or “Connection is not private” error. This happens because the connection to your server isn’t recognized as secure. Don’t worry though—this is expected. Webmin uses a self-signed certificate for encryption, but since your server isn’t a known certificate authority, the browser flags it as untrusted.
