Gitea vs Forgejo
Gitea and its hard fork Forgejo compared for self-hosted Git in 2026: licences (MIT vs GPL v3+), governance, Gitea 28 vs Forgejo 17 and 15 LTS, Actions CI/CD, Windows support, Gitea Enterprise pricing and why switching from Gitea 1.23+ to Forgejo is no longer a drop-in upgrade.
Quick Answer
Pick Gitea if you want the MIT-licensed project with a commercial backer (CommitGo), Windows support, a GitHub Actions-compatible CI story and a paid Enterprise tier with SAML SSO and SLA support. Pick Forgejo if you care about a GPL-licensed forge run under a non-profit (Codeberg e.V.), published upgrade testing and a clear LTS line. In October 2026, new Forgejo installs should use 15.x LTS or wait for a 17.0 fix, because the Forgejo project itself advises against upgrading to 17.0.0 yet. Moving an existing Gitea instance to Forgejo only works in place from Gitea 1.22 or older.
Last updated October 23, 2026. Covers Gitea 28.2.0 (18 Oct 2026) and Gitea Runner 5.0.0, Forgejo 17.0.0 with its upgrade advisory, 16.0.6 and 15.0.10 LTS, and Gitea Enterprise pricing as listed in October 2026.
| Feature | Gitea | Forgejo |
|---|---|---|
| Price (self-hosted) | Free (MIT, unlimited users and repositories) | Free (GPL v3+) |
| Paid Offering | Enterprise: $9.50/user/month with 1-year commitment paid online (list $19); Gitea Cloud managed hosting | None from the project; third-party professional services |
| Licence | MIT | GPL-3.0-or-later (v9.0+); MIT up to v8.0 |
| Governance | Open source project led commercially by CommitGo, Inc. | Community governance under the non-profit Codeberg e.V. |
| Latest Release (Oct 2026) | 28.2.0 (18 Oct 2026) | 17.0.0 (15 Oct 2026, upgrade advisory); 16.0.6 and 15.0.10 LTS (12 Oct 2026) |
| Release Support | Rolling releases; 1.27.x was the last 1.x line before 28.0 | Stable: 3 months + 2 weeks; LTS: 1 year 3 months (15.x until 15 Jul 2027) |
| Built-in CI/CD | Gitea Actions + Gitea Runner (5.0.0, Oct 2026) | Forgejo Actions + Forgejo Runner (Docker or LXC) |
| GitHub Actions Compatibility | Designed to be compatible with GitHub Actions, with documented gaps | Familiar, not fully compatible, with GitHub Actions |
| Package Registry | Yes: npm, PyPI, Maven, container, Helm, Cargo, Go and more | Yes: npm, PyPI, Maven, container, Helm, Cargo, Go and more |
| Windows Server Support | Yes (Windows service supported) | No (dropped in 2024) |
| Forge Federation | No | Experimental (ForgeFed / ActivityPub) |
| Switching Between Them | Gitea 1.22 or older can upgrade in place to Forgejo; newer Gitea cannot | Upgrades in place from Gitea up to 1.22 |
Gitea
Lightweight self-hosted Git service written in Go with code review, issues, projects, a package registry and Gitea Actions CI/CD, released under the MIT licence with commercial support, Gitea Cloud and Gitea Enterprise from CommitGo.
Pros
- MIT licence: the most permissive option if you embed, modify or redistribute the forge
- Gitea Actions is designed to be compatible with GitHub Actions, with extras such as absolute action URLs, self: and builtin: prefixes and $/ workflow-relative actions
- Gitea 28 (Sept 2026) added audit logging, bot accounts, HTTPS deploy tokens, admin impersonation, code-owner approval rules and an Actions queue view
- Runs on Windows as well as Linux and macOS; the docs include registering Gitea as a Windows service
- Paid route if you need it: Gitea Enterprise with SAML SSO, audit logs, Kubernetes autoscaling runners and SLA support, plus managed single-tenant Gitea Cloud
- Very active release cadence: 28.0.0, 28.1.0 and 28.2.0 shipped between 29 Sept and 18 Oct 2026
Cons
- Controlled by a for-profit company through the domain and trademark; contributions require a copyright assignment per Forgejo's comparison page
- Some features (Enterprise add-ons, the SaaS stack) are not open source
- Version scheme jumped from 1.27 to 28.0.0, which can confuse upgrade tooling and pinned image tags
- Advance notice of security releases is for paying customers, according to Forgejo's comparison
Best For
Teams that want a permissively licensed forge with maximum GitHub Actions compatibility, Windows hosting, or a vendor to pay for SSO, SLAs and managed hosting.
Forgejo
Self-hosted software forge that began as a Gitea fork in 2022 and became a hard fork in early 2024, developed under the non-profit Codeberg e.V. umbrella and licensed GPL v3 or later since v9.0.
Pros
- Copyleft GPL v3+ licence (v9.0 and later) and non-profit stewardship by Codeberg e.V.
- Clear life cycle: each stable release gets three months of fixes, and the yearly LTS gets critical and security fixes for one year and three months (15.x until 15 July 2027)
- Publishes advance notice of security releases to everyone, plus end-to-end and upgrade tests
- Forgejo Actions can run jobs in LXC containers as well as Docker, and supports OpenID Connect tokens for jobs
- Admin features such as moderation tools and an early soft-quota to cap disk usage
- Works on forge federation via ForgeFed/ActivityPub, with monthly progress reports
Cons
- No Windows support: the project dropped Windows in 2024 (only a community Forgejo Runner build exists for Windows)
- Forgejo 17.0.0 (15 Oct 2026) carries a project advisory against upgrading while a push/merge issue is investigated
- Forgejo Actions aims for familiarity, not compatibility, with GitHub Actions: permissions and continue-on-error job keys are ignored and the default runner image is a slim Debian with Node.js
- Federation is experimental and may change incompatibly
- No vendor-sold enterprise tier; paid help comes from third-party professional services
Best For
Individuals, communities and organisations that want a GPL-licensed, non-profit-governed forge with an LTS line and are happy hosting on Linux.
Same roots, different owners: why the fork exists
Forgejo was created in October 2022 after Gitea's domains and trademark were transferred to a for-profit company, now CommitGo, Inc., which Gitea's own site describes as providing leadership and commercial support. Forgejo started as a soft fork that tracked Gitea and became a hard fork in early 2024; its FAQ says Gitea does not cherry-pick Forgejo commits and Forgejo contributions are not sent upstream. Since then the codebases have diverged and neither project keeps a feature-by-feature comparison. The practical consequences show up in three places. Licence: Gitea is MIT. Forgejo switched to GPL v3 or later from v9.0 (versions up to v8.0 remain MIT), so modifications you distribute must be shared under the GPL. Governance: Forgejo sits under Codeberg e.V., a registered non-profit in Berlin that holds its domains, while Gitea's direction is set by its maintainers with CommitGo owning the brand. Commercial model: Gitea is open core, with Gitea Enterprise and Gitea Cloud on top; Forgejo sells nothing itself. Forgejo's comparison page also claims Gitea requires copyright assignment from contributors, gives advance security notice only to customers, and lacks end-to-end and upgrade tests. Those are Forgejo's statements about its rival, so weigh them as such, but they explain why many homelab and community users moved.
Versions and support in October 2026
Both projects renumbered recently, which matters for pinned Docker tags and upgrade scripts. Gitea dropped the historical 1. prefix with 28.0.0 on 30 September 2026, so the release after 1.27.3 is 28.0.0, followed by 28.1.0 (6 Oct) and 28.2.0 (18 Oct). Gitea 28 shipped a long security list, including several SSRF fixes that now route Git network operations through an internal egress proxy, plus audit logging, bot accounts, HTTPS deploy tokens and admin impersonation. Forgejo uses semantic versioning with one major release per quarter. Its releases page lists 17.0.0 (15 Oct 2026, supported to 28 Jan 2027), 16.0.6 (supported only to 29 Oct 2026) and 15.0.10 LTS (supported to 15 July 2027). Stable releases get three months of fixes plus two weeks of overlap; the LTS published in the first quarter of each year gets critical and security fixes for 15 months. There is deliberately no latest container tag, because major upgrades need a manual step. One caveat this week: the 17.0.0 release notes open with an advisory against upgrading while an issue that can block pushing and merging is investigated. If you are on 16.x, which goes out of support on 29 October, watch for a 17.0.x fix rather than jumping now; new installs are safer on 15.x LTS.
CI/CD: Gitea Actions vs Forgejo Actions
Both forges have a built-in, GitHub Actions-style CI system with workflows in the repository and self-hosted runners, but they set different goals. Gitea's documentation says Gitea Actions is designed to be compatible with GitHub Actions and lists the differences: it adds absolute action URLs, self: and builtin: prefixes (builtin:checkout needs no download and no Node in the job image), $/ workflow-relative actions, Go actions and @daily-style schedules. Gaps include ignored jobs.<id>.environment, ignored problem matchers and error annotations, and GITEA_TOKEN not being able to publish to the package registry. Gitea Runner 5.0.0 (8 Oct 2026) made builtin:checkout support nearly all of actions/checkout, including LFS, submodules, sparse checkout and SSH keys. Forgejo's docs say plainly that Forgejo Actions aims for familiarity rather than compatibility. Known differences: the default runner image is Debian bookworm with Node.js rather than GitHub's large Ubuntu image, some github context keys are missing, job-level permissions and continue-on-error are ignored, and OIDC tokens are enabled with enable-openid-connect instead of permissions: id-token: write. In exchange, Forgejo Runner can execute jobs in LXC containers, not just Docker. If you are porting a large GitHub Actions estate, Gitea is likely to need fewer edits. If your workflows are simple build-and-test jobs, both work.
Migration, hosting and cost
The biggest trap in this comparison is the migration path. Forgejo's upgrade guide says it supports upgrading from Gitea up to version 1.22. Because the databases have diverged since the hard fork, a Gitea 1.23, 1.24 through 1.27 or 28.x instance cannot simply swap binaries to Forgejo. For those, the realistic route is a repository-level migration (Forgejo's migration feature can pull repositories along with issues, pull requests and comments from other forges) rather than an in-place upgrade. Going the other way, from Forgejo back to Gitea, has no documented path at all. On hosting, both ship as a single Go binary or container image and run on SQLite, PostgreSQL, MySQL or MariaDB (Forgejo requires PostgreSQL 14+, MySQL 8.4+ or MariaDB 10.6+; Gitea also supports Microsoft SQL Server), and both include a package registry covering npm, PyPI, Maven, container images, Helm, Cargo, Go and many more formats. Gitea also documents running as a Windows service; Forgejo dropped Windows in 2024, so Windows shops have only one choice. Cost is zero for self-hosting either one. Gitea's pricing page lists Enterprise at $9.50 per user per month (crossed-out list price $19) with a one-year commitment paid online, adding SAML SSO, audit logs, Kubernetes autoscaling runners, priority security notifications and SLA support, plus a 30-day trial. Gitea Cloud is a managed, single-tenant Gitea in the region you choose. Forgejo has no paid tier; you rely on the community or hire third-party professional services.
Verdict
Choose Gitea if you need MIT licensing, Windows hosting, the closest match to GitHub Actions syntax, or a vendor contract: Gitea Enterprise adds SAML SSO, audit logs and SLA support at $9.50 per user per month on a one-year commitment, and Gitea Cloud handles hosting for you. Choose Forgejo if you want a copyleft, non-profit-governed forge with published LTS dates, advance security notices for everyone and upgrade testing, and you run Linux. For a new Forgejo install in October 2026, start on 15.x LTS (supported to July 2027) rather than 17.0.0, which the project currently advises against. If you already run Gitea 1.23 or newer, staying on Gitea is the low-risk path, because Forgejo only supports in-place upgrades from Gitea up to 1.22; anything newer means a migration rather than a binary swap.

