Using both container registry and self-hosted runners, etc.
I was personally very frustrated with ACL and generally inheritance rules in gitlab and it is much more sensible and easy in Forgejo.
You'll want to be cautious, because readme and promises are not software; they're attempting to squat on[1] nektos/act[2] which itself is the 20/80 of GitHub Actions
You'll almost certainly be happier using woodpecker[3] or some other "external" CI system so you don't have to hopes-and-prayers your CI system
1: https://code.forgejo.org/forgejo/act
2: https://codeberg.org/forgejo/forgejo/src/tag/v10.0.3/go.mod#... and https://codeberg.org/forgejo/forgejo/src/tag/v10.0.3/go.mod#...
3: https://github.com/woodpecker-ci/woodpecker (Apache 2)
Had act been a known working project, maybe it would have been worth the risk of forking it, or hitching their wagon to it, but to take a weekender project and attempt to build the entire CI system on top of it is insanity. Well, it would have been insanity in a world before having software that sometimes works and sometimes gaslights you became VCs shoveling money. So don't listen to me, I obviously just haven't gotten on the "maybe it works" train
1: https://forgejo.org/docs/latest/user/actions/#:~:text=used%2...
forgejo seems to have everything I need including CI pipeline and container registry so I am definitely going to give it a try before trying to update gitlab.