# Forgejo vs Gitea

Forgejo and Gitea look almost identical when you open them. Same layout, same
workflow, largely the same API. That is not a coincidence: Forgejo began as a
fork of Gitea in December 2022, and for over a year it tracked Gitea closely.

So the question is rarely "which has the feature I need". It is "which project
do I want to depend on for the next five years", and that is a question about
governance, licensing and who decides what happens next.

If you are also weighing GitHub or GitLab, the
[four-way comparison](/comparison/) covers those. This page is only about the
two forges that share a codebase.

## At a glance

| | Forgejo | Gitea |
|---|---|---|
| **Started** | December 2022, fork of Gitea | 2016, fork of Gogs |
| **Steward** | Codeberg e.V., a democratic non-profit | Gitea Ltd, a for-profit company |
| **License** | GPL v3+ since v9.0 (MIT up to v8.0) | MIT |
| **Contributor terms** | No copyright assignment | Copyright assignment required |
| **Commercial model** | No proprietary edition | Open core, with paid editions |
| **Security advisories** | Advance notice to everyone | Advance notice to customers |
| **Federation** | In active development | Not being worked on |
| **Built on** | Forgejo and Forgejo Actions | GitHub and GitHub Actions |
| **Migration between them** | Direct, via the upgrade path | Direct, via the upgrade path |

## Where both projects come from

**Gogs** started in 2014 as a lightweight self-hosted Git service written in Go.
It found an audience because it ran comfortably on hardware that GitLab could
not.

**Gitea** forked from Gogs in 2016, after contributors concluded that the Gogs
project was not accepting enough outside contribution. More maintainers, faster
releases, wider adoption.

**Forgejo** forked from Gitea in December 2022. In the project's own words, it
started "in reaction to control of Gitea being taken away from the community by
the newly-formed for-profit company Gitea Ltd without prior community
consultation", after an open letter to the Gitea owners went unanswered.

The pattern repeats because the same tension repeats: a project gets popular,
the people who own the name and the people who write the code stop being the
same group, and the code gets forked.

## What actually differs today

Through 2023 Forgejo was a soft fork, staying close to Gitea. It became a hard
fork in early 2024, and the codebases have been diverging since. The
differences that matter now are mostly structural rather than featural.

### Who decides

Gitea is controlled by Gitea Ltd. Forgejo sits under
[Codeberg e.V.](https://codeberg.org/), a registered German non-profit that
holds the project's domain names and trademarks. Codeberg also runs its own
public forge on Forgejo, so the steward is a heavy user of what it stewards.

This is the substance behind the fork. Whether it matters to you depends on
whether you have been burned before by a dependency changing hands.

### License, and why it changed

Gitea is MIT. Forgejo was MIT too, up to and including v8.0, and relicensed to
**GPL v3+ from v9.0 onward**.

That is a real fork in the road. MIT lets anyone take the code, modify it and
ship the result without publishing the changes. GPL v3+ requires modifications
to be published under the same terms. If you want certainty that improvements
stay available to everyone, GPL is the stronger guarantee. If you intend to
build a proprietary product on top of the code, MIT is the permissive option
and Forgejo v9.0+ is not.

Gitea also requires copyright assignment from contributors, including for
MIT-licensed contributions, and runs an open-core model with paid editions
alongside the free one. Forgejo requires no assignment and ships no proprietary
edition.

### Security handling

Forgejo gives advance notice of security releases to everyone. Gitea gives
advance notice to its customers. If you self-host and do not hold a Gitea
contract, that is the difference between patching on disclosure day and
patching after it.

### Testing and federation

Forgejo runs end-to-end, upgrade and browser tests that Gitea does not. Upgrade
tests in particular matter for a forge you intend to keep for years, because
the risk in a self-hosted forge is rarely the install, it is the fourteenth
upgrade.

Forgejo is also implementing forge federation, so issues and pull requests can
cross instance boundaries, and reports progress monthly. Gitea has no work in
this area.

### Development tooling

Forgejo is developed on Forgejo, using Forgejo Actions, with localization on
Weblate. Gitea is developed on GitHub, using GitHub Actions, with localization
on Crowdin. For a project whose pitch is self-hosted independence from GitHub,
some people find that telling. It is a signal about priorities rather than a
feature you would notice in daily use.

## What is the same

Plenty, and it is worth saying plainly rather than overselling the differences.

Repositories, issues, pull requests, code review, wikis, Kanban boards, time
tracking and package registries work the same way in both. Forgejo Actions and
Gitea Actions are both GitHub Actions-compatible, and workflow files generally
move across untouched. Both run happily on modest hardware. Both are genuinely
free software at their core.

If you are running Gitea today and it is working, nothing here is an emergency.

## Migrating from Gitea to Forgejo

Migration is a version upgrade, not a data export. Forgejo is designed to take
over an existing Gitea installation in place: point Forgejo at the same
database and data directory, and it continues where Gitea left off. Forgejo
even keeps the binary named `gitea`, with symbolic links, so existing service
files and scripts keep working.

The practical constraints are ordinary ones. Check the version correspondence
before you start, since you can only move between compatible versions. Take a
backup you have actually tested restoring. Plan the direction as one-way: going
back to Gitea after Forgejo has migrated the database is not a supported path.

## When Gitea is the right answer

- You are already running it, it is stable, and no part of the governance
  story bothers you. "It works" is a legitimate reason.
- You need to build a proprietary product on the codebase, where MIT's
  permissiveness matters and GPL v3+ would not suit.
- You want a paid edition from the company that develops the software, which
  Forgejo deliberately does not offer.

## When Forgejo is the right answer

- You want the project stewarded by a non-profit rather than a company that
  can be sold.
- You want copyleft assurance that improvements stay free.
- You want security advisories at the same time as everyone else, without a
  contract.
- Federation matters to you, or will.

## When managed Forgejo is the right answer

Everything above assumes you are running the forge yourself. Self-hosting
either one means owning backups, upgrades, availability and security patching,
plus monitoring and a restore procedure you have tested, plus somebody
reachable when the host goes down at an inconvenient hour.

Codey is a dedicated Forgejo instance operated by VSHN in Switzerland, from
CHF/EUR 39 per month. Not a shared tenancy: your own instance, with full admin
access, Forgejo Actions CI/CD, package hosting and backups included. You keep
the openness and the exit path, and hand over the pager.

If you are moving off Gitea anyway, moving to a managed instance costs about
the same effort as moving to a self-hosted one.

## Next steps

Weighing GitHub and GitLab as well? Read the
[full comparison](/comparison/). Ready to move? [Get started](#get-started)
with Codey from CHF/EUR 39 per month, or [ask us](#contact) about migrating an
existing Gitea instance.
