In this guide, I will go over how to setup and configure a fresh instance of Forgejo, deploy a runner to enable Forgejo Actions, and optionally setup OAuth2 authentication with Pocket ID and GPG commit signing within Forgejo. If you are migrating from Gitea, I also go over manually migrating your repos to your new Forgejo instance.
I think the article goes against forgejo’s best practice recommendation of installing the runner on a different instance but otherwise it seems solid.