Forgejo vs Gitea vs GitLab CE: Licenses, RAM and Versions
By RenUpdated Oct 28, 2026Dev
In this article
- Forgejo vs Gitea vs GitLab CE 2026: quick comparison table
- The fork story: why Forgejo and Gitea aren’t the same project anymore
- Governance and licensing: what actually changed at Gitea (and what didn’t)
- Resource requirements: what actually runs on a cheap VPS
- CI/CD and GitHub Actions compatibility
- Security scanning and enterprise features: where GitLab CE pulls ahead
- Known limitations: what users actually complain about
- Pricing: Forgejo vs Gitea vs GitLab CE 2026
- Who should choose which
- Forgejo is the default for small teams
Forgejo and Gitea share a codebase history but now differ on license: Forgejo has been GPL-3.0-or-later since v9.0 (MIT before), while Gitea stays MIT. As of October 28, 2026, Forgejo’s current release is v17.0.1, with v15 as the LTS supported to July 15, 2027, and Gitea’s is v28.2.0. GitLab CE needs far more: 8 vCPU and 16 GB as its single-node baseline.

Forgejo vs Gitea vs GitLab CE 2026: quick comparison table
Forgejo and Gitea differ mainly on license and governance; GitLab CE differs on size.
| Forgejo | Gitea | GitLab CE | |
|---|---|---|---|
| License | GPL-3.0-or-later since v9.0 (MIT before) | MIT (OSS core) | MIT (CE only; EE is proprietary) |
| Governance | Codeberg e.V. non-profit, elected council | For-profit company (Gitea Ltd) | Single company, EE features license-gated |
| Official hardware baseline | None published that we could find | None published that we could find | 8 vCPU, 16 GB RAM (at least 8 GB if memory-constrained) |
| Our small-team RAM estimate | 1-2GB | 1-2GB | 8-16GB |
| CI/CD | Forgejo Actions, GitHub Actions-workflow compatible | Gitea Actions, GitHub Actions-workflow compatible | Built-in CI/CD, own YAML syntax |
| Security scanning (SAST/DAST) | None built-in | None built-in | Basic SAST on the Free tier; DAST and Advanced SAST need Ultimate |
| Nested groups/subfolders | No (workaround: multiple orgs) | No | Yes |
| Best for | Solo devs, 2-10 person teams | Same size, if UI polish matters more than governance | 30+ person teams, compliance needs |
License, version and GitLab hardware rows checked October 28, 2026; other rows as of July 2026.
Nothing here is close on resource usage. That’s the single biggest differentiator in this whole comparison, and it drives most of the “who should choose which” logic below.
The fork story: why Forgejo and Gitea aren’t the same project anymore
You can’t evaluate Forgejo vs Gitea without understanding why they split, because it explains almost every governance difference that follows. In October 2022, Gitea’s domain and trademark were transferred to a newly formed for-profit company without the wider community’s knowledge or approval. Contributors published an open letter of protest, but the transfer stood anyway. A group of them forked the codebase under Codeberg e.V. (a registered German non-profit) specifically to keep the project’s governance out of any single company’s hands.
For about a year, Forgejo stayed close to Gitea, tracking upstream commits the way some Linux distros track a parent distro. That changed in early 2024. Forgejo’s own blog post on the split states plainly that “the governance and development models of Gitea and Forgejo diverged over time, and so did their goals.” From that point on, Forgejo cherry-picks selectively from Gitea instead of auto-merging, and it no longer contributes changes back upstream. Forgejo v1.20/v1.21 was the last release anyone can call a guaranteed drop-in migration target. Newer versions on either side don’t promise compatibility.
GitLab’s situation is a completely different animal. It’s had a free, self-hostable Community Edition since its earliest releases, sitting alongside a paid Enterprise Edition on the same codebase: EE features are unlocked by a license key rather than living in a separate fork. There was never a governance dispute; the CE/EE split was the business model from day one.

