kontrolvm/README.md
KuJoe 077e1d6aff
Some checks are pending
PHPMD / Run PHPMD scanning (push) Waiting to run
Psalm Security Scan / php-security (push) Waiting to run
Update README.md
2025-03-05 11:47:26 -05:00

3.3 KiB

KontrolVM Logo

A simple self-hosted PHP + SQLite3 control panel for Linux KVM clusters, nodes, and guest VMs.

DEMO

This is mostly a tour of the control panel and not functional at this time.
All of the current assets and UI are placeholders, I'll find somebody to design a better looking UI in the near future.

Table of Contents

Features

User Management

  • Create user accounts
  • Delete user accounts
  • Update user details (username, email, status, password)
  • Cloudflare Turnstile invisible CAPTCHA
  • Multifactor Authentication
  • User permissions/levels
  • Password reset
  • 🚧Notifications

Node Management

  • Add nodes to the cluster
  • Remove nodes from the cluster
  • Edit node details (hostname, IP address, SSH port, status, etc.)
  • Get node statistics (CPU, RAM, disk usage, etc.)
  • Update node statistics
  • Enable/disable nodes
  • Import existing Linux KVM nodes
  • 🚧Setup multiple virtual networks (i.e. VLANs, public, private, etc...)

VM Management

  • Create VMs
  • Edit VM details (name, hostname, IP address, resources, etc.)
  • Start, stop, restart, shut down VMs
  • Delete VMs
  • Mount/unmount ISO images to VMs
  • Set I/O limits for VMs
  • Configure NIC speed for VMs
  • Enable/disable VNC for VMs
  • HTML5 + VNC Console
  • Reset VNC passwords
  • Change disk and network drivers for VMs
  • Set boot order for VMs
  • Adjusting VM resources (CPU, RAM, etc...)
  • Adding and removing disks
  • Adding and removing NICs
  • Backup/Restore/Snapshot VMs
  • 🚧Migrate VMs between nodes/clusters
  • 🚧IP Management (DHCP, vSwitch, etc...)
  • 🚧Display VM resource usage + history
  • 🚧Bandwidth accounting/monitoring
  • 🚧Expiring VNC access

Cluster Management

  • Add clusters
  • Delete clusters
  • Enable/disable clusters
  • Load balancing
  • 🚧Resource based deployment

Other Features

  • Add ISOs
  • Get total resources (CPU, disk, RAM, VMs, nodes)
  • Manage IP addresses (add, delete, reserve, unreserve)
  • Logging and alerting
  • Automated backups of SQLite3 database
  • Automatic updates of KontrolVM + Nodes

Requirements

  • PHP 8.1+ (tested on PHP 8.1 and 8.2)
  • SQLite3

KontrolVM Installation

  1. Download the latest release.
  2. Extract the files and upload them to your web directory.
    OPTIONAL: Update the config.php file if needed.
  3. Navigate to the install.php file in your browser to run the installer.
    NOTE: Save the username and password generated in this file for later.

Linux KVM Node Setup

At this time only AlmaLinux 9, RockyLinux 9, and CentOS Stream 9 have been tested and are supported. We will add more server OS options later. Login to your Linux KVM node and run the following command as root:

curl -fsSL https://kontrolvm.com/setup.sh | bash