Hosting a public read-only repo would be as easy as standing up NGINX and pointing it at your repo folder, afaik.
At my previous job, we all had individual dev machines that we each had accounts on. So, we each had a copy of our repos that we could push to/work from. I wrote a little git alias that would add remotes for each others' machines so we could pull directly from each other (though we couldn't push).
Hell, even a "private" git repo wouldn't be too hard as long as you don't care about per-project permissions. Just make a user (e.g. 'git') that has read/write access to the folder and add some SSH keys to authorized_keys. Shazam, you have a private, self-hosted git repo at ssh://git@yoursite.com:path/to/repo.git.
Gitlab is implementing MRs via git send-email though, which is part of an epic to federate Merge Requests: https://gitlab.com/groups/gitlab-org/-/epics/260 .
I'm kind of surprised it isn't already like this, or similar.
Disclaimer: I don't care personally.