Overview
Virtualmin GPL is the free edition of Virtualmin, built on Webmin, for managing domains and their hosting services. This procedure chooses a fresh Debian 12 server and the full Apache LAMP bundle. GPL is distinct from Professional: do not assume paid reseller accounts, WP Workbench or paid cloud integrations are included.
Compare the options first: Free and Open-Source Hosting Control Panels: Alternatives to cPanel
Before you begin
Upstream currently lists Debian 12/13, Ubuntu 24.04/26.04 LTS and supported Enterprise Linux 8/9/10 variants as Grade A choices. Check architecture support on the OS-support page. The installer documentation specifies at least 1 GiB RAM and 1 GiB free disk beyond other needs; a full stack with mail filtering needs 4 GiB RAM or more. These are not capacity estimates for your sites, mail, logs or backups. No single CPU sizing recommendation covers every workload.
Current official installation procedure
- A self-managed VPS/cloud server with a fresh Debian 12 installation, working networking and outbound package-download access.
- SSH access, the correct public IP, and root access or a sudo-capable account that can become root. A sudo account is not the same as starting a root shell.
- A hostname you control, access to authoritative DNS, a suitable domain for hosted sites, and independently stored backups of any existing data.
Step 1 — Prepare your VPS
From your local terminal, connect using your provisioned SSH account. Replace the placeholders and verify the server host-key fingerprint through a trusted channel before accepting a new key. Use your configured SSH port if it differs from the default.
ssh username@SERVER_IP
Confirm that you reached the intended server and that its operating system matches this guide:
cat /etc/os-release
uname -m
free -h
df -h /
If you logged in directly as root, continue in that shell. From a sudo-capable account use the following to become root; the installer and commands labelled root below must run in that root shell.
sudo -i
Apply the package preparation and update commands for the chosen OS from the linked installer guide. Review available disk space and pending reboot requirements. Do not reuse Debian/Ubuntu package commands on a different distribution or pre-install an unrelated web/database stack.
Step 2 — Configure the hostname and DNS
An FQDN is a complete hostname such as server.example.com. Use a dedicated hostname, not the bare domain you intend to host. Create an A record to the public IPv4 address. Add AAAA only if IPv6 is configured and reachable. Follow the selected installer’s hostname and /etc/hosts procedure rather than overwriting that file blindly.
Check hostname resolution before installation. DNS caches may retain old answers until their TTL expires. A wrong AAAA record can break access and certificate validation even when A is correct. For local mail hosting, coordinate matching reverse DNS/PTR with the infrastructure provider and plan MX, SPF, DKIM and DMARC; the panel does not automatically control the provider’s PTR records.
Step 3 — Install Virtualmin GPL
Open the official download page, select GPL and the Debian-family LAMP path, and review the automated-installation instructions. Download the linked installer to a file and inspect it before executing it as root. The following is the documented saved-script invocation for the LAMP bundle; it assumes you have saved the official script as virtualmin-install.sh. Do not run it before completing that download and review.
Open the verified installation instructions
Official GPL download and installer link
sh virtualmin-install.sh --bundle LAMP
Read the installation plan and hostname prompts, then confirm only if they match the intended server. Keep the full terminal output private. After a successful install, complete the post-install wizard and its system checks. Do not rerun the installer to update an existing server.
Step 4 — Configure the firewall
There may be several layers: the Linux host firewall, any service-specific LS network firewall/security group, and the panel’s firewall UI. The panel UI often manages the host firewall rather than a separate independent layer. Traffic must be allowed through every applicable layer. Do not run conflicting firewall managers or assume all LS services use the same controls.
For this panel, permit TCP 10000 for administrative HTTPS from trusted IPs or a secure access mechanism. Public websites normally need TCP 80/443. Enable other ports only for selected services: authoritative DNS uses TCP/UDP 53; mail and FTP require their own documented ports. A passive FTP range is needed only if you actually use that service. Do not copy an all-services allow list or disable the host firewall.
LS VPS network-firewall guide applies where that interface is available; consult your service controls for other cloud products.
Step 5 — Access the panel with HTTPS
https://server.example.com:10000
Use the administrative account identified by the installer. In the standard automated setup this is normally root, or a suitable sudo-capable administrative user as described upstream; domain-owner logins are separate. Complete the wizard before adding production websites.
An initial self-signed certificate can trigger a browser warning. Verify the endpoint and certificate identity independently before entering credentials; use a trusted administrative connection and configure a valid hostname certificate promptly. Do not permanently suppress warnings or make exceptions a routine login method.
The installer can request a hostname certificate when DNS and required validation ports are reachable. For manual panel-certificate work, use the Webmin TLS documentation; website certificates are configured separately through Virtualmin’s SSL-certificate guide.
Step 6 — Perform initial configuration
Use Create Virtual Server to create a domain and its owner, selecting only the required web, database, DNS and mail features. In Virtualmin a “virtual server” usually means a hosted domain/account, not a new infrastructure VM. Create application-specific databases and users with limited rights. Configure site TLS and PHP using the linked guides. Enable Webmin two-factor authentication for administrative accounts and test a second login before ending the current session.
Test a non-production site, database access and certificate renewal before moving customers. Check runtime versions and extensions required by the application. Use separate limited accounts and protect administrator/recovery credentials in a password manager.
Step 7 — Secure the installation
- Keep OS, panel and application packages patched using supported stable sources.
- Use SSH keys where possible; test recovery and a second session before changing SSH access.
- Use unique strong passwords, enable MFA where supported, and retain a secure recovery method.
- Restrict administrative access, review both IPv4/IPv6 rules and remove unnecessary enabled services using upstream procedures.
- Use trusted HTTPS; review user permissions, logs, failed logins, resource usage and certificate expiry.
- Schedule independent backups, test restoration and follow upstream release/security announcements.
Completing the installer is not evidence of a secure or production-ready server. Validate the application, recovery and monitoring plan before going live.
Step 8 — Configure backups
Use Virtualmin’s Backup and Restore workflow to choose domains, included features, a schedule and a destination supported by GPL. Make a first backup and restore it into an isolated test environment. Check that databases and mail are included where required. Keep an independent copy of server configuration and credentials; a domain backup is not necessarily a complete bare-metal recovery image.
Keep backups separately from the primary VPS, protect storage credentials and define retention and recovery targets. Native panel backups usually cover selected accounts/services; infrastructure snapshots capture supported storage state and may need application-consistency preparation. A managed backup service has its own scope and contract. None is automatically included merely because you purchased a VPS. Verify your entitlements and test restores.
Step 9 — Updates and ongoing maintenance
Virtualmin’s download documentation directs existing installations to the operating-system package manager for updates. Use the configured stable repositories, review pending changes and take verified backups first. OS release upgrades need a separate compatibility plan.
Maintain the OS, panel, web server, PHP or other runtimes, databases, any mail services, CMS/plugins, permissions and backup jobs. Check available disk/memory and logs regularly. After updates, test websites, login, TLS and backups. Document changes and recovery actions. For major OS or runtime upgrades, check panel compatibility and use a separate migration plan.
Troubleshooting and documentation
| Issue | Check first | Documentation |
|---|---|---|
| Cannot reach the panel | Verify IP/hostname, running server, the actual management port and every firewall layer. | Official troubleshooting / administrator resources |
| Login unsuccessful | Use the installer’s panel credentials, not an assumed shared password; check MFA, time and upstream recovery instructions. | Official troubleshooting / administrator resources |
| Installation failed / insufficient resources | Preserve the error, confirm clean supported OS, capacity and outbound access. Consult upstream before rerunning. | Official troubleshooting / administrator resources |
| Web, DNS or certificate error | Check authoritative records, A/AAAA reachability, the selected service, certificate name and application logs. | Official troubleshooting / administrator resources |
| Update failure | Review release notes, free space, repository access and logs; avoid force/reinstall workarounds without upstream guidance. | Official troubleshooting / administrator resources |
| Email delivery | Check whether mail was installed, plus MX/PTR/authentication records and permitted network traffic; consult the project’s mail documentation. | Official troubleshooting / administrator resources |
For software-specific help, use the project’s documentation and community. Share redacted logs, OS and panel versions and the exact failure; never post passwords, tokens or private keys. Contact Libyan Spider only for infrastructure or services covered by your agreement.
Related articles
- Free and Open-Source Hosting Control Panels: Alternatives to cPanel
- How to Install HestiaCP on a VPS
- How to Install ISPConfig on a VPS
- How to Install CloudPanel on a VPS
- VPS management overview
- VPS network firewall
- SSH keys in LS Cloud (where applicable)
- Manage DNS records
- VPS snapshots
SSH Gate access for services using LS Cloud — this is a service-specific alternative; a standalone VPS may use direct SSH.
The snapshot guide describes an infrastructure feature. It does not establish backup-service entitlement or replace a tested off-server backup.
Official resources
- Virtualmin
- Virtualmin GPL
- GPL / Professional feature comparison
- OS support
- Automated installation
- Download and package updates
- Create a virtual server
- SSL certificates
- Webmin TLS and two-factor authentication
- Backup and restore
- Installation troubleshooting
- Community and announcements
Documentation reviewed: 23 October 2026. Recheck upstream requirements and release notes before installation or upgrades.