Gitea

Gitea

Self-hosted Go forge with CI, a wiki and code review

Gitea is a Git forge written in Go that you run on your own server. It covers repositories, pull requests with code review, issues, kanban boards, a wiki, a package registry and CI through Gitea Actions. The server ships as a single binary or a Docker image, and the documentation puts the usual needs of a small team at two CPU cores and 1 GB of RAM.

Gitea began as a fork of Gogs and kept its MIT license, though its docs say almost all of the code has changed since. The comparison of self-hosted Git forges weighs its governance and features against the other forges.

Runs GitHub-style workflows and hosts 23 package formats

  • GitHub Actions workflows: Gitea Actions reads GitHub's workflow syntax and runs actions written for GitHub, such as actions/checkout. It also takes full URLs in uses:, actions written in Go, and @daily or @weekly schedules.
  • 23 package formats next to the code: npm, PyPI, Maven, Cargo, Go, Composer, NuGet, Helm, Debian, RPM, Alpine, Arch and container images, among others.
  • OAuth 2.0 provider, LDAP client: other apps can sign their users in through Gitea, and Gitea can pull its own accounts from one or several LDAP or Active Directory servers.
  • Bots, deploy tokens and an audit log since 28.0.0: bot accounts are managed from the admin UI, the API or the CLI, deploy tokens cover HTTPS access, and the audit log is off by default and exports to JSONL.

Company-appointed committee seats and SAML locked to Enterprise

A company has shared control of the project since 2023. A blog post dated October 24, 2022 announced Gitea Limited, to which Lunny Xiao, one of the project's owners since 2016, transferred the domains and the trademark. In early 2023 the team of three elected owners gave way to a six-seat Technical Oversight Committee (TOC): three members elected for one year from maintainers with no tie to the company, three appointed by the company. On votes, the community seats count "slightly more".

Forgejo came out of that transfer. The Forgejo fork dates from October 2022. Its website says the domains and trademark went to a for-profit company without the community's knowledge or approval, and calls Gitea "open core". A hard fork since early 2024, Forgejo is developed under the umbrella of Codeberg e.V., the non-profit that runs Codeberg.

The repository is MIT; SAML is paid. The comparison table in Gitea's docs marks SAML as missing from the free version. The self-hosted Enterprise edition, billed per user per month, adds it along with organization-wide branch protection rules, dependency scanning, an IP allowlist and mandatory 2FA. Its feature page still lists the audit log, which reached the free version in 28.0.0. Gitea Cloud, the managed offering, gives each customer a dedicated instance in the region they choose; the pricing page does not show what it costs.

Gitea Actions needs a separate runner. Jobs run on Gitea Runner, a separate binary you register with the instance, and the docs recommend Docker to isolate them. An action referenced without a host, like actions/checkout@v4, is downloaded from GitHub unless configured otherwise. The docs also list where Gitea departs from GitHub: environment and error annotations are ignored, and the job token has narrower permissions.

SQLite will not grow with you. SQLite is built in, but the docs warn that it does not scale: an instance expected to grow needs PostgreSQL 12, MySQL 8.0, MariaDB 10.4 or SQL Server 2012 SP4, at minimum.

Six releases in under two years, then a numbering jump. From 1.23.0 (January 2025) to 28.0.0 (September 29, 2026), six feature releases shipped, each followed by patch releases. 28.0.0 would have been 1.28.0: the project dropped the "1." prefix. It turns off open registration by default, refuses to start with Git older than 2.25.0, and deletes finished Actions runs after 400 days.