Codeberg
Free, nonprofit Git hosting for open-source projects, run on Forgejo with no ads and no tracking. Operated by Codeberg e.V. in Germany.
Private alternatives to GitHub, vetted against our public criteria.
Grouped by threat level
Free, nonprofit Git hosting for open-source projects, run on Forgejo with no ads and no tracking. Operated by Codeberg e.V. in Germany.
Full DevOps platform whose Community Edition is open source under the MIT license and self-hostable, with a hosted cloud option too. Based in the US.
Community-driven, self-hosted Git forge forked from Gitea and stewarded by Codeberg e.V. Lightweight and copyleft, built to be owned by the people who run it.
Minimalist, fully open-source forge built around an email-driven workflow, with no required JavaScript. Available as paid hosting or self-hosted. Based in the US.
No matches for those filters.
Your repositories are the most valuable thing you produce, and the default place to keep them is owned by Microsoft. Code pushed to a platform you do not control can be folded into Copilot and governed by terms you never set. A Git host you run yourself, or one operated by a nonprofit, keeps the source on infrastructure that answers to you. The forges below let you own both the storage and the access rules without giving up pull requests or CI.
GitHub belongs to Microsoft, and the parts that matter most are not yours to configure. No setting pulls your public code out of the training corpus behind Copilot, and no toggle moves your repositories onto storage you own. The default centralizes open source on one proprietary service, which means a single company sets the terms and the pricing and decides who keeps access. You can tighten your repository visibility and lock down a few permissions, but the structural facts stay fixed. The infrastructure and the rules both belong to Microsoft, and your code lives where it can be mined. The only real fix is to host the forge yourself or hand it to an organization whose purpose is to serve developers rather than to sell a model trained on them.
Every forge here is measured against our public listing criteria. The code that runs the platform has to be open to inspection. You have to be able to self-host it or trust a provider with no incentive to mine your repositories. And the project needs a track record rather than a single weekend of hype. We weigh the license too, because a copyleft forge is far harder for a for-profit company to quietly capture than a permissive one. We only list a forge we would happily run for our own work, and we say plainly where each one asks more of you in return for the independence it buys.
Start with where the code lives. A forge you can self-host puts the repositories on infrastructure you own, which is the whole point of leaving GitHub. Read the license next: an open-source forge can be audited and forked, while an open-core one keeps its advanced features proprietary. Check the workflow you are buying into, because a familiar pull-request model is a gentle move while an email patch flow is a deliberate change of habit. Weigh the maintenance burden honestly, since a lightweight forge updates with one command and a full DevOps platform asks for real server resources. Look for working migration tooling so your issues and history survive the move. The right pick balances the control you gain against the upkeep you take on.
No, and this is the worry that keeps most people on GitHub longer than they need to be. Forgejo and GitLab CE both ship a full merge-request flow with inline review and branch protection, plus CI runners you point at your own machines. Codeberg gives you the same Forgejo experience as a hosted service, complete with its own CI. The labels differ from GitHub’s and the runners are wired up by hand, but the daily loop of opening a branch and merging the reviewed result is fully intact. The one genuine departure is SourceHut, which reviews code over email on purpose, a workflow the Linux kernel has used for decades. That is a different habit, not a missing feature.
Stand up your chosen forge first, either by deploying a container on a small server or by creating an account on a hosted provider. Use the built-in importer to pull each repository across with its issues and history, then push your local clones at the new remote so your day-to-day work moves with you. Keep a read-only mirror on GitHub for a while so existing links resolve while you tell collaborators the real home of the project. If you are leaving Microsoft more broadly, the de-Microsoft playbook covers the rest of the stack, and our GitHub alternatives page walks through the move in detail. Give it a sprint before you judge it, because the forge fades into the background once your habits catch up.