general/other Instant Workstation - Use FreeBSD in web browser

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
  • FreeBSD, Linux, Android, 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. Unfortunately I haven't gotten the SSH view and file/folder upload/download working yet with FreeBSD on this site. This functionality is working in some other operating systems though such as Ubuntu. I am hoping to get some feedback and improvement suggestions. Hope you may find this website useful.

No registration is required to use the site, however if you start a virtual machine without being logged in it will be permanently deleted on shutdown. To store virtual machines persistently and get the same machine back the next time you visit the site you need to register and be logged in. In this way any software you install on the machine will still be there the next time you use the machine. Your personal virtual machines (stored in persistent storage) are listed on the bar on the left side of the screen.

Internet connectivity is currently disabled until a better plan is in place how to deal with abuse of the service. In future at least registered users should have internet connectivity in the virtual machines.

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

OS selection page:
1704535224979.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
 
So people can try out what they might like best. So it is at least partly about freedom. Freebsd is btw being set up using plasma as desktop. Then they can sell and administrate your desktop, system and data for you. I am sure there is a lot of money in that. Especially if you do a "free" service where you pay with your data. So it can be both good or evil. Time will tell.
 
So people can try out what they might like best. So it is at least partly about freedom. Freebsd is btw being set up using plasma as desktop.
So if a curious person uses this preview application they will be under the assumption that FreeBSD uses plasma by default?

I only ask because it could be seen as misleading in my opinion. There are other bsd operating systems that have a default GUI.
 
So if a curious person uses this preview application they will be under the assumption that FreeBSD uses plasma by default?

I only ask because it could be seen as misleading in my opinion. There are other bsd operating systems that have a default GUI.
Yes. But what they are selling/showing you is their configuration of a system. You could say the same about arch and debian
 
Why Just Why

We did a kind of similar product to businesses (i.e Universities).

pavelock.png


The difference is ours forwards out the OpenGL protocol to the local client's WebGL and injects it back into the VNC session so it can do pretty decently accelerated 3D rendering without saturating the server's GPU. Originally for Blender (and Maya with hacks) but the way DEs are going, it is kind of necessary even for text editors or the server host is going to not scale so well to many clients.

But computers are so damn cheap these days, it certainly isn't suitable or needed for everyone's use-case if you have the physical room.
 
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
  • FreeBSD, Linux, Android, 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. Unfortunately I haven't gotten the SSH view and file/folder upload/download working yet with FreeBSD on this site. This functionality is working in some other operating systems though such as Ubuntu. I am hoping to get some feedback and improvement suggestions. Hope you may find this website useful.

No registration is required to use the site, however if you start a virtual machine without being logged in it will be permanently deleted on shutdown. To store virtual machines persistently and get the same machine back the next time you visit the site you need to register and be logged in. In this way any software you install on the machine will still be there the next time you use the machine. Your personal virtual machines (stored in persistent storage) are listed on the bar on the left side of the screen.

Internet connectivity is currently disabled until a better plan is in place how to deal with abuse of the service. In future at least registered users should have internet connectivity in the virtual machines.

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

OS selection page:
View attachment 17858


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
What a generous project! Do you mind if I mine a few cryptocoins?

Also, the inclusion of TempleOS is fantastic!
 
Thank you all for trying out Instant Workstation. Thank you also for pointing out similar systems such as Pavelock or NX technology. I was not aware of those.

eternal_noob
Some potential use cases of this service are:
  • QA/Testers wishing to test their software on various operating systems
  • Students wishing to learn and test out different operating systems
  • Tinkerers and technical enthusiasts
It may be more convenient to use Instant Workstation than local virtual machines in some scenarios. For example setting up FreeBSD takes a little bit of time and requires some technical knowledge. Instant Workstation allows you to use FreeBSD with minimal delay and without requiring technical knowledge. FreeBSD does not come with a desktop environment by default. This can be scary for less technical people. That is why on Instant Workstation every OS comes with a desktop environment pre-installed (unless not possible).

So people can try out what they might like best. So it is at least partly about freedom. Freebsd is btw being set up using plasma as desktop. Then they can sell and administrate your desktop, system and data for you. I am sure there is a lot of money in that. Especially if you do a "free" service where you pay with your data. So it can be both good or evil. Time will tell.
Plasma as the desktop for FreeBSD was arbitrarily chosen. If an OS has a default desktop then that is what is available on Instant Workstation. If an OS does not have a default desktop (such as FreeBSD or Arch Linux) then a desktop environment is arbitrarily chosen.

Currently the service is free and non-commercial. There are no plans to have advertising on the site or to sell people's data.

What a generous project! Do you mind if I mine a few cryptocoins?
Currently there is no internet connectivity to prevent this kind of usage of the service. In future internet connectivity will be added. It may be necessary to charge a fee for the usage of machines with internet connectivity to not make it worthwhile to use these machines for cryptomining and other undesired usages (spamming, torrent seeding etc.). However non-internet machines should remain free to use.
 
A suggestion, partly to support use cases such as this:

… Students wishing to learn and test out different operating systems …

Allow concurrent use of two machines.

Without concurrency (pictured), it's not possible to perform a side-by-side comparison.

Thanks
 

Attachments

  • 1705247518231.png
    1705247518231.png
    1 MB · Views: 53
A suggestion, partly to support use cases such as this:



Allow concurrent use of two machines.

Without concurrency (pictured), it's not possible to perform a side-by-side comparison.

Thanks
Your suggestion has now been implemented. Registered/logged in users may now execute up to 3 machines concurrently (assuming there are enough free resources). Non-registered users are still limited to executing one machine concurrently. I have also loosened the limit of machines in persistent storage for registered users. Previously registered users could only store 2 machines in persistent storage. This limit has now been raised to 4.

