Welcome to the Shambling Mess

The Evil Genius Chronicles began as a blog in 2002 and a podcast in 2004. Enjoy!

Most Recent Post

Forgejo Actions

I recently touted my success of finally getting this Eleventy blog fully built and transmitted to my host box via Github Actions. Before I even finished my victory lap, concerns over AI and Microsoft made me start looking for alternatives.

Thus began a process that ended up with me self-hosting Forgejo and some action runners. I will admit that before last weekend, I thought Codeberg was a product. I see people with their Codeberg.org URLs and naively searched on "self-hosting Codeberg". After sorting that out, I set up my own Docker container with Forgejo.

I've seen some projects that aim to fork what other projects do. I have never seen one so complete as this. Forgejo is 97% an exact Github look-alike and act-alike. There was practically no learning curve as it is almost exactly the same.

After installing, creating the account and doing the basic configuration I then used the Migrate Github to Codeberg code to pull down every repository and set it up on my own install. It worked shockingly well. It also reminded me that I have a number of bullshit repositories that would be best deleted.

The biggest pleasant surprise was that the Github Action that I had finally perfected mostly worked after I set up my Forgejo runner. Although all the documentation says that having it on the same machine that hosts the Forgejo server is a security risk, it is a system no one but me uses and is not exposed to the outside world so I will let that one ride.

There was fiddling involved to get it to work.

  • I had to figure out the labels/capability matrix. I didn't understand that when I first set up the runner and it wasn't recognized as one that could handle my action so I had to recreate with a better label.
  • Most of the actions I use are pretty standard and are mirrored to the Forgejo site that the runner pulls from by default. SSH Key Action is not one of the cores and wasn't being found. That's when I found out that you can specify actions by their full URL and then they will work.
  • The image my runner uses didn't have rsync out of the box. I had to add a run step that does an apt update followed by an apt install of the package

Once I did all that and configured my various tokens, I'll be damned but the thing built! More than that, it also correctly transferred my blog files while also preserving my bootleg WREK RSS feeds. This is good stuff. It wasn't without fiddling but honestly it was less than I assumed there would be.

All told, this is a positive move. I'm not deleting my Github account entirely but I'm also not creating any more private repositories there. The only reason to put anything on Github now is because I need to interact with others. Over time, as I pursue my AI Tea Party and cut out companies that insist on jamming generative AI into products, I will consider never touching it again.

Recent Posts

View All Podcasts View All Blog Posts