The aim is to create a "remote development service" for apprentices, so that they can work in a container on a virtual machine.
This means that apprentices can always access a consistent development experience:
-
no installation issues
-
using VS Code direclty in their browser
-
no lists of stuff to unblock for clients
-
use the terminal to interact with any website (including github)
As http requests originate in the VM, problems of acessing e.g. github completely go away.
There are a few possible futures for this:
-
it is used for apprentices who are having technical issues, can't get stuff unblocked or installed
-
it is used to give a turnkey service to certain clients and their apprentices
-
it is used as standard for all apprentices
-
A cloud VM exposes an API at
code.multiverse.io
-
When visited, it provisions a Docker container running VS Code on Ubuntu and exposes
$PORT
to the VM network -
The user is redirected to
$PORT
.code.multiverse.io where they are proxied tolocalhost:$PORT
in the VM -
And they can dev away
Auth, persisted storage, auto-scaling, auto-kill dead containers, security
-
Make sure you have Vagrant and Virtualbox installed
-
Open a terminal in the project root and run
vagrant up
-
SSH into the VM with
vagrant ssh multiverse-box
-
Install node/npm, nginx and docker (you're in Ubuntu)
-
Replace
/etc/nginx/nginx.conf
with thenginx.conf
file in this repo, and thensudo nginx -t && systemctl start nginx
to test and load the config. -
From within the VM,
cd repos/code-server-api
andnpm i && npm run dev
-
Back on your host machine, edit
/etc/hosts
to pointcode.multiverse.io
at192.168.56.10
-
Now visit
code.multiverse.io
in your browser