This is what it looks like when you have 4 machines in persistent storage (you can see from the sidebar on the left that this particular user has 4 machines in persistent storage, one FreeBSD, one Ubuntu, one Arch Linux and one Fedora):
1705340901753.png


You can hover over the icons on the sidebar on the left to find out more details about the machine in persistent storage. This can be helpful if you have different versions of the same OS in persistent storage (which will have the same logo in the sidebar):
1705341035246.png


To remove machines from persistent storage you need to use the "bomb" button on the right sidebar when inside the machine. Below is an annotated screenshot explaining all of the buttons on the right sidebar:
1705341118750.png
 
Just out of curiosity. Why are you offering such a useful service. I will be very happy if it is for helping people to find what they like. Or is there a business plan behind :)
 
Just out of curiosity. Why are you offering such a useful service. I will be very happy if it is for helping people to find what they like. Or is there a business plan behind :)
In the beginning it was just a personal project to become familiar with web development. I recently switched jobs from a C++ role to a web development role. To prepare for this job I started work on this project to practice and get familiar with web development. Then later the project developed into something that could be useful to people so I put it online.

This website may turn into a business or non-profit organisation in the future. However it is planned to always have a free version. The difference between the free version and the paid version would be that with the paid version you get internet connectivity and persistent storage of your virtual machines. Furthermore paid users would be prioritised over free users during times of congestion. Currently free users get persistent storage of their machines but this model may be unsustainable if the service becomes popular.

These are just my ideas and there is no concrete plan yet. I am curious what the community thinks how this project should move forward. Currently there are already some times when the service is congested. When this happens the user is presented with an error message that the service is busy and to retry later. Some questions for the community:

Question 1: How should the internet connectivity question be resolved?
Some options:
  • To get internet connectivity you need to pay. This method fully resolves the issues, crypto miners and such are deterred since using the service for such purposes would not be economical. Furthermore the police may still come knocking at my door but at least there are payment details now of the offending user(s) and with the correct terms & conditions of the service (i.e. in the contract between the users and Instant Workstation) I should be legally protected if someone does something illegal with the service (since I forbid it in the terms of service)
    OR
  • A system is developed where the virtual machine's internet traffic is proxied through the user's web browser. This would require the user to turn off the same origin policy in their web browser which is not beginner friendly and some users might find this whole thing a bit fishy. Furthermore this only solves half the problem, the police wouldn't come knocking on my door if someone does something illegal (since the user's own IP address is exposed), however this scheme doesn't prevent crypto-miners from using the machines for free crypto-mining. This suggestion came from a user on the Haiku forum.
    OR
  • The virtual machines are kept behind TOR or a paid VPN. This again only solves half the problem (crypto-miners are still attracted to the service) but at least the police don't come knocking on my door if someone does something illegal. This suggestion also came from a user on the Haiku forum.
    OR
  • The virtual machines are kept permanently without internet connectivity. This restricts the usefulness of the service especially for the machines where the file/folder upload/download is not working
Question 2: How should congestion of the service be handled?
Some options:
  • For internet connectivity and persistent storage a fee is charged. This income is used to finance more hardware to prevent congestion from occurring. Without internet connectivity and without persistent storage the service is still free to use. Should congestion still occur then paying users are prioritised over free users. The organisation type could be a business or a non-profit organisation.
    OR
  • A donation system is setup to finance more hardware to prevent congestion from occurring. The organisation type could be a non-profit.
    OR
  • A queuing system is implemented with the policy first come first served. This system might work with low or moderate user numbers but might become unfeasible due to excessive waiting times if the service becomes popular.
Question 3: There are plans to add ARM and RISC-V virtual machines to the service. Is this something the community is interested in or should the focus be solely on x86?
  • Note that the plan here is to run the ARM and RISC-V machines with KVM on the real hardware for decent performance. No emulation is planned.
Thanks in advance for your opinions and suggestions.
 
The following BSDs have been added to Instant Workstation recently:
- DragonFly BSD
- HardenedBSD
- OpenBSD
- NetBSD

Terminal view is now available on FreeBSD and looks like this:
1706809094289.png


Unfortunately to enable terminal view I had to set a password for the FreeBSD machine. The password is set to "Joensuu2023!" without the quotation marks. For the terminal view to work you need to wait until the machine is fully booted up (i.e. the KDE desktop is showing). Furthermore when you switch to terminal view you need to wait for 10 - 20 seconds before the SSH connection is established. It is unknown why for FreeBSD this takes so long. For other OSes like Ubuntu or HardenedBSD the SSH connection is established almost instantaneously. This is how the terminal view looks in HardenedBSD:

1706809292017.png


It is also unknown why the SSH connection works only when a password is set. For some other virtual machines (e.g. Ubuntu or Haiku) the SSH connection works no problem even though there is no password set. For all BSDs I had to set a password to make the SSH connection work. Note that I have set "PermitEmptyPasswords yes" in "/etc/ssh/sshd_config" however even then the SSH connection does not work if the password is blank for all of the BSDs.

Not sure which is worse:
- Having an empty password but only supporting VNC view
OR
- Having a non-empty password and supporting both VNC and SSH views
 
Internet connectivity is currently disabled until a better plan is in place how to deal with abuse of the service.
Dunno what I'm missing here... but how do you offer a remote machine without Internet connectivity? 😲 Especially to the public over the Internet? 🤦‍♂️

Even if you only have port 22 open for SSH connections, it's not that hard to set up port forwarding...

If a machine has no Internet connectivity, that means nobody can connect to the machine to explore it...

Wow. 🤦‍♂️
 
Back
Top