Simplify Your Self-Hosted Life With Forgejo Actions

So I finally took the plunge and migrated my builds from Drone to Forgejo Actions. Everyone familiar with GitHub Actions also knows what Forgejo Actions are. They follow the same principles and in some sense Forgejo Actions are a fork of GitHub Actions.

It took me a while to take that step. One reason was of course that it takes time to do. More importantly however, I was a bit reluctant to run an Actions Runner on the same server as all my other stuff. This is also not recommended! Action Runners are pretty potent and if something goes wrong, or some evil soul finds an exploit, this can do quite some damage.

Renting another server or setting up some system to temporarily spin up runners on demand is however also not in my budget. Whether monetary, time-wise and/or complexity I’m willing to maintain.

Then again managing a Drone instance is also not exactly maintenance free. It had some spooky ownership changes and running Drone on the same server as everything else is also not really safer than a Forgejo Actions Runner.

So one evening I finally convinced myself that it is ok for a private Forgejo instance to share a server with the Runner, even if it is against the official recommendation. The migration itself was rather painless. For one it is not complex to set up a Runner and connect it to Forgejo. Most of the workflows I had in Drone I basically just removed as they were old and I didn’t need them anymore anyways. So as a nice side effect I also cleaned house somewhat and I’m not missing anything.

The setup is much nicer now. The biggest benefit for me is having less moving parts. I basically just maintain a Forgejo instance which contains the code and all the related configuration and secrets to build and deploy that code. The runner itself is just some “dumb” execution satellite. Everything important is in Forgejo. This is so much simpler for a private instance like mine. And Actions are also amazingly powerful. They definitely cover everything I need and more. By the way, this blog itself is built and deployed with Actions.