Gitea vs Forgejo vs GitLab
Gitea vs Forgejo vs GitLab
After this page you can choose among the three from the constraint you actually have, not from a feature checklist.
Same afternoon, different contracts
Gitea and Forgejo are one architectural family. GitLab is a different product that also hosts Git. Versions below are the ones this book checked in September 2026.
| Forgejo 15 LTS | Gitea 1.27 | GitLab CE | |
|---|---|---|---|
| Steward | Codeberg e.V. | Gitea Ltd | GitLab Inc. |
| License of the server you run | GPL-3.0-or-later | MIT | MIT (CE). Paid tiers are a separate license |
| Process model | one Go binary | one Go binary | Omnibus: many processes (chapter 24) |
| Default database | SQLite file | SQLite file | Postgres |
| CI | Forgejo Actions, external runner | Gitea Actions, external runner | CI in the product |
| Paid tier | none | Enterprise | Premium and above |
| Public hosted twin | Codeberg | Gitea.com | GitLab.com |
| Support window | 15.0 LTS through 15 July 2027. 16.0 is the short cycle (through 29 October 2026) | upstream releases | your own upgrade calendar |
Forgejo 15.0.9 and 16.0.5 both shipped on 17 September 2026. The lab uses the 15 image tag so a reader is on the LTS line. Track 16 only if you intend to move every quarter.
What is not a difference
Push, fetch, branches, and review comments are Git plus a database row. A developer who learned chapters 8–11 does not relearn them here. The UI names a pull request; Gerrit (chapter 27) names a change. Under both, the bytes are still a branch on a remote.
Webhooks out of either lightweight forge are the same idea as GitLab’s: HTTP to your CI when a ref moves. Chapter 32 is that integration. This chapter does not stand up a runner.
How to read the license row
Pick Forgejo when the operator must be able to show that the forge itself stays free software, with a non-profit holding the name and no Enterprise fork of the same tree.
Pick Gitea when the MIT terms are a requirement (you need to ship a closed product derived from the forge) or you are already paying for Gitea Enterprise and the company build is the point.
Pick GitLab when the requirement is CI, a container registry, and security scanning inside one installer, and you can afford the machine that installer expects. A 2 GB lab VM is a Forgejo conversation. It is a bad GitLab conversation.
The next page is how the lightweight shape is deployed, and where SQLite stops being the right database.