Instant Workstation - Use Linux, BSD, Haiku, TempleOS in web browser

thysol

New Member
Joined
Dec 20, 2023
Messages
3
Reaction score
2
Credits
72
Here I present to you an early test version of instantworkstation.com. This site is a virtual machine on demand service. You select which OS you want and which version and after a 20 second delay you can use the virtual machine in your web browser. Virtual machines are pre-configured and pre-installed.

Current features:
  • VNC view
  • SSH view
  • File/folder upload/download
  • Linux, BSD, Haiku and TempleOS currently available
  • Only x86 virtual machines are currently available
  • Registered and logged in user's virtual machines are permanently stored in persistent storage
  • Most of the virtual machines are passwordless
Planned features:
  • Internet connectivity
  • ARM virtual machines
  • RISC-V virtual machines
  • More OSes and more OS versions
  • Better support for mobile devices
This is an early test version. There are probably some bugs. I am hoping to get some feedback and improvement suggestions. Hope you may find this website useful.

Some images of how the website looks are attached to this post.

OS selection page:
Main_Page.png


OS version selection page:
OS_Version_Selection.png


VNC view:
Virtual_Machine.png


Terminal view:
Terminal_View.png


File/folder upload/download view:
File_Transfer_View.png


Libraries used in this project:
NoVNC
WebSSH2
Filebrowser
 

Attachments

  • Virtual_Machine.png
    Virtual_Machine.png
    1.4 MB · Views: 333


I allowed this one through the spam filters. I was not able to do much research from my phone. It looks similar to a few other projects but I can't really tell.

If you disagree with that decision AND you can research the site a bit more, hit the report button and I will use my judgement based on that.

Be patient... I am really slow today.
 
It worked pretty well for me with Chromium and Vivaldi. No luck with Firefox, but I have JavaScript pretty heavily restricted, so no surprise that it didn't work. Seems like a nice resource for people to test out a few distros, and also FreeBSD. Cool. :cool:

You might consider identifying which Desktop Environment will be used in each of the VM's. I found Gnome on Debian (12.2) and Fedora (39)... but KDE on FreeBSD. I often think a new user will be more influenced by the "look and feel" (of the DE) rather than which distro, or which kernel is used.... so I would definitely encourage you to include more DE choices as you more fully expand the offerings.
 
Last edited:
No luck with Firefox, but I have JavaScript pretty heavily restricted,
I did indeed fail with firefox, but withdrew all extensions, and it worked! Thanks for the tip.
 
Last edited:
I was able to make it work. No Internet access but otherwise the vm worked just fine. I actually use a product from LinuxServer.io called webtop. When traveling I can use this while vpn into home. Mainly because I can have a linux desktop from my android tablet. I also firewall it off from everything else so it is a remote workstation without potential of compromising my home network.
 
Sounds like another a project or homework.
m1125.gif
 
Thank you for testing instantworkstation.com. Since my first post have added the following operating systems to the site:
  • Android 9.0
  • Bodhi Linux 7.0.0
  • Fedora 37
  • Fedora 36

Seems like a nice resource for people to test out a few distros, and also FreeBSD. Cool.
I am hoping that the service could be used for more than just testing operating systems. The service offers permanent storage of virtual machines if you are logged in. Your personal virtual machines are then accessible from the left sidebar on the site. Once internet access has been enabled these machines could be used longer term and might be more convenient to use than locally running virtual machines. Naturally this point is debatable and there will be pros and cons to both.

You might consider identifying which Desktop Environment will be used in each of the VM's.
Thank you for this feedback. The policy currently is to use the default desktop environment for the operating system. If there is no default then the desktop environment is chosen arbitrarily.

Yes, these are two similar sites. There are a few differences between what each site offers. I have summarized the differences in a table below:

WebsiteDistroSeaOnWorksCurrent Instant WorkstationFuture Instant Workstation
Internet accessYesYesNoYes
Persistent storageNoYesYesYes
Pre-installedNoYesYesYes
GUI viewYesYesYesYes
Terminal viewNoNoYesYes
File upload/downloadNoYesYesYes
x86 virtual machinesYesYesYesYes
ARM virtual machinesNoNoNoYes
RISC-V virtual machinesNoNoNoYes

Note that with OnWorks virtual machines can be persistently stored using a personal Google Drive account. On Instant Workstation the virtual machines are persistently stored on the service itself rather than using a third-party service (e.g. Google Drive).

Note also that the offering of operating systems currently differs between the sites. Instant Workstation currently has a much smaller offering, however some operating systems are offered that DistroSea and OnWorks don't offer. Currently these are Android, FreeBSD, Haiku and TempleOS.

I actually use a product from LinuxServer.io called webtop.

Thanks, I wasn't aware of this website before.
 
Last edited:
This is my first time coming across a website like this, it looks very beneficial. I will be using it in my quest to narrow down what operating system that I wish to settle for!

Out of curiosity, how have you made this website? Maybe you can link me something or explain the technology behind it? As I say, I've never seen anything like this before and it's really cool!

EDIT: I have scrolled up to the top and can see you have linked the libraries, LOL. Classic. Sorry :D
 
Out of curiosity, how have you made this website? Maybe you can link me something or explain the technology behind it? As I say, I've never seen anything like this before and it's really cool!
Thanks, I'm glad you like the service. A brief summary of how it works: When you launch a machine on the service then during the 20 second loading screen the following happens on the back-end:
  • A new QEMU disk (qcow2) is created for you based off a template image
  • A folder is created for your file upload/download
    • Qemu will be told to use this folder to host an SMB file share
  • An instance of QEMU (in KVM mode) is launched starting your virtual machine
    • Qemu starts an SMB server which your machine is pre-configured to connect to and mount the share in /home/instant-workstation/Share
    • The exact qemu parameters are looked up a from a MongoDB database since the parameters vary based on the OS you start
    • Qemu also launches a VNC server listening on a particular port
  • An instance of FileBrowser is launched using the file upload/download folder created in the second bullet point
    • Your instance of FileBrowser listens on a particular port
  • A unique token is generated for your instance of the virtual machine
When I say "particular port" or "particular folder" above I mean that these can vary at runtime. The values of these are determined when you launch your machine. As other machines are already running other ports may need to be used etc.

Once the 20 seconds are up the back-end responds to your browser with the technical details how to connect to your particular virtual machine:
  • Port numbers of the various services your browser will connect to
    • VNC server port
    • FileBrowser instance port
    • SSH port
  • The unique token for your machine
    • To prevent unauthorised access to your machine all services your browser connects to (e.g. VNC server) all expect a token to verify it is really the same person that started the machine
The back-end parts of the libraries used in this project (noVNC, webssh2, FileBrowser) were all modified/customized to check the token is valid for the particular machine to be connected to. In noVNC's case the websockify back-end part verifies the token. The modifications/customizations cause these services to look up MongoDB to verify this token grants access to a particular machine.

Furthermore it is prevented that virtual machines can see or access each other through strict firewall rules.

The explanation is what happens when you launch a virtual machine when you are not logged in. When you are logged in the steps are almost the same except that it may re-use the same virtual machine for your particular user if you previously already started it. So it may re-use your previously used disk image instead of creating a new one.

By default your file share folder and virtual machine disk image are permanently deleted on shutdown of your virtual machine. However if you are a registered/logged in user then this does not happen (unless you press the "bomb" button on the right hand side of the screen to shut down your machine).

Currently the service is hosted by a dedicated server in Helsinki, Finland. The server has the capacity to run 3 virtual machines simultaneously. Each virtual machine has 4 virtual CPU cores, 16GB of RAM and 64GB of disk space.
 

Members online


Latest posts

Top