How about a github-like service, like gitlab or gogs?
It might not be perfect, but that's a possibility. And could can definitely work around your requirements with those.
It might not be perfect, but that's a possibility. And could can definitely work around your requirements with those.