The Collaborative Virtual Machine (often shortened to CollabVM, Collab VM, or collab-vm) is an open-source portion of the website Computernewb which allows users to, as the name implies, collaboratively control a virtual machine, typically for around 18 seconds per person. The site is a clone of the similar site, socket.computer, but includes many more features, a vastly improved engine, a chat room, an admin panel, and much more. The site was created by Dartz, and engine was coded by Cosmic Sans, Dartz, Geodude, and the Apache Software Foundation (Guacamole).
What it is
The site allows users to control a virtual machine, running three virtual machines, including Windows 7 Ultimate SP1 x64, Windows XP Professional SP3 x86, and Debian 8.7 x64 with Windows 10 Enterprise x64 dualbooted. There are other sites running CollabVM around that run other operating systems, like MS-DOS, Ubuntu, Debian, etc. The site is powered by Guacamole and collab-vm-server (the custom server engine CollabVM uses). The site features a chatroom, where users are able to type 100 character messages to eachother. 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 allows users to run an Android virtual machine in a web browser.
July 11, 2014 - February 18, 2015
CollabVM 0 (the original) 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
- Support for virtually any hypervisor and emulator (any hypervisor can be used as long as it can be controlled through shell commands)
- This means that the four most common virtualization programs (QEMU, VirtualBox, VMWare, and Hyper V) will have support
- Account registrations
- Detailed descriptions on VMs
- Native Windows 7/Server 2008 R2+ support
- Far better Ubuntu 16/Debian 8 support