A simple self-hosted PHP + SQLite3 control panel for Linux KVM clusters, nodes, and guest VMs.
Find a file
KuJoe 013372dbb8
Some checks failed
PHPMD / Run PHPMD scanning (push) Has been cancelled
Psalm Security Scan / php-security (push) Has been cancelled
Reapply "Removed dark theme"
This reverts commit 1af69f2a60.
2025-03-26 19:58:26 -04:00
.github Update dependabot.yml 2025-02-27 18:59:42 -05:00
assets Reapply "Removed dark theme" 2025-03-26 19:58:26 -04:00
scripts Added function to update nodes with new scripts 2025-03-04 20:29:40 -05:00
vendor Add password reset functionality with PHPMailer. 2025-02-14 14:49:40 -05:00
account.php Reapply "Removed dark theme" 2025-03-26 19:58:26 -04:00
auth.php Added proper logging and reporting. 2025-03-04 12:56:18 -05:00
cluster.php Reapply "Removed dark theme" 2025-03-26 19:58:26 -04:00
clusters.php Reapply "Removed dark theme" 2025-03-26 19:58:26 -04:00
composer.json Add password reset functionality with PHPMailer. 2025-02-14 14:49:40 -05:00
composer.lock Add password reset functionality with PHPMailer. 2025-02-14 14:49:40 -05:00
config.php.example Setting up automatic updates 2025-03-04 19:09:22 -05:00
dbBackup.php Added proper logging and reporting. 2025-03-04 12:56:18 -05:00
favicon.ico Replace logo/favicon 2025-03-05 22:45:43 -05:00
footer.php Reapply "Removed dark theme" 2025-03-26 19:58:26 -04:00
functions.php Fixed importing VMs and node deletions 2025-03-05 21:07:03 -05:00
get_vm_status.php Cleaned up connectNode function 2025-02-13 18:23:19 -05:00
header.php Replace logo/favicon 2025-03-05 22:45:43 -05:00
home.php Reapply "Removed dark theme" 2025-03-26 19:58:26 -04:00
index.php Made install easier. 2025-03-10 09:05:17 -04:00
install.php Made install easier. 2025-03-10 09:05:17 -04:00
ipv4.php Reapply "Removed dark theme" 2025-03-26 19:58:26 -04:00
ipv6.php Reapply "Removed dark theme" 2025-03-26 19:58:26 -04:00
isos.php Reapply "Removed dark theme" 2025-03-26 19:58:26 -04:00
LICENSE Initial commit 2025-02-07 15:59:05 -05:00
logout.php Adding proper logging 2025-02-17 13:40:45 -05:00
logs.php Reapply "Removed dark theme" 2025-03-26 19:58:26 -04:00
node.php Reapply "Removed dark theme" 2025-03-26 19:58:26 -04:00
nodes.php Reapply "Removed dark theme" 2025-03-26 19:58:26 -04:00
password_reset.php Added proper logging and reporting. 2025-03-04 12:56:18 -05:00
README.md Update README.md 2025-03-05 11:47:26 -05:00
refreshNodes.php Setting up automatic updates 2025-03-04 19:09:22 -05:00
settings.php Reapply "Removed dark theme" 2025-03-26 19:58:26 -04:00
update.php Added function to update nodes with new scripts 2025-03-04 20:29:40 -05:00
update_db.php Adding DB field for bandwidth accounting 2025-03-05 11:44:03 -05:00
users.php Reapply "Removed dark theme" 2025-03-26 19:58:26 -04:00
vm.php Reapply "Removed dark theme" 2025-03-26 19:58:26 -04:00
vms.php Reapply "Removed dark theme" 2025-03-26 19:58:26 -04:00

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