What Virtualmin Provides
Prerequisites
Before starting, ensure you have:
System Requirements
- • Minimum: 1GB RAM, 20GB SSD, 1 vCPU
- • Recommended: 2GB+ RAM, 40GB+ NVMe
- • Ubuntu 22.04/24.04 LTS or Debian 11/12
- • Root SSH access
Before You Begin
- • Fresh OS installation (Ubuntu 24.04 recommended)
- • Registered domain name with DNS access
- • FQDN configured for server hostname
- • Basic SSH and Linux knowledge
💡 Note: For hosting multiple sites with email and databases, a 2GB+ RAM plan is strongly recommended.
Initial Server Setup
Connect to your RamNode VPS and prepare the system:
ssh root@your-server-ipapt update && apt upgrade -yhostnamectl set-hostname server.yourdomain.comnano /etc/hostsAdd or modify the following line with your server's public IP:
203.0.113.10 server.yourdomain.com serverhostname -f✓ This should return your full hostname (e.g., server.yourdomain.com)
Configure DNS Records
Before installing Virtualmin, configure DNS records at your domain registrar:
| Type | Name | Value | Purpose |
|---|---|---|---|
| A | server | Your VPS IP | Server hostname |
| A | @ | Your VPS IP | Root domain |
| A | www | Your VPS IP | WWW subdomain |
| MX | @ | mail.yourdomain.com | Email routing |
💡 Tip: DNS propagation can take up to 24-48 hours, but typically completes within a few hours.
Install Virtualmin
Download and run the Virtualmin automated installer:
wget -O install.sh https://software.virtualmin.com/gpl/scripts/virtualmin-install.sh
chmod +x install.sh./install.sh --bundle LAMPFor a minimal installation without mail services:
./install.sh --bundle LEMP --minimal⚠️ Important: Installation takes 10-20 minutes. Do not interrupt the process!
Access Virtualmin Interface
Once installation completes, access the Virtualmin web interface:
https://server.yourdomain.com:10000https://your-server-ip:10000Login Credentials:
- • Username: root
- • Password: Your server's root password
🔐 Note: Your browser may warn about the self-signed SSL certificate—this is normal for initial setup.
Complete Post-Installation Wizard
After logging in, Virtualmin launches a configuration wizard. Follow these recommendations:
1. Preload Virtualmin libraries: Select "Yes" for faster interface (uses more RAM)
2. Run email domain lookup server: Select "Yes" if hosting email
3. Run ClamAV scanner: Select "No" for servers with less than 2GB RAM
4. Run SpamAssassin: Select "Yes" if hosting email
5. MySQL password: Set a strong root password for the database
6. MySQL database size: Select based on RAM (Small for 1GB, Medium for 2GB+)
7. Primary nameserver: Enter your server's FQDN (e.g., ns1.yourdomain.com)
Configure SSL with Let's Encrypt
Replace the self-signed certificate with a trusted Let's Encrypt certificate:
Navigate to: Webmin → Webmin Configuration → SSL Encryption → Let's Encrypt
Or use the command line:
virtualmin generate-letsencrypt-cert --domain server.yourdomain.com --web💡 Requirement: Your domain's DNS A record must point to your server and port 80 must be accessible.
Configure Firewall Rules
Virtualmin includes firewalld integration. Configure via command line:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=10000/tcp
firewall-cmd --reloadEssential Ports Reference
| Port | Service | Required |
|---|---|---|
| 22 | SSH | Always |
| 80 | HTTP | Web hosting |
| 443 | HTTPS | Web hosting |
| 10000 | Webmin/Virtualmin | Always |
| 25, 587, 465 | SMTP | Email hosting |
| 110, 143, 993, 995 | POP3/IMAP | Email hosting |
Security Hardening
Implement these security measures to protect your installation:
1. Enable Fail2Ban
Navigate to: Webmin → Networking → Fail2Ban Intrusion Detector
2. Change Default Ports
Consider changing SSH (22) and Webmin (10000) to non-standard values
3. Enable Two-Factor Authentication
Navigate to: Webmin → Webmin Configuration → Two-Factor Authentication
4. Create Non-Root Admin
Avoid using root for daily administration; create an admin user with sudo privileges
5. Configure Automatic Updates
Navigate to: Webmin → Software → Software Package Updates
Create Your First Virtual Server
With Virtualmin configured, create virtual servers (domains) to host websites:
- Click "Create Virtual Server" in the left navigation
- Enter the domain name (e.g., example.com)
- Set an administration password for the domain owner
- Select features to enable: Website, SSL, MySQL database, Mail
- Click "Create Server"
✓ After creation, install applications like WordPress through Virtualmin → Install Scripts, or upload files to the domain's public_html directory.
Troubleshooting Common Issues
Additional Resources
Ready to Deploy Virtualmin?
Get started with a RamNode VPS optimized for hosting control panels.
