Virtualmin is an open-source web hosting control panel for managing multiple domains through a single interface, simplifying the administration of websites, databases, mail servers, and more. It is based on Webmin, a web-based system administration tool for Unix/Linux servers.
Key Features of Virtualmin:
- Domain Management: Virtualmin allows users to create and manage multiple domains and websites, making it a good solution for hosting providers or businesses with many sites.
- User-Friendly Interface: The control panel provides a GUI to manage server services, including Apache/Nginx, MySQL/MariaDB, DNS, email servers, and more.
- Compatibility: Virtualmin is compatible with popular Linux distributions like Debian, Ubuntu, CentOS, and AlmaLinux. It supports both Apache and Nginx web servers.
- Built-in Security: It offers features like SSL certificate management, two-factor authentication, and IP access control, enhancing the security of your web hosting environment.
- Virtual Hosting: Virtualmin makes it easy to manage virtual hosting for different users, allowing independent websites on the same server.
- Email Management: Integrated email server configuration allows you to set up email domains, users, and spam filtering easily.
- Backups and Restores: It provides tools for backing up and restoring domains and server settings, giving admins flexibility in managing data safely.
- Resource Management: Virtualmin allows allocation of resources like bandwidth, disk space, and database quota, making it suitable for hosting resellers.
Editions:
- Virtualmin GPL: This is the free, open-source version, suitable for individuals or small teams.
- Virtualmin Professional: The commercial version, offering additional features such as advanced server monitoring, premium support, and a broader range of modules for enhanced hosting needs.
Benefits:
- Cost-Effective: Compared to other control panels like cPanel, Virtualmin offers a budget-friendly solution with a free option that meets most needs.
- Customization: Administrators can customize the panel’s configuration according to their specific requirements. Virtualmin also supports scripting and automation for routine tasks.
- Scalable: Virtualmin works well with small personal projects as well as large-scale hosting environments, offering scalability for growing needs.
Installation and Usage:
Virtualmin can be installed through a simple script that automates the setup of a LAMP/LEMP stack along with the Virtualmin control panel. Once installed, users can log in to the web-based GUI to manage all aspects of the server.
For administrators or developers seeking an open-source alternative to commercial hosting control panels, Virtualmin provides a flexible and powerful solution that is easy to integrate into existing environments.
Step 1: Create an Instance
First, create a server instance running Ubuntu 24.04.
- Access the Dashboard: Log in to your Shape.Host account and navigate to your Dashboard.
- Click Create: Click on the “Create” button located in the top-right corner.
- Select Instances: From the dropdown menu, choose “Instances” to begin creating a new cloud server.
- Select Location: Choose a data center location for your instance closest to your target audience for optimal performance.
- Choose a Plan: Scroll through the available pricing plans. Select a plan based on your project requirements, such as Standard, CPU-Optimized, or Memory-Optimized.
- Choose an Image: Select Ubuntu 24.04 as the operating system for your instance.
- Authentication and Finalize: Choose your authentication method, either via SSH keys or password. Once done, click Create Instance to launch your server.
- Obtain IP Address
- Once your instance is created, return to the dashboard.
- Find your instance’s IP address under the Resources section and use it to access your server.
Step 2: Connect to Your Instance
To connect to your instance:
- Open an SSH client like Terminal (Linux/macOS) or PuTTY (Windows).
- Use the following command to connect to your server:
ssh root@<your-instance-ip>
Replace<your-instance-ip>
with the actual IP address of your instance.
Step 3: Update System Packages
Before installing Virtualmin, update your system packages to the latest versions:
apt update
apt upgrade
Step 4: Download and Install Virtualmin
Download the Virtualmin installation script:
wget http://software.virtualmin.com/gpl/scripts/install.sh
Make the script executable:
chmod a+x install.sh
Run the Virtualmin installation script:
./install.sh
Step 5: Access Virtualmin
After the installation completes, open any web browser and access Virtualmin using the format below. Replace ip-address
with your server’s IP address:
https://ip-address:10000
You’ll be redirected to the Virtualmin setup wizard to complete the configuration.
Step 6: Proceed to Virtualmin Despite Security Warning
When accessing the Virtualmin Web Interface for the first time, you might encounter a browser warning like the one shown. This occurs because the server uses a self-signed SSL certificate, which isn’t trusted by default.
To continue with the installation and configuration of Virtualmin, click on “Advanced” and then select “Proceed to 51.254.111.73 (unsafe)” to bypass this warning.
Note: This warning is common when accessing a new server. You can replace the self-signed certificate with a valid one later on, which will make this warning go away in future access.
Step 7: Login to Virtualmin (Webmin Interface)
After bypassing the security warning, you will be prompted with a login screen like the one displayed. Enter your server’s credentials to continue. Typically, for initial setup, you will use:
- Username:
root
- Password: The root password you set during the server installation.
Make sure to click “Remember me” if you prefer not to enter the credentials repeatedly, and then click on the blue “Sign in” button to access the Virtualmin interface.
For security purposes, ensure you change these default credentials after the initial setup if you haven’t already.
Step 8: Post-Installation Wizard
Once you log in successfully, you will be greeted with the Post-Installation Wizard for Virtualmin. This wizard helps configure Virtualmin for optimal performance on your system.
You can make choices depending on whether you plan to host websites, manage email, or databases, as well as tailor the configuration based on your server’s memory and CPU capacity.
To proceed, simply click the Next button. If you want to skip the custom configuration and use default settings, you can click Cancel.
This wizard is recommended to ensure that Virtualmin is properly set up to match the resources and requirements of your server.
Step 9: Memory Usage Configuration
In this part of the Post-Installation Wizard, Virtualmin provides options to optimize performance based on your server’s available memory.
- Preload Virtualmin Libraries:
- Yes: This option preloads libraries for a faster user interface experience. However, it requires more RAM (around 40MB).
- No: This option will conserve RAM but increase CPU usage, which may result in a slower UI.
- Run Email Domain Lookup Server:
- Yes: Selecting this will make email processing faster at the cost of more memory usage (approximately 70MB).
- No: This will reduce RAM usage but may lead to slower mail processing and increased CPU load.
Choose the settings that match the available resources of your server and your performance priorities. After making your selection, click Next to proceed.
Step 10: Virus Scanning Configuration
In this step of the Post-Installation Wizard, you can decide whether to enable virus scanning for email using ClamAV.
- Enable virus scanning with ClamAV?
- Yes: This option provides email virus scanning for better security but uses up to 2GB of RAM, which can be a significant resource drain, especially on smaller servers.
- No: Choosing this option will save memory, but incoming emails will not be filtered for viruses.
If your server will handle a large volume of email, enabling ClamAV may be necessary. However, for servers with limited memory or those not planning to manage email, it’s recommended to disable this option to optimize resource usage.
Select your preferred setting and click Next to continue.
Step 11: Database Server Selection
In this step of the Post-Installation Wizard, you need to decide which database servers you want to enable on your system. Virtualmin supports both MariaDB and PostgreSQL:
- Run MariaDB database server?
- Yes: MariaDB is a popular choice for web hosting and is highly compatible with MySQL applications. Enabling this option is suitable for most use cases.
- No: If you don’t need MariaDB, choose “No” to conserve memory.
- Run PostgreSQL database server?
- Yes: PostgreSQL is known for advanced features and reliability, making it ideal for certain applications that require more complex database functionality.
- No: Select “No” if you do not require PostgreSQL, which will help reduce memory usage.
If you plan on hosting web applications, running MariaDB is usually enough. You can run both if you require, but note that each service consumes RAM even when not in use.
After selecting your preferred options, click Next to proceed.
Step 12: Set MariaDB Root Password
For security purposes, it is crucial to set a password for the root user of the MariaDB database. Without a password, anyone with access to your server could manage the MariaDB databases, which poses a major security risk.
- Change MariaDB password:
- Leave Unix socket authentication for the root user: This option is suitable for local server setups where you authenticate via Unix socket, but it’s less secure if remote access is required.
- Set to [password]: This option allows you to set a secure password for the root user. It’s recommended to use a strong password, such as the one suggested automatically by Virtualmin.
Once you’ve set a strong password, click Next to proceed.
Step 13: DNS Configuration
In this step of the Post-Installation Wizard, you will need to configure the DNS settings for your Virtualmin server. Proper DNS configuration is essential for your domains to be correctly resolved over the internet.
- Primary Nameserver:
- Enter the fully qualified domain name of your primary nameserver. In this example, it’s set to
tutorials.shape.host
. This value should be something that can be resolved by other systems on the internet. - You can optionally choose to Skip check for resolvability, but it’s generally recommended to leave this unchecked to ensure the nameserver is properly set.
- Enter the fully qualified domain name of your primary nameserver. In this example, it’s set to
- Additional Nameservers (optional):
- If you have additional nameservers, you can specify them here for redundancy. Adding multiple nameservers helps ensure domain resolution is still available even if one nameserver fails.
Once you’ve filled in the necessary fields, click Next to proceed.
Step 14: Post-Installation Complete
Congratulations! The Post-Installation Wizard is now complete, meaning Virtualmin has been successfully configured.
At this point, you can either:
- Click Return to Virtualmin to start managing your server and creating virtual hosts, or
- Continue with the wizard to configure optional features if needed.
Your server is now ready to start hosting websites, managing databases, email services, and more, depending on the features you enabled.
Step 15: Password Storage Mode
In this step of the Post-Installation Wizard, Virtualmin allows you to decide how passwords for virtual servers and mailboxes are stored:
- Store plain-text passwords:
- This option allows easy password recovery. However, storing passwords in plain text is less secure, as anyone with access to the server can read them if the system is compromised.
- Only store hashed passwords:
- This option provides higher security, as passwords are stored in an encrypted format (hashed). However, with hashed passwords, password recovery is not possible — the passwords will need to be reset instead. This is the recommended choice for most users to ensure enhanced security.
It’s generally advisable to choose Only store hashed passwords to protect your users’ credentials from potential security threats.
Once you’ve made your selection, click Next to proceed.
Step 16: MariaDB Database Size Configuration
In this step of the Post-Installation Wizard, you can adjust the MariaDB configuration size based on the amount of RAM available on your server and how intensively you plan to use the database. This helps optimize the performance and memory usage of your system:
- Keep MariaDB system defaults: Choose this if you prefer to keep the default configuration.
- Small system with 1G of RAM with infrequent MariaDB use: Suitable for low-resource servers or occasional use.
- Medium system with 2G of RAM with regular MariaDB use: Ideal for most general-purpose servers with moderate database activity.
- Large system with 4G of RAM on which MariaDB is substantially used: Suggested if MariaDB plays a critical role in your server and has substantial use.
- Huge system with 8G of RAM or more on which MariaDB is heavily used: Best for high-performance servers with heavy database load.
Select the configuration that best matches your server’s resources and expected database workload, then click Next to proceed.
Step 17: SSL Key Directory Configuration
In this step of the Post-Installation Wizard, Virtualmin gives you the option to choose where SSL certificates and keys are stored. This decision impacts security and manageability:
- Location for SSL Certificates:
- In each domain’s home directory: This option makes managing SSL certificates easier, as each domain’s certificate is kept in its respective home directory. However, this increases the risk that domain owners may accidentally delete their SSL certificates, which could cause their website to fail.
- Per-domain directory under
/etc/ssl/virtualmin
: This option centralizes certificate management under/etc/ssl/virtualmin
, reducing the risk of accidental deletion by users. It is generally the recommended choice for better security and stability.
Select your preferred storage location for SSL certificates and click Next to proceed.
Step 18: Finalizing Post-Installation Configuration
The Post-Installation Wizard is now completely finished, and all additional configuration steps have been successfully completed.
Click the Finish button to proceed to the main Virtualmin interface, where you can begin managing your virtual servers, websites, databases, email, and other features offered by Virtualmin.
Congratulations on completing the setup!
Step 19: Virtualmin Dashboard Overview
After completing the setup process, you will be taken to the Virtualmin Dashboard. This is the central interface where you can manage virtual servers, users, and system configurations.
- Create Virtual Server: To create a new website or domain, click on the green Add new virtual server, owned by button and select either an existing user or create a new one. This will start the process of setting up a virtual server where you can host websites, databases, and email.
- Re-check and Refresh Configuration: You may notice an information message indicating that Virtualmin’s configuration has not been checked since the last update. Click the Re-check and refresh configuration button to verify the settings and ensure everything is properly configured.
- Navigation Menu: The menu on the left allows you to navigate through various settings such as system customization, email settings, addresses, and networking. Here, you can also access options for backup and restore, system statistics, and more.
With the setup complete, you can begin creating virtual servers and managing your hosting environment.
If you’re looking for reliable hosting solutions to run your web hosting projects, consider Shape.Host Cloud VPS. With Shape.Host, you get scalable and robust cloud infrastructure tailored for hosting and server management tasks. Get started today with a powerful VPS that meets your project needs.