Blog

  • 16th August 2025

Hosting your own apt repo with reprepro and GitLab

Have you ever wondered about hosting your own apt repository? Looked at all the options and thought they’re woefully complex and hard to piece together? If so, read on! I’ll show you how I managed to host my own on a small server using reprepro and publish to it from GitLab CI.

Read more 
  • 6th November 2024

Authentik with Source IP Auth Modifications

How to configure an Authentik flow to conditionally execute stages based on client IP address. In simpler terms, how do I not get prompted for 2FA/MFA when I’m at home?

Read more 
  • 7th April 2024

Troubleshooting CephFS CSI

A quick writeup for a longstanding issue I’ve had that’s rendered CephFS-backed PersistentVolumes useless on my home K8S cluster. libceph on worker nodes complains about mons speaking the wrong protocol and that wasn’t a red herring, it was the key to the problem all along.

Read more 
  • 14th December 2023

DSI Display on a Manta M8P

How to get a DSI display (ribbon cable) display to work with a Raspberry Pi compute module on a Manta M8P.

Read more 
  • 10th October 2023

Flashing BigTreeTech Manta M8P V2.0

Notes on getting the BigTreeTech Manta M8P v2.0 printer MCU flashed and working, plus some clarifying points that should be useful to owners of an M8P v1.0/v1.1 board. Includes some info on how to configure for CANbus and how to get the BigTreeTech EBB SB2209 board flashed and working as well.

Read more 
  • 30th July 2023

Getting real IPs from behind ingress

A whirlwind dive into kube LoadBalancer services, and a lesson in how things are not always what they seem.

Read more 
  • 15th July 2023
  • 28th April 2023

New entertainment center

In which I design and build a new entertainment center

Read more