VMControl - Control your VirtualBox VMs from a web browser

Overview

VMControl - Control your VirtualBox VMs from a web browser

Requirements

  • Microsoft Windows XP or newer
  • Oracle VM VirtualBox
  • VBoxManage (included in VirtualBox)
  • PHP 7.3+

Important: Added VMs must have a PIIX4 IDE named IDE controller with a optical disk slot!

image

Aditionally, added VMS must be created with the user that runs the web server. To enable "Instant Connect" batch commands, the VM must have an RDP server.

Setup

Step 1: Preparing the environment

First, create a database. Currently only MySQL is supported. Then, execute this SQL Script in a database.

START TRANSACTION;

CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `passwort` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `vorname` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `nachname` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE `vm` (
  `id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `userid` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE `users`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `email` (`email`);
  
ALTER TABLE `vm`
  ADD PRIMARY KEY (`id`);
  
ALTER TABLE `users`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

ALTER TABLE `vm`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

COMMIT;

For example, you can use phpMyAdmin to create a database and configure it. image image

Now you can download the repo and upload it to your web server using PHP. Make sure that you have installed VirtualBox in the path C:\Program Files\Oracle\VirtualBox\. After uploading it to a web server, you can configure it. Take a look at conf.php. In this file is the config located. You must edit following line:

$pdo = new PDO('mysql:host=localhost;dbname=// database name', '// user', '// pass');

Replace the placeholders with your database name, database user and database password. Now you must setup a isofolder. Backslash \ must be escaped to \\.

$isofolder = "C:\\uploaded\\iso\\files\\will\\stored\\here\\";

The last setting controls your server connection ip. This will be used to generate batch commands.

$ip = "123.456.789.0";

Step 2: Adding VMs

A user account system is used to assign virtual machines to individual users. The website asks you to create a user account or to log in. The user data is stored in the database table users. Create user accounts on the website and look up the associated IDs in the database. Now create an entry for the virtual machine in the database table vm.

INSERT INTO `vm` (`name`, `userid`) VALUES ('your VirtualBox VM name', 'your user id')
You might also like...
Damn Vulnerable Web Application (DVWA) is a PHP/MySQL web application that is damn vulnerable.

Damn Vulnerable Web Application (DVWA) is a PHP/MySQL web application that is damn vulnerable. Its main goal is to be an aid for security professionals to test their skills and tools in a legal environment, help web developers better understand the processes of securing web applications and to aid both students & teachers to learn about web application security in a controlled class room environment.

Scrumwala: Your very own Scrum, Agile project management web app - built with Laravel
Scrumwala: Your very own Scrum, Agile project management web app - built with Laravel

Scrumwala Your very own Scrum/Agile web app built with Laravel Features Create and manage projects with plan and work views Group issues in a project

Self-hosted platform to keep and share your content: web links, posts, passwords and pictures.
Self-hosted platform to keep and share your content: web links, posts, passwords and pictures.

Shaark is a self-hosted platform to keep and share your content: web links, posts, passwords and pictures. All of your data can be private, public or

Bludit - a web application to build your own website or blog in seconds

Bludit is a web application to build your own website or blog in seconds, it's completely free and open source. Bludit uses files in JSON format to store the content, you don't need to install or configure a database. You only need a web server with PHP support.

A PHP based web application to help manage your postmortems
A PHP based web application to help manage your postmortems

morgue a safe place for all your postmortem data Overview This is a PHP based web application to help manage your postmortems. It has a pluggable feat

Web app to share your favorite photos, made with laravel
Web app to share your favorite photos, made with laravel

Kuro Photos Web app to share your favorite photos, made with laravel. This web app was made for educationals purposes only. I enjoyed so much learning

A simple Lumen web app to send basic commands and fetch the current status to your Ford vehicle with Sync 3 enabled

FordPass Access This is a simple Lumen web app to send basic commands and fetch the current status to your Ford vehicle with Sync 3 enabled. Local dev

This is a Task Manager system for managing your task. You can categorize your tasks and upload music to the project And a whole host of other features

taskManager Login and register Each user can have their own task Categorize tasks by creating folders Edit and Delete Folders Search for Tasks Show nu

The simplest, most intuitive way to host your photos on your website.

Gallery 3.1+ (development version) About Gallery 3 is a web based software product that lets you manage your photos on your own website. You must have

Owner
null
Retrieve MySejahtera App's data from MySejahtera API and show to users via web browser. Written in PHP

MySejahtera-PHP-Web Retrieve MySejahtera App's data from MySejahtera API and show to users via web browser. Written in PHP. Disclaimer This web app is

Sam Sam 3 Oct 21, 2022
Roundcube Webmail is a browser-based multilingual IMAP client with an application-like user interface.

Roundcube Webmail roundcube.net ATTENTION This is just a snapshot from the GIT repository and is NOT A STABLE version of Roundcube. It's not recommend

Roundcube Webmail Project 4.7k Dec 28, 2022
Browser Administration for Linux-Based Audio/Video-Player like ODROID or Raspberry Pi

Browser Administration for Linux-Based Audio/Video-Player like ODROID or Raspberry Pi.

Max2Play 41 Apr 23, 2022
Database browser for the WoW Alpha Core project

Database browser for the WoW Alpha Core project

null 4 Dec 9, 2022
Panel de Control para Dominios

Panel de Control para Gestión de Dominios Esta aplicación permite la gestión interna de dominios de una manera sencilla. Podrás dar de alta dominios p

Nitsnets Open Source 24 Dec 27, 2022
Database version control, made easy!

Database version control, made easy! dbv.php is a database version control web application featuring schema management, revision scripts, and more! Ch

Victor Stanciu 1.7k Dec 9, 2022
Create and Control Page Redirects through Filament

Create and Control Page Redirects through Filament A Filament resource to create and maintain page redirects for your website. Installation You can in

James Harley 7 Nov 4, 2022
TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application

TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application for storing, uploading, editing and managing files and folders online via web browser. The Application runs on PHP 5.5+, It allows the creation of multiple users and each user can have its own directory and a build-in support for managing text files with cloud9 IDE and it supports syntax highlighting for over 150+ languages and over 35+ themes.

Prasath Mani 3.5k Jan 7, 2023
Kyle is a web application built with Laravel for web developers and small companies to efficiently track and stay on top of yearly expenses related to services

Kyle Kyle is a web application built with Laravel for web developers and small companies to efficiently track and stay on top of yearly expenses relat

Laravelista 36 Jul 15, 2022
Unified sample web app. The easy way to learn web frameworks.

Notejam The easy way to learn web frameworks Do you know framework X and want to try framework Y? The easy way to start with a new framework is to com

Sergey Komar 1.1k Dec 21, 2022