If you just want something like Github, Forgejo is the simplest and most reliable.
If you need decent code review then Gerrit, but it's much harder to set up.
If you want to try something decentralized - Radicle is very interesting, but has lots of dangerous key management footguns.