The Forgejo Fork
The Forgejo Fork
After this page you can explain why Forgejo split from Gitea, and what that split changes for an operator.
Who holds the name
Gitea’s code was community-run. In 2022 a for-profit company, Gitea Ltd, took the trademark and the project’s direction. An open letter from contributors went unanswered. In October 2022 Codeberg and other operators published Forgejo as a fork.
Codeberg e.V., a non-profit in Berlin, holds the Forgejo domains. Forgejo has not registered a trademark. The public forge at codeberg.org runs Forgejo. Chapter 29 is that hosted instance. This chapter is the software you run yourself.
Gogs (single maintainer)
└── Gitea, 2016 Gitea Ltd, MIT, company edition
└── Forgejo, Oct 2022
soft fork through 2023
hard fork, early 2024 Codeberg e.V., GPL-3.0-or-later since v9
Soft fork, then hard fork
Through 2023 Forgejo was a soft fork: it tracked Gitea and stayed a drop-in. Changing the download URL was enough to upgrade a Gitea server onto Forgejo.
On 15 February 2024 the project became a hard fork. Stable Forgejo stopped promising to contain all of Gitea. The codebases diverge on purpose, so each side can change without rebasing onto the other. A Gitea database from the 1.22 era is the last generation where people treated the switch as a binary swap. Later pairs need the Forgejo upgrade guide for those two versions. Do not point a new Forgejo binary at a production Gitea data directory and hope.
What actually changed
The Git protocol did not change. Clients, remotes, and hooks from Parts I–III work against either UI.
What changed is governance and the license:
| Gitea | Forgejo | |
|---|---|---|
| Steward | Gitea Ltd | Codeberg e.V. |
| License | MIT | MIT through v8; GPL-3.0-or-later from v9 |
| Contributor terms | copyright assignment to the company | no copyright assignment |
| Paid edition | Enterprise | none |
| Developed on | GitHub | Forgejo |
GPL-3.0-or-later means a modified Forgejo you ship to others comes with source under the same terms. MIT does not require that. Gitea can legally ship a closed Enterprise build on the same code. Forgejo’s license is how the project refuses that path.
Day to day, issues, pull requests, and the settings screens still feel like the same product. Actions exist on both (Forgejo Actions and Gitea Actions), with a runner you install separately. Federation between Forgejo instances is a Forgejo project and is not something to design a company on until you have tried it on the version you run.
The next page puts Forgejo, Gitea, and GitLab in one table. The lab pins Forgejo 15 LTS, not whatever tag your registry calls latest.