Forgejo/Gitea are pretty easy to set up and compatible with GitHub Action syntax. PRs work almost identically. The mildly annoying part is that Kaniko got deprecated by Google and the company that forked and maintains it doesn't publish binaries so you'll have to build it from source yourself if you want isolated non-root builds in your runners. Any of the major LLMs will get it running pretty solidly without much trouble, though.
I combined it with Zot for an OCI registry but there are quite a few choices there.