Web Hosting Control Panel

    Deploying Virtualmin on RamNode VPS

    Virtualmin is a powerful, open-source web hosting control panel built on Webmin. Manage domains, email, databases, and web applications from a single dashboard. Combined with RamNode's reliable VPS hosting, you get a cost-effective hosting platform with full root access.

    Ubuntu 24.04 LTS
    Virtualmin GPL
    ⏱️ 15-25 minutes

    What Virtualmin Provides

    Complete web hosting stack (Apache/Nginx, MySQL, PHP)
    Domain and DNS management with BIND
    Email hosting with SpamAssassin & ClamAV
    Database administration (MySQL/PostgreSQL)
    SSL/TLS with Let's Encrypt integration
    User and reseller account management
    Backup and restore functionality
    One-click app installation (WordPress, etc.)

    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.

    2

    Initial Server Setup

    Connect to your RamNode VPS and prepare the system:

    Connect via SSH
    ssh root@your-server-ip
    Update System Packages
    apt update && apt upgrade -y
    Set Server Hostname (Critical for Virtualmin)
    hostnamectl set-hostname server.yourdomain.com
    Configure /etc/hosts
    nano /etc/hosts

    Add or modify the following line with your server's public IP:

    /etc/hosts entry
    203.0.113.10     server.yourdomain.com      server
    Verify Hostname Configuration
    hostname -f

    ✓ This should return your full hostname (e.g., server.yourdomain.com)

    3

    Configure DNS Records

    Before installing Virtualmin, configure DNS records at your domain registrar:

    TypeNameValuePurpose
    AserverYour VPS IPServer hostname
    A@Your VPS IPRoot domain
    AwwwYour VPS IPWWW subdomain
    MX@mail.yourdomain.comEmail routing

    💡 Tip: DNS propagation can take up to 24-48 hours, but typically completes within a few hours.

    4

    Install Virtualmin

    Download and run the Virtualmin automated installer:

    Download Installation Script
    wget -O install.sh https://software.virtualmin.com/gpl/scripts/virtualmin-install.sh
    chmod +x install.sh
    Run Standard LAMP Installation
    ./install.sh --bundle LAMP

    For a minimal installation without mail services:

    Minimal LEMP Installation (Optional)
    ./install.sh --bundle LEMP --minimal

    ⚠️ Important: Installation takes 10-20 minutes. Do not interrupt the process!

    5

    Access Virtualmin Interface

    Once installation completes, access the Virtualmin web interface:

    Access URL (using hostname)
    https://server.yourdomain.com:10000
    Access URL (using IP)
    https://your-server-ip:10000

    Login 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.

    6

    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)

    7

    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:

    Generate Let's Encrypt Certificate
    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.

    8

    Configure Firewall Rules

    Virtualmin includes firewalld integration. Configure via command line:

    Open Essential Ports
    firewall-cmd --permanent --add-service=http
    firewall-cmd --permanent --add-service=https
    firewall-cmd --permanent --add-port=10000/tcp
    firewall-cmd --reload

    Essential Ports Reference

    PortServiceRequired
    22SSHAlways
    80HTTPWeb hosting
    443HTTPSWeb hosting
    10000Webmin/VirtualminAlways
    25, 587, 465SMTPEmail hosting
    110, 143, 993, 995POP3/IMAPEmail hosting
    9

    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

    10

    Create Your First Virtual Server

    With Virtualmin configured, create virtual servers (domains) to host websites:

    1. Click "Create Virtual Server" in the left navigation
    2. Enter the domain name (e.g., example.com)
    3. Set an administration password for the domain owner
    4. Select features to enable: Website, SSL, MySQL database, Mail
    5. 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

    Ready to Deploy Virtualmin?

    Get started with a RamNode VPS optimized for hosting control panels.