01
OS & Hardware Requirements
◈ Operating System
- 64-bit Linux, fresh minimal install, with root / sudo access
- Enterprise Linux family: AlmaLinux / Rocky / RHEL / CentOS Stream 9–10
- Debian family: Debian 11–13, Ubuntu 20.04 / 22.04 / 24.04 LTS
- PHP 8.3+, MariaDB, nginx, qemu-kvm & libvirt are installed automatically
AlmaLinux 9/10Rocky 9/10Debian 12/13Ubuntu 22/24
◈ Hardware / Virtualization
- Hardware virtualization required — Intel VT-x or AMD-V enabled in BIOS
- Bare-metal / dedicated server, or a VM with nested virtualization
- Minimum 2 vCPU / 4 GB RAM — 8 GB+ recommended for real workloads
- Verify:
egrep -c '(vmx|svm)' /proc/cpuinfomust be > 0
02
Partition Requirements & Scheme
▤ Recommended Partition Scheme
Create these partitions when you install the OS on the dedicated server (single-disk example):
| Mount point | Size | Filesystem | Purpose |
|---|---|---|---|
/boot/efi | 512 MB | FAT32 (vfat) | EFI system partition — UEFI servers only |
/boot | 1 GB | ext4 | Kernel & initramfs |
swap | 2–8 GB | swap | Swap (≈ RAM, capped at 8 GB) |
/ | 40 GB | xfs or ext4 | OS, VM Panel, PHP, nginx, MariaDB |
/var | Remaining disk | xfs | VM disks, OS templates, backups & logs — put your largest, fastest storage here |
ℹ️VM Panel writes guest disks to
/var/www/vmpanel/storage/vms and OS templates to /var/lib/vmpanel/templates — both live under /var, so one large /var partition holds all heavy VM data. Prefer simplicity? Skip the separate /var and give / the whole disk instead.▤ Sizing & Notes
- Minimum: 2 vCPU, 4 GB RAM, ~60 GB disk — but VM storage is what you'll actually fill, so size
/vargenerously - Use xfs for
/var— it handles large sparse qcow2 images better than ext4 - BIOS / legacy (non-UEFI) servers: drop
/boot/efiand add a smallbios_grubpartition instead - NVMe / SSD RAID under
/varis ideal for guest disk I/O
03
Supported Storage Types
▦ Storage Backend
- Local disk, qcow2 image files (default backend)
- VM disks are copy-on-write overlays on a shared cached OS base — new VMs & reinstalls are near-instant
- Thin-provisioned: guests only consume the space they actually write
- SSD / NVMe strongly recommended for guest I/O
▦ Filesystems & Layout
- OS template cache:
/var/lib/vmpanel/templates - Per-VM overlay disks provisioned as sparse
.qcow2 - Supported: xfs, ext4 local filesystems
- Not yet supported: LVM / Ceph / ZFS volume backends
04
Installation
➜ One-line install
Run as root on the prepared server. The installer sets up qemu-kvm/libvirt, PHP, MariaDB & nginx, opens HTTP/HTTPS, downloads the panel, runs migrations and activates your license.
install.sh
curl -fsSL https://vmpanel.cpanelseller.xyz/install.sh | bash -s -- key=YOUR-LICENSE-KEY network=bridge bridge_name=br0
📄Full installer output is logged to
/var/log/vmpanel-install.log. Your license key locks to this server's public IP on first activation.05
Installation Parameters
| Parameter | Required | Default | Description |
|---|---|---|---|
key= | REQUIRED | — | Your VM Panel license key |
network= | optional | nat | Guest networking mode: nat or bridge |
bridge_name= | optional | vmbr0 | Bridge interface, used when network=bridge (e.g. br0) |
app_dir= | optional | /var/www/vmpanel | Install directory for the panel |
06
Troubleshoot
KVM not available / “no acceleration”
Enable Intel VT-x / AMD-V in BIOS. Confirm
egrep -c '(vmx|svm)' /proc/cpuinfo > 0 and that /dev/kvm exists.License activation failed
The key is likely bound to another server's IP. Use Reset binding on the license in this panel, and ensure the server can reach
vmpanel.cpanelseller.xyz over HTTPS.Install failed midway
Read the last lines of
/var/log/vmpanel-install.log — the installer prints the failing step there.Panel shows HTTP 500
Check
storage/logs/laravel.log, and that php-fpm and libvirtd are running. On RHEL family, check SELinux denials in /var/log/audit/audit.log.VMs won't start / no networking
systemctl status libvirtd must be active. For bridge mode, make sure the bridge you named actually exists on the host.Slow first VM create
The OS template downloads once, then caches. Pre-warm images from OS Templates → Download to node so later builds are instant.