kontrolvm/README.md
KuJoe e0bc51ed10 Initial upload for release 0.1
Uploading the code in its entirety, basic testing completed but still more work and code clean-up needed.
2025-02-10 17:36:04 -05:00

3.4 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, disk space, 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.x (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