Also known as: I am stupid. What? (This is hopefully going to be a short one) I recently installed Immich as I’m trying to get away from backing up my pictures on someone else’s computer, or on NextCloud (awesome tool, horrible auto-sync behavior in the Android app, no fancy features for photo hosting). I chose to run it in an LXC container because it allows me to let it use my GPU without having to do PCIe Passthrough, which reserves the card for that machine1. I’m also running the default Docker Compose setup (yeah, yeah, container in a container… I don’t care). ...
Build Marlin With Gitea Actions
Or: how I got tired of having to use the excellent Auto Build Marlin and decided to automate the build process even more. Background I run a local Gitea for all my git needs; recently(-ish)1 they introduced Gitea Actions, for CI/CD, instead of relying on external tools like Woodpecker. I also have a Creality Ender-3 Pro 3D printer, whose stock firmware is… Not great.. From what I remember, it does not (or at least did not, when I got it) have Thermal Runaway protection enabled in the firmware2. ...
Automatically build your CV with GitLab pipelines
Background For more than a decade I’ve been using a CV1 I wrote in LaTeX; a few years ago I found myself in the unfortunate situation of having to update my CV while on a laptop that didn’t have TeX Live installed, while being on a potato-quality, slower-than-a-56k-modem, internet connection. I keep my TeX files in a git repository, in GitLab, so fetching those was not a problem, but fetching many hundreds of MBs for the compiler was. ...
Site to Site VPN for Dummies between pfSense and a Raspberry Pi
Today I find myself trying to solve a question that plagued historians for the past few hundred years: why the fork can’t I ping my off-site backup server?! Background I put a NAS and a Raspberry Pi in $secret_location to my backups (you’re following the 3-2-1 Rule too, right?). The Pi runs Raspbian, with Wireguard configured - via systemd + wg-quick, and a monitoring cronjob - to connect to my homelab (running pfSense). Throw in a couple static routes, and I can configure my TrueNAS to run a backup job to a private IP over a secure connection. The end, right? ...
Hiding Octoprint behind Pomerium and dealing with WebSockets
I run OctoPrint behind Pomerium. The actual configuration is somewhat irrelevant (although I’ll still paste it here) # Octoprint - from: https://octoprint.example.com to: http://192.168.169.170 allow_websockets: true policy: - allow: or: - email: is: me@example.com preserve_host_header: true but what you should know is that OctoPrint really likes its WebSocket and will refuse to connect without it. In the network console you’ll see attempts to connect to wss://octoprint.example.com/sockjs/123/random_string/websocket all returning 403 Access Denied instead of 101 Switching Protocols. Your ~/.octoprint/logs/tornado.log will tell you that ...
trakt.tv and Jellyfin: when tracking your shows goes wrong
I run my own Jellyfin server, as well as having a local OpenELEC (Kodi) for when I’m home, and use trakt.tv to keep my views in sync. While Kodi does a pretty good job at picking up when something is marked as watched on Trakt, Jellyfin does not, so I sometimes watch a show at home, and some time later I’m somewhere else wanting to watch the next episode on my phone, and Jellyfin will still be stuck at those “older” episodes I already watched at home. ...
NUT and USB UPSes
I just migrated my homelab to a new machine, and in the process I had to reinstall Network UPS Tools (more commonly known as NUT). In the process, I relearned why you need to make sure NUT is allowed to access USB devices, and how to do that. NUT is configured as a netserver to provide power information to all the machines that are connected to it. I backed up my configuration from my old server so, other than making a couple configuration tweaks, this should’ve been a piece of cake… ...
TPM2 auto-unlock of a LUKS-encrypted laptop running Debian
For a while now I wanted to make my Debian laptop’s LUKS encrypted drive auto-unlock with TPM2. Today is the day I try to do that: in and out, 20 minute adventure. tl;dr If you’re impatient and don’t want to know what I had to go through: Install dracut and tpm2-tools My initial lack of tpm2-tools is why this post is so long. If it doesn’t work, read through: you may be missing some Dracut modules. echo 'install_optional_items+=" /usr/lib64/libtss2* /usr/lib64/libfido2.so.* "' | sudo tee -a /etc/dracut.conf.d/tss2.conf Add tpm2-device=auto in /etc/crypttab (on your root partition’s line) between luks and discard (looks like luks,tpm2-device=auto,discard) ...
You have to start somewhere
I’ve been telling myself (and I’ve been told repeatedly) that writing a blog so I can remember: how I fixed whatever I broke, and what steps I had to go through to make computer do computer things would be a good idea. Well, I don’t have anything to write about today, but - unless something drastically changes in the near future - I probably will have something soon, so… Let’s do this. :)