Fixing a recurring libreelec issue
I mostly make this post to save myself some time next time I run into this issue. I run libreelec on a Raspberry Pi 4 attached to a tv that really just acts as a display, purely to play content from Jellyfin and YouTube. Every few months it will just seemingly randomly stop playing content from either Jelyfin and YouTube, usually at very inconvenient times. To diagnose this I enabled ssh.
Yet another networking method for Linux namespaces
All code for this can be found on github.
For an application that I’ve been working on, that leverages rootless containers (or rather, rootless namespaces as I don’t follow any of the container standards for this), I needed networking. Docker uses bridges by default, which require root. So that wasn’t worth looking at. Podman mentions slirp4netns quite a bit. Which requires an extra binary to be installed so isn’t ideal, but I ultimately added it as an option anyway (after I wrote what I’m about to talk about).
Ingame resource tracking using grafana and prometheus
Not too long ago a new piece of content was added to RuneScape, a MMO I play. This suddenly made some ingame resources that so called workers would gather for you at a configurable speed (but a set limit) more important. As I tend to be quite forgetful about actually emptying these kinds of things I quickly set out to set up alerts for this. I could have gone with a very naive that would just fire after 7 days exactly or something like this, but that’s no fun.
Smaller docker images
Inspired by this post I saw on hackernews yesterday. I had a quite look at my own homelab setup docker container wise. I quickly realized that quite a few of my services run a socat image in between. This is mostly because I have a docker network exposed directly to my wireguard vpn, complete with automatic dns entries to them. And of course a good chunk of the docker images of services have their web interface on a port other than 80, so I would run a socat image next to it just as a dumb proxy.
Plotting RuneScape Grand Exchange prices in Grafana for fun and ingame profit
How and why I wrote a Grafana datasource to browse prices of ingame items of RuneScape
Enabling respawn anchors in the overworld for minigames
Explanation on how I ended up enabling respawn anchors in the overworld on our SMP server
Mirror gitlab to gitlab and/or github
Brief guide on how to set up mirroring from gitlab to other gitlab instances and github.
Using private gitlab repositories in Gitlab CI with golang
In order properly build go software that depends on libraries in private gitlab repositories you’ll have to jump through some hoops. The following instructions are known to work as of 2019-12-14, I’ll try to keep this post updated in the future if needed.
Step 1. First of all we’ll want to create a new ssh keypair specifically for this usecase. I personally would startup a quick container for this using docker or podman, but this is also very easy to do on your normal host system.
Tripping Cyril
If you’ve been paying attention to my github page lately you’ll probably have seen me working on a project I called Tripping Cyril. As the description of this suggests it’s a public rewrite of an internal framework I wrote. First of all, this name is totally made up. I suck at coming up with names, when creating a new project on github these days it simply suggests a name and I went with the first suggestion.