Skip to content

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

License

Notifications You must be signed in to change notification settings

KuJoe/kontrolvm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

Contributors 2

  •  
  •