Moving to a Lonely Forge

Arcuru2 pts0 comments

Moving to a Lonely Forge

GitHub’s down again today, so I think I’ll spend the time moving to a self-hosted Forge.

I’ve long been an advocate for decentralizing software development, but over the years it has always just made sense to keep the primary repos on GitHub.

GitHub proved that grafting a social-network onto software development is extremely useful, and it makes the service verrry sticky. For developers, hopping between projects became easier with a clearer “shared identity”. For users, the Star system serves as a vote of confidence for the projects, and making 1 account on GitHub to interact with the developers of ALL the projects you use was pretty easy.

(Yes, I’m using the term ‘users’ here to refer to people who are trying to consume OSS software, I understand it is not fully realistic for all ‘users’)

But now a ton of projects RELY, for some reason, on this specific website being up. They have no backups or fallbacks or mirrors. Even worse, developers keep a ton of really important info about their project development, contained inside of Issues and PRs, only stored on GitHub. (Or Discord, which is even dumber!).

That’s just bonkers.

What I’ve Been Doing

Link to heading

For a few years now I’ve been adding this note to my project READMEs:

Mirrored on GitHub and Codeberg. GitHub is the official repo, but use either repo to contribute.

For practical reasons GitHub is just easier to keep as the primary repo, and mirrors are cheap. I set up a simple GitHub CI job that mirrored every commit over to Codeberg. And because I’m not a mooch, I also set up a monthly donation to Codeberg.

I’ve been eagerly waiting for Forgejo (which powers Codeberg) to finally support federation. That would, in theory, fix the social-network benefit of GitHub by making every Forgejo server work together like one big connected developer network.

That has not happened. Or at least, it doesn’t seem close to finishing.

Codeberg also recently put in place some…questionably thought-through policy changes, so I’m a lot less bullish on Codeberg. Plus they may have banned me, but I’m not entirely sure since their new policy is based on vibes.

Moving to What?

Link to heading

I dunno. 🤷

I have a private Forgejo on code.jackson.dev that is my current planned target. It’s had private repos, mirrors and CI on it for quite a while already, but I’m experimenting this week with migrating more work to it. In practice, that means if anyone wants to contribute something they’ll need to either do it on GitHub, which I’ll keep as a mirror, or they’ll need to reach out to me directly since they’d have no way to create an Issue.

This was always the plan if Forgejo got full federation support, I’m just going to move now regardless of whether it’s ready.

That’s not really ideal and sounds a lot like the current setup. The main difference is that I will fully own the source of truth for my work, which matters to me.

I’m also experimenting with both Radicle and Tangled, but neither has gone very well. Their stacks seemed to be quite immature and I ran into issues running both of them. It’s been a while since I last tested them though, so I’ll be re-checking those too.

Hopefully one of those works, I think Radicle or Tangled are likely “my kind of crazy” and are where I’ll probably end up.

I’ll really miss having cheap hosted runners though :(

rsquo github codeberg moving keep projects

Related Articles