Favicon of gitea

gitea

Gitea is a self-hosted, all-in-one software development platform with Git hosting, code review, issue tracking, a package registry, and CI/CD.

Gitea is a self-hosted software development service that bundles Git hosting with the tools teams typically need around it. It's for developers and organizations who want a GitHub-like workflow (code review, issues, project boards, wiki, CI/CD) running on infrastructure they control, without depending on a third-party SaaS.

Key features

  • All-in-one platform: Git hosting, code management, code review, issue tracking, a project kanban board, wiki, team collaboration tools, a package registry, and CI/CD in a single application.
  • CI/CD via Gitea Actions: the built-in CI/CD system can reuse existing GitHub Actions workflows, so migrating pipelines doesn't mean rewriting them from scratch.
  • Broad platform support: written in Go, Gitea runs on Linux, macOS, FreeBSD/OpenBSD, and Windows, across x86, amd64, ARM, RISC-V 64, and PowerPC architectures.
  • Official tooling: an official Go SDK, a CLI tool called tea, and an action runner for Gitea Actions are maintained alongside the server.
  • Localization: the interface is translated through Crowdin into many languages, maintained by community translators.
  • Cloud and container deployment options: run your own instance via Docker/Podman, use Gitea Cloud for a managed dedicated instance, or try the hosted gitea.com service with a limited number of free repositories.
  • Community ecosystem: an awesome-gitea list tracks third-party SDKs, plugins, and themes built around the platform.
  • Full project management surface: beyond code, the UI covers issues, pull requests, milestones, releases, tags, project activity, and organization pages, so day-to-day project management doesn't need a separate tool.

Ideal use cases

Gitea fits teams and individuals who want a self-hosted alternative to GitHub or GitLab, particularly where resource usage matters: it's built to be lighter weight than some alternatives while still covering issues, PRs, CI/CD, and a package registry. Its cross-platform, cross-architecture Go binary also makes it a reasonable fit for running on modest hardware, including ARM-based servers.

It's not the right tool if you specifically need GitLab's or GitHub's exact enterprise feature set (advanced compliance tooling or specific marketplace integrations only those platforms offer), since Gitea's feature set, while broad, isn't a 1:1 match. If you'd rather not run and maintain your own instance at all, gitea.com's hosted service or Gitea Cloud's managed trial are the lower-maintenance paths.

Installation

Gitea can be deployed as a container using the official image:

docker pull gitea/gitea

(see the project's documentation site for the full container run/compose configuration, environment variables, and volume setup)

To build from source, check docs/build-setup.md for prerequisites and docs/build-source.md for packaging instructions. A typical local development setup is described in docs/development.md, covering linting and testing.

After building, start the server or list available commands:

./gitea web
./gitea help

For day-to-day configuration, dynamic options can be changed from the admin panel, while static configuration lives in app.ini, which requires a server restart to take effect; an example file (app.example.ini) is included in the repository. Full documentation, including installation guides for various platforms, lives on the official documentation site.

If you want to try Gitea before installing anything, an online demo is available at demo.gitea.com. Contributions follow a standard fork, patch, push, pull request workflow, and the project asks that new contributors read the contributing guide first; the development guide covers setting up a local environment, linting, and testing for anyone working on the codebase itself. Localization work happens through Crowdin, and new contributors interested in translation can ask project managers there, or raise it on Discord in the #translation channel, to get a new language added.

Security patches are called out explicitly in the release log and changelog, marked with the keyword SECURITY, so administrators who need to track security-relevant updates for their instance have a straightforward way to find them without reading every changelog entry in full. The project also maintains lists of maintainers, contributors, and translators, and accepts financial support through Open Collective from backers and sponsors who want to fund ongoing development.

Categories:

Frequently asked questions

Share:

Stars
56.8K
Forks
6.9K
Last commit
2 hours ago
Repository age
10 years
License
MIT
Self-hosted
Yes
Activity score
87/100
View Repository
Built with:

Similar to gitea

Favicon

 

  
  
Favicon

 

  
  
Favicon