Github has been down consistently over the last few months - does it make sense to switch to alternatives?
It depends on what you are after?
1. Do you want something that works and feels like GitHub? -- Forgejo and Gitea are good for this.
2. Do you want a place to host git repositories with minimal hassle? -- GitLab, CodeBerg, and others are available.
3. Do you have your own hosting infrastructure? You could use gitolite and CGit/GitWeb on that hosting platform or local hardware.
4. Do you just want to host repositories? -- Gitolite can be used to help with SSH/auth/repository creation, and CGit or GitWeb for the frontend.
5. Do you need something like GitHub Actions? -- GitLab, Forgejo, and Gitea offer CI, or use external CI infrastructure.
6. Do you need issue tracking and management? -- GitLab, Forgejo, and Gitea provide these. There are alternatives from Jira to Kanban (including Trello) to Markdown (Obsidian and others) and more.
https://tangled.org! Founder/CEO here. We're a new forge building things from the ground up, and are fully federated -- you can host your git repos on your own infra, along with the CI runners. We've also got a pretty neat set of features (if I may say so myself): stacked PRs, Nix-based CI (if you want it), and a fully open protocol (https://atproto.com) to for you and your agents.
Happy to answer any questions.
I answered this in another thread, if you're already running a large GitHub organization, GitLab is the closest alternative in terms of features
A big plus is that it also has an open-source Community Edition that you can self-host
We switched our entire product studio to a self hosted Forgejo https://forgejo.org/ and honestly this has been one of our best decisions:
it's fast, has a great API for bots and automations to use, just a Go project so we've been able to make some tweaks to the runner. Very easy to setup and admin
I migrated everything to codeberg several months ago (and created an annual donation schedule). I was never a big fan of github but what ultimately pushed me to ditch it was the way github was shoving copilot/chatgpt in my face without me ever asking. Codeberg has a clear stance on that and it's a stance I can totally get behind.
In addition I spun up forgejo at a server at home for very critical stuff and it's awesome.
Might not be the right move for everyone but I'm very happy to have invested some time and effort to setup my personal Forgejo instance.
I've blogged about it too: https://news.ycombinator.com/item?id=48978707
I strongly disagree with the assumption that GitHub's alternative is another centralized forge. Git itself is perfectly decentralized, as was the original Linux kernel development process. How people managed to put all their eggs in one intermittently available service is beyond me. Moving the eggs into another bucket is not a solution (like Microsoft is short of servers). The SPoF is the problem. There are plumbing, porcelain and "github" layers. The "github" part has to be decentralized as well. Then, using a particular forge will be a choice of convenience, not necessity. https://replicated.live/blog/crdt
I'm screwed because I am part of an ecosystem that all lives in github.
I'm not happy about the fact that GH doesn't show my when new issues or PRs are filed against projects I maintain despite the notification settings implying I should be getting notifications, but at least it's not Atlassian.
I was working on major architecture shifts for a couple of libraries, to fix early mistakes or improve performance. I noticed that of them used a tool A that was dead, built on another tool B that was even deader.
I found someone who was building a new B, and I made a new A and offered to swap in it on the one project. That went well, so then I integrated it to the other projects I was contributing to. Which I'm now also a maintainer on.
And also the 'new B', because I pushed the intent of his library farther than he had been thinking about, contributing about 20% of the public facing API and about 5% of the internals.
One of those projects is a monster, of which I'm just on a subproject. I'd never be able to get them all to move off. And any mix of GitHub and ^GitHub results in the amount of busy work I have to do to keep on top of issues and PRs more than doubles.
And that's how the getcha.
Forgejo is splendid. Codeberg is a hosted instance; depending on what you’re developing it may or may not be a good fit for you. But the Forgejo stack itself is decently light-weight to self-host, very fast to use, and is easy to navigate.
I've used gitlab and gitea; gitea is faster, and easier to manage and does everything I actually need though, is less feature complete.
Forgejo is great to self host. I have an easy to use template for setting it up on fly.io with backups here: https://forgejo-fly.fly.dev/forgejo-admin/forgejo-fly
I'm building my own - https://git.zserge.com/fierj - and for a few weeks it's hosting itself. Still working on patches workflow and CI, but it's quite usable already. I try to make it "minimally federated" - only threads (issues/discussions etc) are federated via ActivityPub, for PR there is old-school patches workflow, for CI just chroot and a shell script. A lightweight personal git forge in ~4KLOC. Can't say everyone should use it and can't recomment it, but building a personal forge is very realistic. Or you can run cgit as a frontend to your git remote on a server.
Try self-hosting Gitea with push mirror to GitLab or GitHub. Gitea is powerful and lightweight, and a push-mirror to another service is a plus as a backup location.
DSCI - http://deadsimpleci.sparrowhub.io
- lightweight ( single binary written on golang ) - ci runner embedded ( podman / docker ) - pipelines are written on general programming languages - no YAML craziness - Perl/Python/Bash/Raku/Powershell/Php/Golang support - code editor
I've had both self hosted GitHub (enterprise), and GitLab in the last year. It really deoends what you're trying to replace and how you structure the things you're hoping to replace. Also, the value of investing in your separation of concern or safety valve.
To me, still, at a scale of 250 contributors (which we hit), Gitea solved all the problems. The fact that there's a command line tool (tea) that mostly works, means that it is beyond good enough for my use case, out of the box. It misses all sorts of things and depending on how important they are, you then invest in looking to close we they'll gap. That in turn creates its own maintenance and frustration costs.
In other words, there's no one shot. There's a good enough depending on need.
my favourites are sourcehut (that has excellent ci, and does not try to be a github clone) and codeberg (with slightly more straightforward migration path from github)
[0] sr.ht
[1] codeberg.org
Hi guys have you looked into gitlawb.com?
Opensource, decentralized and agent friendly I just asked my agent to do a git push in seconds no human involve
I personally host a forgejo instance on a private VPS ; so far almost no maintenance except protecting it from ai-crawlers[#1]. If you don't want the hassle, codeberg.org is a public instance of forgejo.
[#1]: https://her.esy.fun/posts/0031-how-i-protect-my-forgejo-inst...
I configure my local repositories to push on both Github and my forgejo instance. I am not using the CI much for my private projects (local tests are enough in my case).
If you are frustrated with Github being down again, and just want an alternative, the other options listed are better fits. If you have the time to look at doing more than that, then check out fossil https://fossil-scm.org/home/doc/trunk/www/index.wiki
- It isn't git - Works best with smaller teams - You need to be ok self hosting (single binary, easy to do)
The first point is really the killer. It is revision control, it is as good as git (maybe better), but it is different. Git = branches are easy, was built to support Linux's lieutenant development model, and a massive, loosely connected team. Fossil = branches are intentionally hard, built to support a small, tight knit team (SQLite).
Most teams I've been on are closer in size to SQLite than they are to Linux, but everyone already knows git at a gut deep level. YMMV.
Self hosted GitLab has been good to me forever and has scaled and has a controllable attack surface as long as you keep on top of it
Newer app is moving to Google Cloud Secure Source Manager (because we are on Google Cloud and using backbone auth so it made more sense and less involved to manage)
For my personal projects I use https://radicle.dev/
Mostly a toy, but I made https://dumbforge.dev which is intended for hosting public repos without setting up a daemon or forge at all.
I'm nowadays hosting my projects on rngit (git over Reticulum). But also pushing a mirror to GitHub via a cronjob to increase visibility.
https://reticulum.network/manual/git.html
I don't think moving to another forge is much of a solution, at most it is buying a bit of time. We've seen this happen with SourceForge, with Tigris, and now with GitHub.
In my opinion the most underestimated git forge is radicle.
Not sure if someone mentioned it already but I also used bitbucket in the past and found it very easy to use with a similar offering as github.
i don't think so. lots of cloud-providers still support github. atleast in my case i can't switch
I've used GOGS for years (Go Git Service). https://gogs.io/getting-started/introduction
Creator of GitSocial here: it's a Go binary CLI/TUI that lets you store all your issues, PRs, etc. in the git itself and self-host on any S3-compatible bucket: https://gitsocial.org/.
On more detailed level, it allows forgeless issue management, cross-forge PRs, git-native discussions, and much more.
It has not dependencies, just git itself. Happy to answer any questions!
I don't want to ignite an argument, but this feels like Linux v Windows. You should absolutely switch because you hate dealing with it, but the less-popular choice is going to be less popular everywhere. Your next job will very, very likely not care about your personal hatred and will simply force you back into the default, popular choice. It is sometimes best to stick with what (mostly) works for everyone unless you want to go down the path of learning another tool.
I use Forgejo + Gitea for my home forge, then Tangled for anything I want to share with my own runner.
I self host Lore for my gamedev projects.
I set up Forgejo on my FreeBSD home server the other week, it's been working fantastically. All the features I need, snappy, easy to install.
I think ultimately any company that goes this route will start benefiting from an IT team again though - instead of just pushing everything off to SAAS providers.
I'm mostly using GitLab right now, both self-hosted and their hosted platform. But am curious about Cursor Origin and certainly plan to try that out when it's available.
Curious to hear: does GitHub not have any switching costs to leave? Or is it the broader Microsoft ecosystem? Or a mix of both?
From when MS bought GitHub: https://github.com/ianchanning/awesome-github-alternatives
The former CEO of GitHub has launched a competitor: https://thenewstack.io/thomas-dohmke-interview-entire/ Anyone using it?
For SaaS forges there's also upd.dev launched recently.
For self-hosted forges: forgejo is great but also cgit is pretty good for exporting repos.
With the recent GitHub fiasco I've split my repos across multiple forges. Git was always supposed to be decentralised so why store everything in one place?
My setup is a self hosted GitLab. From there, in most of my repos I setup repo mirroring (basically it just does its own SSH-based git push whenever I push commits to it) to GitHub, GitLab, and Codeberg.
All of these are free (if you ignore electricity cost of hosting your own git server), and each one is a backup of sorts.
I don't necessarily recommend starting with GitLab though unless you want advanced CI capabilities, but you're already used to GitHub so you should consider self hosted gitea, which uses the same Actions syntax and even has some interoperability with its action modules I think.
But yeah, my recommendation is just to push to as many (free) git hosts as you can. Why not take advantage of free code storage if it's available. Plus if any one host goes down you can still retrieve your code from the others.
I moved to gitea + ec2 spot for actions w/ mirroring to GH for the time being.
I self host Forgejo on a cheap VPS with hourly borg backups to rsync.net. It's a great system and seems comparable to github, although I'm not a heavy user of actions on either platform. I do use the container registry though. It was a smooth transition and easy to install. I used the docker installation method. Forgejo is great if you don't mind hosting yourself.
GitHub Sponsors. It's a nice way to for free and open source developers to earn some money.
Which GitHub alternatives have anything like it?
https://git.cafe if you want a team focused entirely on building a better forge experience rather than a github clone and don't want to deal with hosting yourself (and yes jj support is built in)
https://github.com/facebook/sapling Anyone outside of FB using it?
I miss something like GitHub but - hosted in the EU - without "FOSS only" limitation like codeberg.
I know I can self-host forgejo but would be nice to have something like forge.eu (even paid!)
if you want to work on personal projects and store personal data, use gitLab; if you’re working on open-source projects, use codeberg. codeberg is a nonprofit organization dedicated to open source, so their storage policies are quite strict. gitLab offers 10gb of storage with no restrictions, and their data policies are much better than gitgub’s if you want full control and to deploy on your own, consider forgejo for an experience similar to github actions. If you’re used to gitlab’s pipelines, set up your own private gitlab instance
I'm working on self hosting Gitea right now. Hopefully it goes well!
To all of those proposing self-hosted GitLab: we did it for 6+ years in my company, and it's not always a smooth sailing. We had our own runners and we made it auto-upgrade across docker images daily before business start. It mostly worked really well, except those few times were a Docker upgrade had to be rolled back, or that one time the bundled pg_shared_buffers was set at 1MB by default, making schema upgrades impossible for bigger instances, or a version major would break pipeline expectations forcing to upgrade 200+ repos at a time (we pinned to major afterwards). Lately I was also receiving an almost weekly "critical patch" newsletter due to critical/high vulnerabilities, which I can only imagine are due to LLM running over the code and identifying bugs.
That said, I wish we hadn't migrated to GH, our self-hosted instance had WAY less downtime despite being perhaps a bit slower (mgmt saving money) and required a bit more toil: GH is nowhere near Enterprise-ready and it feels a downgrade across the board. GL has better access granularity, better docs, better integrations, and you can clearly see the UI received a lot of attention (although it does take 10m with a new account to pin the proper items in the maze of sub-menus that is the sidebar). You can also look at the code and help out if needed, and/or simply provide a patched version to your image via a docker mount.
If you're really looking at self-hosting GitLab for a smallish team (up to 50-100 ppl), prepare at the very least a 16GB machine (best 32GB) with 4 cores and a decent SSD, and at least a small team (1-3 people) that can maintain it properly or jump at it at any moment. For runners, a small k3s cluster is ideal to make use of all the resources you can throw at it without worrying about managing the runner state/configuration.