The Collaborative Virtual Machine (also known as CollabVM, Collab VM, or collab-vm) is an open source project which allows users to collaboratively control a virtual machine, typically for around 18 seconds per person. The twist is that anyone can hop in and use any of the 7 available virtual machines at any given moment, and do whatever they want.
The concept and project was inspired by, and is based on the website socket.computer, but the CollabVM project adds many more features on top of the existing features such as a chat room, an administrator panel, logs, and more. The website was created by Dartz, and the software was coded and written by Cosmic Sans, Dartz, Geodude, and the Apache Software Foundation (Guacamole).
What it is
The site allows users to control a virtual machine. The site runs several virtual machines. The list are as follows:
- Windows 7 Ultimate SP1 x64
- Windows XP Professional SP3 x86
- Windows 10 Enterprise LTSB 2016 x64
- Ubuntu Mate 18.04 x64
- Windows 7 Ultimate SP1 x86 with File Uploads enabled
- Install Any OS x64
- Windows Fundamentals For Legacy PCs with File Uploads enabled and with turns disabled
There are other sites running the CollabVM software that also run other operating systems, like MS-DOS, Windows 98, Debian, etc, and soon, users will be able to host their own VMs with their own operating systems. The site is powered by Guacamole and collab-vm-server. The site features a chatroom, where users are able to type 100 character messages to each other. The purpose of the chat is to share ideas on what to do on the virtual machine, although it can be used for pretty much anything. When you login to the website, you are given a generic, Anonymous guest name (typically guest(string of 4-6 numbers). Server owners can recompile the server with a different name, so it may be different depending on the CollabVM site you're using. You can change your name if you so desire (by clicking the "Change Username" button) or you can leave it as the default guest name.
To take control of the virtual machine, first click on the screen. You will then be assigned a place in line. You will either get control of the virtual machine, or you may have to wait until another users turn is finished before you can take control. To check who is currently taking a turn, you can scroll to the user list and look for any blue / yellow names. If their name has a blue background, that means they are currently in control of the virtual machine. If their name has a yellow background, this means they are currently waiting to take control of the virtual machine. If they have no color, that means they aren't waiting for or taking a turn. When you click the screen, if someone is also taking a turn you will receive a timer which indicates how long you have to wait.
Please note: While the site is not explicitly for 18 and up, if you are under the age of 18, you need permission from your guardian, as anyone can do anything on this virtual machine, and that includes opening pornography and other NSFW things. There is a warning blur which blurs out the screen before you can see it.
The invention of the concept of a public collaborative virtual machine that others could use through the internet is hard to pinpoint. This concept seems to have existed as early as mid 2004, with a user of a forum posting an IP address and a password for a VNC server, claiming it was "open for anyone to use". The concept of collaborating with people through a virtual machine can be traced back to 2010, and the concept of users taking turns to collaborate with a VM online can be traced back to April 2014, the official release date of socket.computer.
CollabVM was inspired by the website Manymo, which allowed users to run an Android virtual machine in a web browser, but is no longer available.
July 11, 2014 - February 18, 2015
CollabVM 0 (originally named "Browser Computer") started in July 2014, as a fun experiment. Instead of a virtual machine, it ran in an actual, physical machine running Windows 95, with a basic node.js script to simply connect to a VNC Server that was running with no password. This version did not have turns - if there were more than 2 users on the VM at once, they would have to use the chat to collaborate or try and fight for control. The page in question was also not hosted on Computernewb. The project was later reconfigured to connect to a remote QEMU session due to people constantly turning the machine off, closing the VNC Server, or destroying the machine. It was fairly unpopular, with only around 5-6 unique people controlling it every 2 weeks or so. The project was closed off in November 2014, but would later be reborn in February 2015.
February 18, 2015 - July 28, 2015
CollabVM 1.0 (known as the "Socket.IO Era" to some) was the first popular iteration of CollabVM, and the second overall. Although initially unpopular, it exploded in popularity in April 2015 after being posted onto Reddit. This version of CollabVM was powered by a modified version of the socket.computer engine. It ran the socket.computer engine, but had a few modifications in place; the screen was scaled, the laptop image was removed, an administrator panel was modded into it, and two exploits were found and then later fixed. CollabVM 1.0 ran 9 different operating systems in its life span, which includes: Windows 95 OSR2, Windows 98, Windows 2000, Windows Vista Home Premium, Windows 7 Home Premium, Windows 7 Ultimate, Windows XP Professional SP2, and then Tiny7. The site had a xat chatroom embedded into the bottom, as well as an online counter which showed how many people were online the site. Later this was added to the server itself. It was replaced with CollabVM 1.1 on July 28, 2015.
July 28, 2015 - March 24, 2016
CollabVM 1.1 was the third iteration of CollabVM. This iteration was a very important milestone in CollabVMs history as it was when collab-vm-server was officially out of beta and released onto the site. CollabVM 1.1 brought the brand new engine that is still in use today, as well as removing all of the vulnerabilities of socket.computer, as well as making it much faster and without any fuzz. The xat chat was initially removed from the page, but was later added back after high demand. This version also introduced some features still found on the site like the NSFW warning and other things. It has ran two operating systems in its time which includes Windows 7 Ultimate and Tiny7. Later, an update was released for it. Later on, it brought several new features to the table, including a new bootstrap theme, a brand new HTML5 chat, the Online Users list, the virtual keyboard, the FAQ, News, Rules, and other pages, as well as many other new features. This was also the first version of collab-vm-server that Experimental VM ran. On December 29, 2015 a new server was purchased which ran QEMU far better than the old one. On October 18, 2016, the binaries for CollabVM 1.1 were released.
March 24, 2016 - present
CollabVM 1.2 is the fourth and current iteration of CollabVM. The latest stable release is 1.2.7. This iteration included several updates to the existing 1.1 core, and added some new features. These features included the Vote Reset, which allows users to reset the virtual machine even when an admin is not online (now users could simply vote reset instead of potentially waiting for hours for an admin), a brand new homepage which showed the current running virtual machines along with screenshots of them running, support for multiple virtual machines was added, an issue that let users impersonate others was fixed, and the turn counter now counted how long you had to wait.
Later, on June 15, 2016, another huge and highly anticipated feature was added to CollabVM 1.2; the Virus Farm, also known as the CollabVM Agent. The Agent allows users to upload any file to the machine its currently running on, and more. The agent was designed to be very easy to enable and disable, so a CollabVM could easily be converted into a Virus Farm node, and vice versa. On October 18, 2016, another huge milestone for CollabVM was made - the server's source code as well as its binaries were publicly released.
? - ?
CollabVM 2.0 is the next version of CollabVM which is currently in development. This was originally planned to be CollabVM 1.3, but as the code is now being completely rewritten, it wouldn't make much sense to declare it as part of the 1.x codebase. There is currently no set release date for 2.0, but it is being worked on. Concept homepage
CollabVM 2.0 will have the following features. Note that some features are not announced yet.
- VNC and RDP support
- The ability to host your own user VM and making it much easier to host a CollabVM mirror (Somewhat already done with 1.2 - however they must be added manually, in 2.0 they will be automatically placed on the site and much easier to host)
- Support for virtually any hypervisor and emulator (any hypervisor can be used as long as it can be controlled through shell commands) (there exists a very hacky, unsupported workaround for this in 1.2)
- Account registrations
- Detailed descriptions on VMs
- Native Windows 7/Server 2008 R2+ support
- Far better Ubuntu 16/Debian 8 support