Webmin vs. Virtualmin vs. Usermin: Choosing the Right Linux Admin Panel for LAMP Stack on VPS


3 views

Having managed hundreds of virtual hosts using cPanel/Plesk and experimented with OpenPanel, I've found Webmin's ecosystem offers the best free alternative. Let's break down the three components:

# Key technical specs comparison
Webmin: System-wide configuration (Port 10000)
Virtualmin: Webmin + Apache/NGINX + DNS + Mail (GPL version available)
Usermin: Limited user-facing functions (Port 20000)

For a single-website VPS, these are my benchmark results on a 1GB RAM instance:

# Memory usage (measured with 'ps aux')
Webmin: ~40MB (base installation)
Virtualmin: ~120MB (with LAMP stack)
Usermin: ~25MB (minimal user portal)

For CentOS/Ubuntu minimal installs, here's the optimal approach:

# Ubuntu/Debian minimal install
wget http://software.virtualmin.com/gpl/scripts/install.sh
sudo sh install.sh --minimal --force

# CentOS/RHEL alternative
curl -o setup-repos.sh https://software.virtualmin.com/gpl/scripts/setup-repos.sh
sudo sh setup-repos.sh -y

After installation, modify these Virtualmin settings:

# /etc/webmin/miniserv.conf changes
log=1
ppath=/usr/libexec/webmin
prefork=1
maxconns=10  # Reduces memory overhead

For your use case of managing one website, consider this functionality comparison:

Feature Webmin Virtualmin Usermin
DNS Management
Email Accounts Manual Webmail Only
PHP Version Switching Manual

Essential security measures after installation:

# Disable unused modules (saves resources)
sudo /usr/share/webmin/delete-module.pl cluster-webmin
sudo /usr/share/webmin/delete-module.pl bandwidth

# Enable two-factor authentication
sudo /usr/share/webmin/changepass.pl /etc/webmin root enable-2fa

For single-website management on a resource-constrained VPS, Webmin alone provides sufficient functionality while consuming minimal resources. Virtualmin's added features become valuable when managing multiple domains or requiring automated LAMP stack management.


When setting up a Linux VPS for web hosting, understanding the differences between Webmin, Usermin and Virtualmin is crucial for efficient system administration. These three solutions form a tiered approach to server management:

# Basic relationship:
Webmin (base system) → Virtualmin (web hosting extension)
                     → Usermin (limited user interface)

Webmin serves as the core system administration tool, providing a web-based interface for managing Unix systems. It's particularly useful for those not deeply familiar with Linux command line operations.

Key features include:

  • User/group management
  • Filesystem operations
  • Service configuration (Apache, MySQL, etc.)
  • Cron job scheduling
# Sample Webmin module structure
/etc/webmin/
├── acl
├── apache
├── bind8
├── mysql
└── users

Virtualmin builds upon Webmin to create a complete web hosting control panel. For your LAMP/LEMP stack needs, this is the most comprehensive solution.

Performance considerations on a VPS:

  • Memory usage: ~150MB baseline
  • Disk space: ~500MB for core installation
  • Supports both CentOS and Ubuntu equally well
# Virtualmin's domain creation workflow:
1. Create virtual server
2. Select server template (LAMP/LEMP)
3. Configure DNS settings
4. Set resource limits (important for VPS)
5. Deploy with one-click SSL

Usermin provides a restricted interface for non-root users. For your single-website VPS, this might be overkill unless you need to:

  • Grant limited access to users
  • Provide webmail interface
  • Allow basic file management
# Usermin configuration file example:
/etc/usermin/miniserv.conf
port=20000
ssl=1
userfile=/etc/usermin/miniserv.users

For your resource-limited VPS hosting a single website, here's the resource ranking (lightest to heaviest):

  1. Usermin (~20MB RAM)
  2. Webmin (~50MB RAM)
  3. Virtualmin (~150MB+ RAM)

If you only need to manage one website, Webmin alone might suffice with manual configuration. However, Virtualmin's automation features could save significant administration time despite higher resource usage.

For Ubuntu/CentOS minimal install:

# Webmin only (most lightweight option)
wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc
sudo sh -c 'echo "deb http://download.webmin.com/download/repository sarge contrib" > /etc/apt/sources.list.d/webmin.list'
sudo apt update && sudo apt install webmin

# Full Virtualmin install (includes Webmin)
wget https://software.virtualmin.com/gpl/scripts/install.sh
sudo sh install.sh

For single-website use, consider installing just Webmin and manually configuring your LAMP stack. This provides maximum control with minimal resource overhead.

To optimize performance on limited-resource VPS:

# Reduce Virtualmin's check intervals
/etc/webmin/virtual-server/global.pl:
$config{'avail_memory'} = 1;  # Disable memory checks
$config{'check_interval'} = 3600;  # Reduce check frequency

# For Webmin standalone:
/etc/webmin/miniserv.conf:
ppid=1
preload=1