Theme Switcher:

Some thoughts on personal git hosting


As part of my ongoing (and somewhat futile) efforts to ReDeCentralise, I'm looking at moving my personal projects away from GitHub. I already have accounts with GitLab and CodeBerg - but both of those sites are run by someone else. While they're lovely now, there's nothing stopping them becoming as slow or AI-infested as GitHub.

So I want to host my own Git instance for my personal projects. I'm experimenting with https://git.edent.tel/

It isn't quite self-hosted; I'm paying PikaPod €2/month to deal with the hassle of hosting and updating the software. I get to point my domain name at it which means I can always change the underlying service if I want. For example, it uses Gitea and I might want to switch to Foregjo later.

So far, it works. But there are a few significant drawbacks.

Network Effects

A large service like GitHub has network effects which are incredible. It feels like 90%+ of all developers have an account there. That means if someone wants to leave a comment or send a PR there is no barrier to entry. That's huge! There are a bunch of popular FOSS projects which make me sign up for yet another service when all I want to do is send a simple bug report which I find deeply annoying.

Luckily, Gitea has built in support for various OAuth providers. So I've set up single-sign-on with Gits Hub and Lab.

An SSO screen with buttons for GitHub and GitLab.

I asked people how easy it was to use - most people were able to use it, although a few people wanted a local-only account.

But is is still a bit of a faff. Even a little bit of hassle turns people away.

Forking isn't Federated

Suppose you want to make a Pull Request or just take a copy of the code. At the moment, you have to create a fork on my server. There's no way to easily fork something to your GitHub or personal server.

You can git clone the repo to your local machine, and you can manually move it elsewhere, but there's no way to send a PR from your repo to mine.

There's also no way for users to find other forks. Perhaps the upcoming ForgeFed proposals will fix things - but it doesn't exist yet.

As pointed out in "Let's Make Sure Github Doesn't Become the only Option" - most of the tooling of git hosting platforms isn't adequate for modern needs.

Discoverability

The easiest way to find code at the moment is to search GitHub. Moving my stuff to a different site means it will only be discovered by a general search engine.

I want people to find and use my code. If that's hard, they won't. I can point existing users to the repo - but it still cuts down on discovery.

Admin Hassles

Although PikaPods takes care of all the hosting administration, there's still the faff of setting up all of Gitea's options.

Long list of config options.

If I get hit by an automated spam attack, it'll be up to me to clean it up.

I'm not sure if I have the time, patience, or expertise to correctly and safely configure everything. Time spent administrating is time not spent coding.

Sponsorship

I get a little bit of money when people sponsor me on GitHub. There's no "sponsor" option on Gitea and, even if there was, the network effects of GitHub are substantial. Getting people to enter their credit card info into a random site isn't as convenient as clicking a button in GitHub.

Now What?

My most popular Github repo has around 140 contributors. I genuinely don't think I could attract that many people to OAuth onto my personal git hosting service.

Gitea seems to have a mixed reputation. But it's the only one offered by PikaPods.

There are interesting discussions about how to replace GitHub but they're only in the early stages.

Although €2/mo isn't a huge amount, I've gotten used to having free services on GitHub / GitLab / CodeBerg.

So this, I think, is my plan:

  1. Leave my popular / sponsored repos on GitHub
  2. Move my smaller repos to https://git.edent.tel/
  3. Create new repos in there as well

I'm also going to look for a hosted Forgejo instance which lets me use my own subdomain - hopefully at a cheaper or comparable price. If you have any recommendations - please let me know!


Share this post on…

3 thoughts on “Some thoughts on personal git hosting”

  1. said on m.mtlynch.io:

    @Edent the biggest blocker for me is CI. I haven't found a real managed CI that supports Gitea/Forgejo/Codeberg. If I'm storing production secrets in CI, I really want them to have a dedicated security team that's patching quickly and monitoring for intrusions. I hooked Codeberg up to a self-hosted woodpecker instance, but I don't trust it with production secrets.

    Reply | Reply to original comment on m.mtlynch.io

  2. said on fe.disroot.org:

    @Edent I realized that the term “fork” is starting to lose its original meaning. Originally, forking mean cloning a repository. In the case of Git and other distributed VCSs, cloning happens completely distributed without creating an account. However, GitHub, Codeberg, Forgejo, Gitea, and GitLab have hijacked the term, so now it means “Git clone,” but an account is required.

    Reply | Reply to original comment on fe.disroot.org

What are your reckons?

All comments are moderated and may not be published immediately. Your email address will not be published.

See allowed HTML elements: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <p> <pre> <br> <img src="" alt="" title="" srcset="">

To respond on your own website, write a post which contains a link to this post - then enter the URl of your page here. Learn more about WebMentions.