Gitea vs Forgejo: which self-hosted GitHub alternative should you run?

If you want to host your own Git repositories — a private GitHub for you or your team — two names come up, and they look almost identical: Gitea and Forgejo. That's not a coincidence. Here's the real difference, and how to choose without overthinking it.
Why they look the same (they were the same)
Forgejo is a fork of Gitea. In 2022, Gitea's project was moved under a for-profit company, and part of the community — uneasy about a community project sitting inside a commercial entity — forked it into Forgejo, governed by the non-profit Codeberg. So they share a common ancestor and, to this day, most of the same features: a fast, GitHub-like interface, issues, pull requests, a built-in CI (Actions), packages, and a footprint light enough to run on a small box.
For the first year the fork tracked Gitea closely. Since then Forgejo has increasingly gone its own way, but the day-to-day experience of both is still: log in, and it feels like a lean, self-hosted GitHub.
Gitea — the established one
- Mature, widely deployed, well-documented. If you search a problem, someone has hit it before you.
- Fast and light — a single Go binary and a database, happy on modest hardware.
- Backed by a company, which some read as stability and others as the reason to prefer the fork. Both readings are fair.
Pick Gitea if: you want the most battle-tested, widely-documented option and you're untroubled by the governance question.
Forgejo — the community-governed one
- Non-profit governance under Codeberg — a community project that intends to stay one. For a lot of self-hosters, that's the whole decision.
- The same lightweight, GitHub-like experience, with active development and its own roadmap now.
- Powers Codeberg itself, so it's proven at real scale.
Pick Forgejo if: you want a forge whose governance matches the reason you're self-hosting in the first place, with no practical loss in features.
"What about GitLab?"
Fair question. GitLab is the heavyweight — a full DevOps suite with deep CI/CD, container registry, issue boards and more. It's genuinely more capable, and it will happily eat several gigabytes of RAM to prove it. That's the trade: GitLab is the right call when you need the whole integrated DevOps platform and have the hardware to feed it. For the very common case — "I just want private repos, issues and pull requests without renting them from GitHub" — Gitea or Forgejo do the job on a fraction of the resources, which is exactly why they're the ones we put a click behind.
So which one?
Honestly: you will be happy with either. They're that close. If you want the safest, most-documented default, run Gitea. If the governance story is why you're self-hosting at all, run Forgejo — you give up nothing in practice to get it. Both start in minutes and both run comfortably on a small server.
| If you want… | Run |
|---|---|
| The most established, widely-documented forge | Gitea |
| Community, non-profit governance | Forgejo |
| A full integrated DevOps platform (and the RAM for it) | GitLab |
Getting one running
Either forge needs the app, a database, a volume for your repositories, a domain and TLS. Set up yourself on a VPS, that's an afternoon and then a standing job to keep updated and backed up — and your repos are exactly the thing you don't want to lose to an untested backup. Or deploy Forgejo or Gitea in one click and push your first commit while the plumbing takes care of itself.
Deploy Forgejo → · Deploy Gitea → — or see the full catalog.