Power Measurements in the Homelab

I’ve long been wondering how much power my Homelab consumes, especially with my switch from a single relatively beefy server to a gaggle of Raspberry Pis. In the end, I put in three smart plugs supporting MQTT. I would have loved to have per-machine power consumption stats, but I didn’t want to invest that much money into smart plugs. To wet your appetite a bit, here is a snapshot of the resulting Grafana dashboard: ...

June 13, 2023 · 20 min · Michael

Learning Elixir: Beginner thoughts

I’m now about a month into learning the Elixir programming language. See my previous post for my initial thoughts. And I don’t hate it. In contrast to my earlier encounter with Haskell, I’m keeping at it, and I’m enjoying it. Because Elixir is not quite as strict as Haskell, it has been way easier to wrap my head around it. There was a very steep hurdle in the beginning - everything requiring any amount of design beyond “just a single function” was (and to a degree, still is) rather hard. I had single functions down relatively quickly, but building anything that required chaining multiple functions had me blank quite often. I spend an entire Sunday solving this exercise. It should have been relatively simple: Just mark the cells on a minesweeper board with the number of adjacent mines. And the hard part was not the syntax for doing it, but coming up with a design and architecture to solve the task. ...

June 2, 2023 · 6 min · Michael
The official Elixir logo, a stylized purple liquid drop.

Learning Elixir: The Plan

I’ve had some pretty bad experiences with functional programming languages. Haskell in particular. When I was in high school, we had a functional programming unit in my CS course. Up to that point, we had done some educational languages as well as Java. At the time, I thought I had my head pretty firmly wrapped around programming (😅). And then came Haskell. And I did not get it at all. Just couldn’t wrap my head around it. ...

May 4, 2023 · 6 min · Michael
The stylized key keycloak logo

SSO with Keycloak in the Homelab

I wanted to have Single Sign-On (SSO) for as many of my services as possible for quite a while. One of the main triggers was the need for 2FA, in particular for the services accessible externally, to improve general security of my Homelab setup. SSO means that a user only logs in once, and with a single username/password combo, and then gets access to multiple different services with that login. The implementation is based first on OAuth2. This is a HTTP based protocol which facilitates authorization between multiple entities: ...

April 24, 2023 · 19 min · Michael

Migrating two Ceph OSDs from one physical hosts to another

Over the weekend, I migrated one of the Ceph VMs in my Homelab over to a physical host. This time around, instead of buying a completely new machine, I recycled most of my old 2018 era home server. It’s an old AMD A10-9700E, meaning the 35W TDP variant. I have noted some thoughts on reusing this old machine here. Mounted in the rack, the machine looks like this: Server mounted in the rack, without Ceph OSD disks attached. ...

April 23, 2023 · 7 min · Michael