I am experimenting with using Actions with GHES and have manually built a VM to be a self-hosted runner. At the moment, I’m adding things as it seems to make sense and VM hosting the runner feels like a bit of frankenstein monster. I’d like to standardise the build and am looking for the wisdom of the crowd on this.
You could likely utilize the packer templates that GitHub uses for the hosted runners as a baseline for setup and installs. You can view the template and docs used for Ubuntu images here. Note: you will need to modify the templates if you want to utilize them outside of Azure since that is the only cloud supported out of the box.