The self-hosted Git market fractured in 2022 when Gitea Ltd accepted venture capital funding. The community that had built Gitea for six years forked it into Forgejo, citing concerns that VC backing would eventually push the project toward commercialization or lock-in. That fork is now the active choice for anyone who cares about governance as much as features.
This comparison covers all three options you'll encounter when evaluating self-hosted Git: Forgejo (the community fork), Gitea (the VC-backed original), and GitLab Community Edition (the enterprise platform with a free self-hosted tier). They're all viable. The right one depends on your team size, your hardware, and how much you care about who controls the software.
Gitea: Lightweight, Pragmatic, VC-Backed
Gitea is a self-hosted Git service written in Go, distributed as a single binary. No container runtime required, though Docker Compose works fine. A Raspberry Pi 4 with 512MB RAM runs Gitea comfortably for a team of 10-20 developers. That resource profile is the defining characteristic: Gitea does more with less than any comparable tool.
The feature set covers the core developer workflow: Git repository hosting, pull requests with code review, issue tracking, milestones, wikis, webhooks, and a package registry supporting npm, PyPI, Maven, and container images. Gitea Actions — shipping since 2022 — uses GitHub Actions YAML syntax, which means most .github/workflows/ files migrate to .gitea/workflows/ with minimal changes.
Around 42,000 GitHub stars. Actively maintained with regular releases.
The VC question: Gitea Ltd took investment in 2022. The project remained open source and the practical impact on day-to-day development has been limited. The concern is longer-term: VC-backed open source projects have a documented pattern of eventually shifting to paid tiers, relicensing, or prioritizing enterprise features over community needs. Gitea has not done this yet, but the structure now exists for it to happen.
What Gitea costs: $0 for self-hosting. Gitea Ltd offers a managed cloud service (Gitea Cloud) with paid tiers, but the self-hosted version remains free and fully featured.
Forgejo: The Community Fork
Forgejo launched in late 2022, maintained by the Codeberg organization, and hosted publicly at codeberg.org/forgejo/forgejo. It is a soft fork of Gitea, meaning the codebases stay close. Bug fixes flow between projects. The governance is the difference: Forgejo has no corporate owner, no VC investors, and decisions are made by the contributor community.
Functionally, Forgejo and Gitea are nearly identical today. The same Go binary, the same resource footprint (runs on 512MB RAM), the same GitHub Actions-compatible CI (Forgejo Actions), the same package registry capabilities. The Forgejo download page offers the same deployment options: binary, Docker, Kubernetes.
One feature Forgejo is building that Gitea is not: ActivityPub federation, which would allow users on different Forgejo instances to follow repositories and submit issues cross-instance. This is early and not production-ready, but it's a structural difference in project philosophy — Forgejo is building toward a decentralized forge network rather than a centralized hosting product.
Who should pick Forgejo over Gitea: If software governance matters to your organization, if you want to ensure the tool can't be relicensed or commercialized unilaterally, or if you're building for the long term and want to bet on a community project rather than a venture-backed company, Forgejo is the right call. It's what I'd recommend for new deployments today.
What Forgejo costs: $0. Self-hosted, all features included.
GitLab Community Edition: The Enterprise Platform
GitLab CE is a different category of tool. Where Gitea and Forgejo are Git forges with CI added, GitLab is a complete DevOps platform: source control, CI/CD pipelines, container registry, package registry, security scanning, DAST/SAST integration, dependency analysis, and compliance reporting in a single application.
The self-hosted Community Edition is free and open source. GitLab Premium and Ultimate are paid tiers for the SaaS version or for self-hosted installations with support contracts: Premium runs $29/user/month (billed annually), Ultimate runs $99/user/month.
The catch with GitLab CE is hardware. It requires 4GB RAM at minimum to run at all, and 8GB RAM to run comfortably for a small team. A production instance under real developer load needs 16GB or more. A $6/month VPS is not enough. A $30-50/month server gets you started. For a 10-person team using GitLab, the infrastructure cost is real.
GitLab's CI/CD uses its own YAML syntax (.gitlab-ci.yml), not GitHub Actions format. This is a meaningful migration cost for teams coming from GitHub Actions or those running Forgejo/Gitea Actions. Pipeline configuration for GitLab is well-documented, but existing GitHub Actions workflows need rewriting.
Side-by-Side Comparison
| Forgejo | Gitea | GitLab CE | |
|---|---|---|---|
| Cost | $0 self-hosted | $0 self-hosted | $0 CE, $29-99/user/mo SaaS |
| Governance | Community (nonprofit) | Gitea Ltd (VC-backed) | GitLab Inc. |
| Min RAM | ~256MB | ~256MB | 4GB |
| Comfortable RAM | 512MB | 512MB | 8GB+ |
| CI/CD syntax | GitHub Actions-compatible | GitHub Actions-compatible | GitLab CI (own syntax) |
| Container registry | Yes | Yes | Yes |
| Security scanning | No | No | Yes (Premium) |
| Federation | In development | No | No |
| Maturity | 3 years | 10 years | 12 years |
| Active installs | Codeberg.org (100K+ repos) | Gitea Cloud + many self-hosted | GitLab.com + enterprise |
Resource Requirements Matter More Than Features
For most teams choosing between these three, the RAM question decides it before anything else.
A $6/month VPS (1GB RAM) runs Forgejo or Gitea fine. A $6/month VPS cannot run GitLab. A $30/month VPS (4GB RAM, 2 vCPUs) runs GitLab at the edge of viability for a small team. A $60/month server (8GB RAM) runs GitLab comfortably for 10-15 developers.
For a team already running infrastructure (a NUC at the office, a home server, a spare cloud instance with headroom), GitLab makes more sense because the marginal cost is lower. For a team that needs to stand up a new server specifically for Git hosting, the cost difference between "any cheap VPS" (Forgejo/Gitea) and "a VPS with real RAM" (GitLab) adds up.
CI/CD: The Practical Difference
All three tools have CI/CD. The GitHub Actions YAML compatibility in Forgejo and Gitea is a genuine advantage for teams migrating from GitHub: existing workflow files need path changes, not rewrites.
GitLab CI is more capable at the high end: parent-child pipeline dependencies, dynamic child pipelines, better secrets management in paid tiers, and more mature DORA metrics. For a team building complex multi-stage deployment pipelines, GitLab's CI has features Forgejo and Gitea haven't matched yet.
For standard build-test-deploy pipelines on a language with good GitHub Actions support (which is most of them), Forgejo Actions or Gitea Actions is sufficient.
Who Should Use Each
Forgejo: New self-hosted Git deployments in 2026. Same capability as Gitea, community governance, lighter footprint than GitLab. If you're starting fresh and want to avoid VC-backed software, start here. The best self-hosted apps roundup puts Forgejo in the broader context of tools worth running on your own hardware.
Gitea: Teams with an existing Gitea installation that's working well. There's no strong reason to migrate an operational Gitea instance to Forgejo right now; the codebases are close and the risk of migration isn't worth the governance upside in the short term. Also the right call if you want a larger existing community and more third-party tutorials.
GitLab CE: Teams that need the full DevOps platform (built-in container registry, security scanning, compliance controls, merge request analytics) and have the hardware to run it. For organizations moving off GitHub that need more than a Git forge, GitLab's integrated toolset avoids running separate CI, registry, and security tools. The GitHub vs GitLab comparison covers that specific migration decision in detail.
The Recommendation
For a new self-hosted Git setup: Forgejo. It runs on cheap hardware, uses GitHub Actions YAML so your team's existing workflow knowledge transfers, and has no corporate owner who might change direction in three years. The governance argument isn't abstract — it's the reason the fork happened and why it matters.
For teams that need the full enterprise DevOps platform on their own servers: GitLab CE. Accept the higher hardware requirement and the CI syntax difference in exchange for security scanning, compliance reporting, and the breadth of an integrated platform.
Gitea remains a valid choice for existing users, but for new installations today, Forgejo has the same features and a better governance structure. There's no practical reason to pick the VC-backed version when the community fork is functionally identical.