The Forgejo Fork

Updated

October 30, 2026

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.