Governance and licensing: what actually changed at Gitea (and what didn’t)
This is the part most comparison posts get sloppy on, so it’s worth being precise. Gitea’s open-source core has stayed MIT-licensed the entire time. Nothing about the license itself changed. What changed is the company structure: Gitea Ltd is a for-profit entity, and “Gitea Enterprise” launched as a separate paid product in March 2024. The free OSS version has no feature gate; you’re not missing functionality by skipping the paid tier.
That said, one governance detail is worth knowing before you commit. Gitea requires contributors to sign a copyright assignment agreement, even for MIT-licensed contributions. Forgejo’s own comparison page calls this out directly and doesn’t replicate it.
Forgejo, by contrast, runs its entire development, testing, and release pipeline on free/libre tooling and doesn’t require copyright assignment at all: contributions stay under their original terms. Its license changed too: Forgejo moved from MIT to GPL version 3.0 or later during v9.0 development, and only versions before v9.0 are MIT, per the Forgejo repository README. It’s governed by an elected council operating under Codeberg’s non-profit charter, with a stated mandate to act in the public interest rather than a company’s commercial interest.
GitLab CE sits in its own category here: it’s 100% MIT-licensed with no per-user limits or feature gates in CE itself. GitLab EE (Premium/Ultimate) uses a separate, more restrictive proprietary license for the extra code shipped in the same repo, but that code simply isn’t unlocked unless you pay, so it doesn’t affect CE users at all.
Resource requirements: what actually runs on a cheap VPS
This is where the three projects stop being philosophically different and become practically different. Gitea and Forgejo are both single Go binaries, and neither project publishes an official minimum RAM or CPU figure that we could find as of October 28, 2026. Our rule of thumb, not an official number: a 1GB/1vCPU box is a reasonable starting point for a small team on SQLite; once you add a Postgres database and Actions runners, budget for 2GB.
GitLab CE is a different order of magnitude. It’s a Ruby on Rails monolith bundled via the Omnibus package with PostgreSQL, Redis, Gitaly, and Sidekiq workers all running alongside the app itself. GitLab’s installation requirements (checked October 28, 2026) set 8 vCPU and 16 GB of memory as the single-node baseline and say GitLab can run with at least 8 GB in memory-constrained setups. A separate memory-constrained environments guide describes a reduced configuration with a minimum of 2 GB RAM plus 1 GB swap (2.5 GB optimal) and 20 GB of storage.
If you’re pricing out a VPS for any of these, that RAM gap is the entire budget conversation: a Forgejo or Gitea instance can start on a $6/month 1 GB plan by our rule of thumb, while GitLab’s 8 vCPU / 16 GB baseline is a $96/month DigitalOcean Basic Droplet (4 vCPU / 8 GB is $48) before you’ve added a single CI runner. Our roundup of cheap VPS plans breaks down which providers give you the most headroom per dollar if you’re going the Forgejo/Gitea route.
CI/CD and GitHub Actions compatibility
Both Gitea (since v1.21, “Gitea Actions”) and Forgejo (“Forgejo Actions”) implement a runner system designed to be workflow-syntax compatible with GitHub Actions. In practice, that means a lot of .github/workflows/*.yml files can move to .gitea/workflows/ or .forgejo/workflows/ with basically nothing but a path change, which makes it a genuinely low-friction migration if you’re coming off GitHub. If you’re weighing what that migration actually costs on the GitHub side first, our breakdown of GitHub Actions pricing changes covers the runner-minute math that’s pushing a lot of teams toward self-hosted CI in the first place.
Gitea’s April 2026 release (v1.26.0) shipped workflow concurrency groups (new runs queue or cancel behind in-flight jobs, matching GitHub Actions behavior) alongside a large frontend rewrite moving off jQuery/Fomantic UI onto HTMX and Tailwind. Gitea has since dropped the “1.” prefix: v28.0.0 shipped on September 29, 2026, and v28.2.0 (October 18, 2026) is the latest on Gitea’s releases page. Forgejo’s v15.0 (April 16, 2026, its 100th release and a new LTS supported through July 15, 2027) added a redesigned runner registration flow with a proper web UI, reworked label filtering, and continued accessibility work; v14.0 from January 2026 added inline issue/PR search filters and swapped the heavier Monaco editor for CodeMirror. The current stable release is v17.0.1 (October 26, 2026, supported until January 28, 2027), v15 stays the LTS, and v14 and older are discontinued, per Forgejo’s releases page.
GitLab CE takes a fundamentally different approach: CI/CD, a container registry, issue tracking, wikis, and package registry support are all bundled into one installer, with no separate Actions-style project to bolt on for basic pipelines (GitLab Runner is still its own agent process, but it’s a first-class part of the platform, not an add-on). The tradeoff is GitLab’s own CI YAML syntax rather than GitHub Actions compatibility. If your team already has a library of GitHub workflow files, that’s a real rewrite, not a path change.
Forgejo is also the only one of the three actively building forge federation over ActivityPub. As of the May 2026 monthly report, federation is explicitly experimental: moderation and access-control tooling isn’t finished, and the project has warned it may make breaking changes with no advance notice, which could burn an instance’s federation identity. Treat it as a roadmap item, not a reason to pick Forgejo today.

Security scanning and enterprise features: where GitLab CE pulls ahead
People rooting for the smaller projects don’t like admitting it, but GitLab CE ships more “batteries included” than Gitea or Forgejo out of the box, even without touching EE. Basic SAST with open-source analyzers runs on GitLab’s Free tier, but DAST, Advanced SAST, merge request security reports and vulnerability management are Ultimate-only, so CE alone gets you basic scanning at most. But GitLab CE’s built-in container registry, package registry, and CI/CD are all still meaningfully more complete than what Gitea or Forgejo offer natively, which have no built-in security scanning at all and lean on third-party tools like SonarQube or OWASP ZAP bolted on separately.
If your team genuinely needs compliance reporting or integrated SAST/DAST as a hard requirement, that’s the point where GitLab stops being “the heavy option” and starts being the only one of the three that fits. CE covers basic SAST; DAST and the full security reports mean paying for Ultimate.
Known limitations: what users actually complain about
The most consistently cited Forgejo/Gitea limitation, repeated across a Hacker News thread discussing the Forgejo v13.0 release, is the lack of GitLab-style nested groups or subfolders for organizing repositories. One commenter put it bluntly: they were “still waiting for them to add sub-folder or groups/projects support like in gitlab.” The practical workaround small teams use is creating multiple separate organizations instead of nested ones. It works, but it’s not the same as a real hierarchy once you’re past a handful of repos.
The same thread flagged federation as incomplete, which tracks with Forgejo’s own admission above. Users also noted that Renovate-based dependency update bots work fine on Forgejo, but GitHub’s native Dependabot integration is still considered a more convenient out-of-the-box experience by comparison, one area where self-hosting trades a bit of polish for control.
Pricing: Forgejo vs Gitea vs GitLab CE 2026
All three are free to self-host, so “pricing” here really means server cost, not license cost.
| License Cost | Paid Tier | Self-Hosting Cost Driver | |
|---|---|---|---|
| Forgejo | $0 (GPL-3.0-or-later) | None | VPS RAM/CPU only; our estimate: a $6/month 1 GB plan to start |
| Gitea (OSS) | $0 (MIT) | Gitea Enterprise, custom/quote pricing | VPS RAM/CPU only, same footprint as Forgejo |
| GitLab CE | $0 (MIT) | GitLab EE Premium/Ultimate, priced per user for self-managed (check GitLab’s current pricing page) | Bigger VPS or dedicated box for 8-16GB RAM (8 vCPU baseline) |
Licenses and GitLab hardware checked October 28, 2026; paid-tier notes as of July 2026.
None of the three run a consumer affiliate program for this comparison: Forgejo and Gitea don’t have one at all, and GitLab’s own program listing has no active tracking link as of this writing, so any GitLab mention here is a plain, non-sponsored reference to their homepage. What actually costs money is the server underneath: if you’re running Forgejo or Gitea, a $6/month 1 GB plan is our rule-of-thumb starting point for a small team, and if you’re leaning toward GitLab CE’s heavier footprint, you’re pricing out a $48-96/month VPS (DigitalOcean Basic, 8 to 16 GB RAM) or a small dedicated box instead.
Who should choose which
Solo developers and 2-10 person teams are best served by Gitea or Forgejo, and Forgejo gets the slight edge for its governance model and the pace it’s shipped LTS releases at since 2024. If UI velocity and commercial polish matter more to you than who governs the project, Gitea’s HTMX/Tailwind rewrite in 1.26.0 is a genuine reason to pick it instead. Just go in knowing the contributor terms above.
Teams in the 10-30 range with moderate CI needs can still run Gitea or Forgejo plus an external CI runner like Woodpecker CI without needing GitLab at all. The resource savings alone make this worth trying before you reach for something heavier.
Teams of 30+ in regulated environments that need integrated SAST/DAST, compliance reporting, or built-in security/container scanning should go straight to GitLab: CE for basic SAST, Ultimate for DAST and the security reports. At that size, the extra RAM budget stops being the deciding factor and the built-in tooling starts paying for itself.
Who should not use Forgejo or Gitea: any team that needs GitLab-style nested project groups today, not as a future roadmap item. The multiple-organizations workaround gets messy past a dozen or so repos. Who should not default to GitLab CE: anyone on a single small VPS who doesn’t need integrated security scanning, since you’d be paying in RAM and setup complexity for features you’ll never touch.

Forgejo is the default for small teams
For most solo developers and small teams reading this Forgejo vs Gitea vs GitLab CE 2026 comparison, Forgejo is the right default. By our rule of thumb it fits on a 1-2GB VPS, keeps governance out of a single company’s hands, and its GitHub Actions-compatible CI covers what a small team actually needs day to day. Pick Gitea instead if the faster UI overhaul and commercial development pace matter more to you than the governance story, or if you need an MIT license (Forgejo has been GPL-3.0-or-later since v9.0). The resource footprint is the same either way.
Reach for GitLab only when you’ve got 30+ people or a compliance requirement that needs integrated scanning (basic SAST works in CE; DAST needs Ultimate). Otherwise you’re paying in RAM, setup complexity, and a bigger VPS bill for tooling most small teams never open. If you’re going the lightweight route, Vultr spinning up a $6/month instance is a cheap way to test Forgejo or Gitea yourself before you commit a real repo to it.


