Martyn's random musings

Where I put my random musings - fedi follow @martyn@musings.martyn.berlin

So I've been messing with a lot of things and now I can finally make the little chatbot public!

So what does it do?

It gives you prompts on what to sing, for when you can't decide or when you can't think.

Example interaction :

@iMartynOnTwitch: !card
@karaokards: Your prompt is : Chorus contains up, down or over

Yep, that's it, that's all it does. It has an admin panel with twitch login where you can get the bot to join or leave your channel, add extra prompts you come up with and change it's magic command.

It's opensource of course, hosted at my house https://git.martyn.berlin/martyn/karaokards and it has ci that pushes to dockerhub whenever I create a new tag (quite like this bit tbh)

The quality of the code is sub-par in my perfectionist eyes but it works.

If you want it in your channel, go to https://karaokards.martyn.berlin/ and use your twitch login to add it to your channel.

Oh, the name, yeah, there was this game with physical cards and I couldn't get in touch with the author (I tried) so it was his kinda idea and the bot is an homage to his work.

So as the last post implied, I needed backups. Right now, ceph is fighting me, regularly and so I may need to recover my home cluster.

Well, I have a VPS from schnellno.de and there I also have k3s running (was kubeadm but k3s is so neat and great for the purposes I use, I've kinda standardised on it now).

Now I can use ceph in single-replica mode on that node, and create a CephObjectStore (not something I've played with before, but cool) to provide s3 compatible storage that isn't aws.

The benefits this brings are multiple :

  • I can use any backup system that targets s3 (e.g. velero)
  • I can use cyberduck as an s3 client on my windows laptop to explore the “buckets”
  • It's fronted by nginx-ingress with cert-manager, so the transfer is encrypted
  • It has authentication as a standard so it should be secure

So that's what I did, and installed velero, so now I have backups of my cluster, and can recreate it quickly. Unfortunately paying for storage online for the ~8Tib of spinny disks I have is not sensible, so I need to be a bit more clever when it comes to backing up the data.

I found https://github.com/ianneub/mysqldump-to-s3 on dockerhub and it's alright but it doesn't actually allow you to target s3-compatible storage, only s3. It's also based on ubuntu so it's a heavy container. And it doesn't have automated builds. So I forked it.

https://github.com/iMartyn/mysqldump-to-s3 and https://hub.docker.com/r/imartyn/mysqldumptos3 exist and are approximately half the size of the previous incarnation (alpine based).

I now have daily backups of this blog's database, my nextcloud database and the kubernetes objects. That's a very good start and I'm feeling happy about this.

So I tried twice to set this up and twice my hardware killed the database before I'd set up backups.

Hopefully I'll get there this time!