Name: Containerised Linode Homelab V1.0
Definition of Ready: 09/08//22
Definition of Done: 05/10/22
Scope:
To have a homelab hosted on a shared linode server accessible from any device, at any time and anywhere in the world with a GUI and browser. This IDE is operating in a redeployable container, customisable to project development requirements.
Challenges:
1) Create a docker container to install the necessary tools for development while keeping the container size reasonable [~1Gb]
Rational: Since the docker container need to be easily redeployable, the bigger the container, the longer it will take to download and install it
Solution: Selecting light but highly customisable tools when possible, for exemple using nvim instead of VScode
2) Generating a GUI from a docker container streaming to a browser
Rational: Browsers are accesible from any devices
Solution: Created a docker container with Caddy receiving data from the IDE container and generating a VNC stream accessible on port 8080 by noVNC
3) Giving the appropriate permisions to the container to fulfil its functions whithout compromising security
Rational: Google Chrome need priviledge permission to work in a container, allowing the user extensive access to the linode server resources
Solution: Securing access to the container via SSH, password and creating a linode server dedicated to only run this container with the minimum resource necessary.
Points of Improvement:
1) Creating a virtual sound card for the linode server the sample audio with the video stream
2) Develop process to ease the container customisable process
3) Run scripts at start of container to increase automation
Applied Skills: Shell scripting / GitHub / Docker / Caddy / Lua / Unix Architecture / Network