One of the big project from last year for me was to create a nice small homelab. On my previous projects, namely AuroraWatch and my personal document manager, everything was running inside my tiny NAS memory with my even tinier NAS CPU. It was fine for a basic project like aurorawatch that only fetches a website and does some text extraction and analysis. But my personal document manager was too heavy for it. The other options for me were to either rent cloud computing power, but as I already mentioned earlier, I am not a fan of sending private document information in a cloud that I don't physically own. Or it was to use a machine on my network with more power than my NAS. Naturally for me, the idea of adding a new machine was enticing. I could see the potential for several other projects I have in mind and so I took the jump and bought a miniPC a Lenovo ThinkCentre neo 50q Gen5. Overall good enough for me for light work as a home server, usable for Jellyfin for media server, can serve my new blog (it is hosted there right now!), and will be usable for smallish machine learning load.

Because I didn't want to expose my PC to the internet directly and open the https and http ports to traffic, I went with a reverse proxy setup, using a tiny VPS, 1CPU and just a few GB of ram. Enough to act as a doorway. The VPS runs a Caddy Server that transfer selected internet traffic from the VPS to the homelab PC with Wireguard. Once on my homelab PC, another caddy server links this wiregard traffic to my container running the blog. VPS and homelab are naturally protected with the firewall. And the VPS already comes with a firewall.

As I wrote earlier, my homelab PC runs with debian/KDE. Very neat, very low profile. If there are no heavy machine learning mode, you can't hear it, it is using passive cooling most of the time. It does have a tiny turbine that only activated once when I tested the machine learning of my document manager. I am very happy with it for now.

Since then, I added Jellyfin as a media server. Works great from any connected device in my home network or even with my devices connected through Tailscale from outside the network. Really awesome.

To monitor all of this, I also run a container with Grafana, Prometheus and Loki, giving me insight on container health, cpu use and network use.

Anyway, self-hosting my website was something I always wanted to do, and now I am doing it! Can't wait to see what other idea I will get with this setup.