Gitea vs Forgejo: Which Self-Hosted Git Forge Should You Run?
If you want your own GitHub, two lightweight options dominate: Gitea and Forgejo. They look nearly identical, they share a codebase history, and their documentation often overlaps, which makes choosing between them confusing. This guide explains how they split, how they differ today, and how to pick.
Gitea just released version 28.0, dropping its 1.x numbering, which makes this a good moment to look again.
A short history
Gitea was itself a fork, of Gogs, in 2016. It grew into the most popular lightweight self-hosted forge: a single Go binary, modest resource use, and a GitHub-like interface.
In 2022, a company, Gitea Limited, was formed to run the project and hold its domains and trademarks. Some contributors objected to a community project moving under a for-profit company, and created Forgejo (Esperanto for “forge”), hosted by Codeberg e.V., a German non-profit that runs the Codeberg.org service.
At first Forgejo was a soft fork: Gitea plus a few patches, tracking upstream closely. In early 2024 it became a hard fork, with its own development and release cycle. Since then the codebases have diverged steadily.
How they differ today
| Gitea | Forgejo | |
|---|---|---|
| Governance | Gitea Limited (company) with community contributors | Community project under Codeberg e.V. (non-profit) |
| License | MIT | GPL v3 or later (since 2024) |
| Versioning | 28.0 (dropped 1.x in 2026) | Own major versions |
| CI | Gitea Actions (act_runner) | Forgejo Actions (forgejo-runner) |
| Commercial offering | Gitea Cloud and enterprise support | None from the project; hosting via Codeberg for free software |
| Federation | Not a focus | Active work on ForgeFed federation |
| Biggest public instance | Many | Codeberg.org |
Licensing
Gitea’s MIT license lets anyone build closed products on it. Forgejo moved to GPL v3 or later, which requires derivative works to stay open. For running an instance for yourself or your team, neither license imposes anything. See our open source licenses guide for the details.
Features
Both cover the essentials well: repositories, pull requests, issues, wikis, packages registries, organisations, and built-in CI compatible with much of the GitHub Actions syntax.
Recent Gitea releases have focused on administration and enterprise needs. Gitea 28 added audit logging, bot accounts, admin impersonation, and CODEOWNERS approvals.
Forgejo has focused on community priorities: accessibility, moderation tools for public instances, stability, and federation, the long-term goal of letting separate forges interact the way Mastodon servers do, so you could open an issue on a project hosted elsewhere without an account there.
Security process
Both publish security releases. Forgejo is known for a conservative stance and detailed release notes; Gitea’s company structure means paid support customers get direct help.
Switching between them
Moving from Gitea to Forgejo was trivial when they were close: replace the binary and restart. That is no longer true for recent versions. Forgejo supports in-place upgrades from Gitea only up to around the version where the projects diverged (the 1.22 era). A database from Gitea 1.23 or later, including 28.0, may not upgrade cleanly.
For a recent install, the reliable path is repository migration: set up the new forge, then use its built-in migration tool to import each repository with its issues, pull requests, releases, and wiki from the old one. It is slower, but it does not depend on the two database schemas matching.
Whichever direction, back up first: the database, the repositories directory, and the configuration file.
Which should you run?
Choose Forgejo if:
- Community governance and non-profit stewardship matter to you
- You prefer copyleft licensing
- You run a public instance and want moderation tools
- Federation interests you
Choose Gitea if:
- You want commercial support or a hosted option from the same vendor
- You need the newest administrative features, such as audit logs and bot accounts
- You are building a product on top and need a permissive license
For a homelab, honestly, either is excellent. Both run comfortably on a Raspberry Pi or a small VM, both have Docker images, and both do everything a single person or small team needs.
Deployment basics
Both deploy the same way: a container (or single binary), a database (SQLite for small installs, PostgreSQL for anything larger), and a reverse proxy for HTTPS. Git over SSH needs a port; either map the container’s SSH to a host port like 2222, or use SSH passthrough so git@yourhost works on port 22.
If you need more than a lightweight forge, such as built-in security scanning, large-scale CI, or a broader DevOps suite, GitLab is the heavyweight alternative, at many times the resource cost. OneDev is another all-in-one option.
Frequently Asked Questions
Is Forgejo just a rebranded Gitea?
Not anymore. Forgejo started in 2022 as a soft fork that tracked Gitea closely, then became a hard fork in 2024 with its own codebase, release schedule, and features. The two still look similar and share history, but they are now separate projects.
Why was Forgejo created?
In 2022 a for-profit company, Gitea Limited, was formed to run the Gitea project and its trademarks. Part of the community wanted the project to stay under non-profit, community control, and created Forgejo under the umbrella of Codeberg e.V., the non-profit that runs the Codeberg hosting service.
What license do Gitea and Forgejo use?
Gitea is MIT licensed. Forgejo moved to the copyleft GPL v3 or later in 2024, with code inherited from Gitea remaining available under MIT. For self-hosting this rarely matters, but it does for anyone building a commercial product on top.
Can I migrate from Gitea to Forgejo?
Forgejo supports in-place upgrades only from older Gitea versions, around the 1.22 era when the projects diverged. Newer Gitea databases may not upgrade cleanly. For a recent Gitea install, migrating repositories through the built-in repository migration tool or the API is the safer path.
Which one has CI built in?
Both. Gitea Actions and Forgejo Actions are compatible with much of the GitHub Actions workflow syntax and use separate runner programs, act_runner for Gitea and forgejo-runner for Forgejo. Existing GitHub workflows often run with small changes.
Which should I choose for a homelab?
Either works well and both are light enough for a Raspberry Pi. Choose Forgejo if community governance and copyleft matter to you or you are interested in federation, and Gitea if you want the version with commercial support options and features like the new audit logs and bot accounts.