cloudparts

Forgejo

A self-hosted Git forge, like a small GitHub you run yourself: repositories, pull requests, issues, a package registry and built-in CI in one Go program, developed by a community under the non-profit Codeberg e.V. as a hard fork of Gitea.

What it is
Version control
Type
Open source
Made by
Codeberg e.V.
License
GPL-3.0-or-later (MIT up to v8.0)
Facts checked
13 October 2026

What it is

Forgejo is a single program, written mostly in Go, that you run next to Git. It keeps repositories as ordinary Git repositories on disk and everything else (users, issues, pull requests, permissions) in a database: SQLite with no setup, which its docs say is enough for at least 10 users, or PostgreSQL 14+, MySQL 8.4+ or MariaDB 10.6+. People clone and push over SSH as a system git user or over HTTPS, and use the web UI for code review, issues, wikis, projects and releases. It also hosts packages for 23 formats, from npm, PyPI, Maven and Cargo to OCI container images, Debian and RPM repositories.

Forgejo Actions is its built-in CI. Workflows are YAML files in .forgejo/workflows (or .github/workflows if that is all there is), with the same shape as GitHub Actions: triggers, jobs, runs-on labels and steps that run commands or reuse actions such as actions/checkout. The Forgejo server doesn’t run the jobs itself: it hands them to separate Forgejo Runner processes registered with the instance, each serving labels such as docker that workflows name in runs-on. The docs say it is designed to be familiar to GitHub Actions users but not compatible, so migrated workflows need some changes.

Forgejo began in late 2022 as a community fork of Gitea, after Gitea’s domains and trademark moved to a for-profit company, and has been a hard fork since early 2024. Codeberg e.V., a non-profit registered association in Berlin, holds its domains, and Codeberg.org, which hosts projects such as the Zig compiler, runs on it. Stable releases come out every quarter and are supported for about three months; one release a year is long-term support (LTS) for about 15 months. The current versions are 16.0.6 and LTS 15.0.10, both released October 12, 2026.

Why teams pick it

  • Light to run: one binary, SQLite for small teams, and the usual forge features (code review, issues, wiki, packages, CI) without extra services
  • Free software with non-profit governance: GPLv3+ since v9.0, developed and released entirely with free tools, and no paid open-core edition
  • Predictable releases: a fixed quarterly schedule with dates published more than a year ahead, LTS versions, semantic versioning and upgrade tests
  • Easy to move from Gitea: instances up to Gitea 1.22 upgrade in place, via Forgejo 10.0, and the API aims to stay compatible with Gitea’s

Watch out for

  • Forgejo Actions isn’t compatible with GitHub Actions, and you have to install and maintain runners yourself unless your instance provides them
  • Federation with other forges through ForgeFed and ActivityPub is still experimental, and the project warns it may break without notice
  • Non-LTS releases get fixes for only about three months, so you either upgrade every quarter or stay on the yearly LTS line
  • Gitea releases after 1.22 have no supported upgrade path, and the two codebases drift further apart with each release

Alternatives

What all version control have in common →Compare side by side →

How it fits with other technologies

.forgejo/workflows/demo.yaml: runs on a runner labeled docker · yaml

on: [push]
jobs:
  test:
    runs-on: docker
    steps:
      - uses: actions/checkout@v6
      - run: ls -la
      - run: echo All good!

See it in a real stack

No architecture uses Forgejo yet. Drop it into the playground and wire it up yourself.Open playground →
Where it came from2022–2026

Gitea was a community-run, self-hosted Git service, six years old in October 2022, with more than 1,000 contributors. On October 24, 2022 its Technical Oversight Committee announced Gitea Limited, a company to sell support, hosting and an enterprise version, and said Gitea’s domains and trademarks, held by Lunny Xiao, had been transferred to it. The company said Gitea would stay open source and community-run. Part of the community objected that control had been handed to a for-profit company without consulting them, and an open letter to the project owners went unanswered.

Former Gitea maintainers and others created Forgejo in October 2022 and announced it on December 15, named after forĝejo, Esperanto for forge. It started as a soft fork, a drop-in replacement for Gitea under the umbrella of Codeberg e.V., which also switched Codeberg.org from Gitea to it. The project moved its own development to free tools (Woodpecker CI and then Forgejo Actions, Weblate instead of Crowdin) and required tests for every change.

In February 2024 Forgejo became a hard fork, free to change code without tracking Gitea, and promised upgrades only from the Gitea version current at the time. In April 2024 it jumped from v1.21 to v7.0 to adopt semantic versioning, with 7.0 as its first LTS release, and from v9.0 (October 2024) it is licensed under GPLv3 or later, after contributors agreed in 2023 to accept copyleft code. The Gitea project continues separately under Gitea Ltd., and each side describes the split from its own point of view.

Why it’s built this way

Non-profit custody instead of a company
The fork existed because Gitea’s domains and trademark went to a for-profit company. Putting Forgejo’s domains with Codeberg e.V., a non-profit whose bylaws aim to keep free software open and available, was meant to keep the project in the interest of the general public.
Become a hard fork in 2024
Merging all of Gitea, good and bad, limited what Forgejo could change and test. A hard fork let maintainers reduce technical debt and add features without constant conflicts, at the cost of eventually no longer being a drop-in replacement.
Switch to a copyleft license from v9.0
The MIT license kept out contributors who publish under copyleft and forced the removal of incompatible dependencies. GPLv3+ allows reusing copyleft code and guarantees users’ freedoms, and Forgejo already ships with Git, which is GPLv2.
Federation as the long-term goal
Forgejo’s main roadmap item is federation between forges through ForgeFed, an extension of ActivityPub, so people on different instances can collaborate without everyone joining one central service.

Timeline

  1. 2022

    Gitea Limited announced (October 24); Forgejo created in October and launched December 15 under Codeberg e.V.

  2. 2024

    Hard fork announced (February 15); v7.0, the first LTS and semantic-versioned release (April 23); GPLv3+ from v9.0, announced August 22

  3. 2025

    v11.0 LTS (April 16); Zig moves its repository from GitHub to Codeberg (November 26)

  4. 2026

    v15.0 LTS (April 16) and v16.0 (July 16); 16.0.6 and 15.0.10 released October 12

Sources11 · facts checked 13 October 2026

Improve this page on GitHub