Home Lab 0.1

Dec 18, 2021

Setting up my home lab was an interesting and fun activity I did in a few days using a pair of spare Raspberry Pis that were laying around my home.

My main goal was to learn the basics of Kubernetes , also know as K8s, which I have avoided so far for its notorious complexity. K8s is becoming more relevant in my daily work, thus I felt the need to learn by doing some practical and fun tasks, which works the best for me. K8s is a very popular container orchestration software, that can be deployed pretty much everywhere. Given the hardware constraints of my Rasperry Pis, I have decided to pick K3s instead of the full blown K8s. K3s is a lightweight K8s distribution widely popular for building clusters on Raspberry Pi.

One of the main services running on the lab is this very blog, built on top of Hugo . I initially thought to implement my own Mardown to HTML compiler but then found out that Hugo fits completely my needs. It’s super fast to generate the site, supports themes without Javascript and runs smoothly on a multitude of devices out of the box. Additionally I wanted a cookieless experience, with no tracking and GDPR related banners which I personally despise.

Another important requirement was to avoid the need of exposing directly my internal home network and devices to the internet. I have found that this can be easily achieved using a Cloudflare tunnel , which creates a link from a private network to Cloudflare infrastructure. Cool thing is that tunnels are free and very easy to set up using cloudflared running as a reverse proxy in a tandem containers setup.

Below you can see a picture of the solution, where the arrows represent the flow of the requests from the client.

Infrastructure

In a future post I will explain the details and share the code of the solution. Stay tuned 😄 !

homelabk3shugoraspberry pikubernetescloudflarecloudflared

Puppeteer on AWS CodeBuild Windows containers