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
$PORTto the VM network -
The user is redirected to
$PORT.code.multiverse.io where they are proxied tolocalhost:$PORTin 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.confwith thenginx.conffile in this repo, and thensudo nginx -t && systemctl start nginxto test and load the config. -
From within the VM,
cd repos/code-server-apiandnpm i && npm run dev -
Back on your host machine, edit
/etc/hoststo pointcode.multiverse.ioat192.168.56.10 -
Now visit
code.multiverse.ioin your browser