The Nightmare of ‘Command Line Administration’
Managing 1-2 personal websites via SSH is a breeze. You can leisurely configure Nginx, install SSL manually, or create databases. But when that number grows to 10 or 20, everything becomes a disaster. Every time you add a new domain, you have to fumble with a mess of config files in /etc/nginx/sites-available. Just one typo in a semicolon, and the entire server could crash immediately.
Many users immediately think of cPanel or Plesk. However, prices ranging from $15 to over $60 per month are a huge barrier for small projects. Sometimes, the panel license costs three times more than the VPS itself (usually around $5/month for a 1GB RAM plan). This is where Virtualmin comes in as a true lifesaver.
Why Virtualmin is a Worthy Competitor to cPanel?
Don’t let Virtualmin’s somewhat classic interface fool you. In essence, it’s a smart wrapper for Webmin, allowing you to control Linux services without altering the system structure. Instead of paying fees, you get full professional features:
- Create Virtual Hosts (vhost) with just a few clicks.
- Manage MariaDB/MySQL visually like phpMyAdmin.
- Auto-renew Let’s Encrypt SSL (never worry about expiration).
- Full Email Server system with SMTP, IMAP, and advanced Spam filters.
- Detailed User Quotas, perfect for those running small hosting services.
In reality, Virtualmin consumes very few resources. A 1GB RAM VPS can smoothly run about 5-7 medium-sized WordPress websites if you know how to optimize.
Which Choice Is Right for You?
Before diving into the installation, let’s look at the overall landscape of current management tools:
- Command Line (CLI): For hardcore users who want to learn deeply, but it’s extremely time-consuming to manage.
- Paid Panels (cPanel/Plesk): Excellent, high-level support, but the costs are very steep.
- Open Source Panels (Virtualmin, HestiaCP): A perfect balance between power and cost-efficiency.
After deploying on over 50 VPS for clients, I’ve found Virtualmin to be the most durable choice. It isn’t as “fragile” as some emerging panels, which often encounter errors during OS updates.
Steps to Install Virtualmin on Ubuntu Server 22.04
Important Note: Use a completely fresh server (Fresh Install). Do not install Virtualmin on a server already running websites because the installation script will automatically reconfigure the entire software stack (LAMP/LEMP), which can easily cause data conflicts.
Step 1: Set Up a Standard Hostname
The system needs a proper FQDN identifier for mail and DNS services to function. Set it in the format srv1.your-domain.com.
sudo apt update && sudo apt upgrade -y
sudo hostnamectl set-hostname srv1.yourdomain.com
Step 2: Run the Automatic Installation Script
Instead of installing each service individually, we will use the official script from Virtualmin. It will automatically detect Ubuntu 22.04 and install Apache, MariaDB, PHP, along with security modules.
wget https://software.virtualmin.com/gpl/scripts/virtualmin-install.sh
sudo sh virtualmin-install.sh
When the confirmation screen appears, just press y. This process usually takes 5 to 10 minutes. The script handles all the Postfix (mail) and BIND (DNS) configuration for you.
Step 3: Login and Initial Configuration
Once finished, access the address: https://your-IP:10000. Log in with the server’s root account.
Upon first login, Virtualmin will guide you through the Post-Installation Wizard. This is when you need to be mindful to optimize RAM:
- If RAM < 2GB: Select “No” for Pre-load Virtualmin libraries to save memory.
- Virus Scanning: If you don’t strictly need a mail server, turn off ClamAV to free up about 300MB of RAM.
- Password storage: Always choose “Hashed passwords” to ensure security in case the database is leaked.
Step 4: Add Your First Website
To run a new website, select Create Virtual Server. Enter the domain, set an administrative password, and click the create button. Virtualmin will automatically create the directory at /home/domain_name/public_html. Everything is ready for you to upload source code via File Manager or FTP.
Hard-Won Experience and Tips
Virtualmin’s interface might feel overwhelming at first due to the many menus. However, its real power lies in the ability to edit config files directly in the browser. You don’t need to open SSH every time you want to edit php.ini or Apache configuration files.
A small security tip: Change port 10000 to any other number and enable Fail2ban right in the Networking menu. This helps your server avoid 99% of automated brute-force password attacks.
In particular, take advantage of the Scheduled Backups feature. You can configure it so that at 2 AM every day, the server automatically compresses all data and pushes it to Google Drive or Amazon S3. This is the most valuable feature that helps me sleep soundly every night.
Conclusion
Virtualmin is not just a tool for quick web installation. It is a comprehensive and extremely stable server management ecosystem on Ubuntu 22.04. If you want to professionalize your hosting management process without the high costs, Virtualmin is definitely the #1 choice today.

