Gitea: Self-Hosted Git Service with CI/CD
Gitea is a self-hosted Git service that bundles code hosting, code review, issue tracking, a package registry, and CI/CD into one Go binary or Docker container. Reach for it if you want GitHub-like workflows without sending code to a third party and don't mind running your own server; skip it if you'd rather not own patching, backups, and uptime yourself.
What is Gitea?
Gitea is an open-source, self-hosted alternative to GitHub, written in Go and licensed under MIT. It ships as a single binary or Docker image and covers the whole software development lifecycle: Git hosting, code review, issue tracking, a project kanban board, a wiki, a package registry, and CI/CD through Actions that can reuse GitHub Actions workflows.
Key Features for Development Teams
- ✓Git hosting alongside code review, issue tracking, a kanban-style project board, and a wiki — all in one app instead of stitched-together tools.
- ✓CI/CD via Gitea Actions, which the README says can reuse GitHub Actions workflows, so existing .yml pipelines often need little rewriting.
- ✓A built-in package registry for hosting packages such as npm and Maven artifacts (per the docker-registry-v2, maven-server, and npm-registry topics), plus container registry support.
- ✓Git LFS support for large binary files.
- ✓Written in Go, so it runs on Linux, macOS, FreeBSD/OpenBSD, and Windows across x86, amd64, ARM, RISC-V 64, and PowerPC — the README lists all of these.
- ✓An official CLI tool called tea and a go-sdk for scripting against a Gitea instance outside the web UI.
- ✓A dedicated action runner binary for executing Actions jobs, separate from the main gitea server process.
- ✓Localization run through Crowdin, with translators credited in the repo's TRANSLATORS file.
Great for Self-Hosting and Collaboration
- •Teams that want a private GitHub-style workflow (PRs, issues, wiki, Actions) on infrastructure they control.
- •Organizations blocked from using cloud Git hosts by data-residency or compliance policy, since everything runs on your own server.
- •Solo developers or small teams who want package hosting (npm, Maven-style, container images) without paying for a separate registry service.
- •Homelab and self-hosting enthusiasts already running Docker who want one lightweight service instead of several.
Installation and Deployment Options
Gitea deploys as a single Go binary or as the official Docker/Podman image (gitea/gitea on Docker Hub) — the README doesn't spell out a one-line docker run command, so check docs.gitea.com for the current compose file. After building or pulling the image, `./gitea web` starts the server and `./gitea help` lists the available commands. Building from source is documented in docs/build-setup.md and docs/build-source.md in the repo. If you don't want to run anything yourself, gitea.com offers a free hosted account with a limited number of repositories, cloud.gitea.com offers a free trial of a dedicated managed instance, and demo.gitea.com lets you try the UI first.
Alternatives to Consider
Frequently Asked Questions
Gitea is pronounced /ɡɪˈtiː/ — like 'gi-tea' with a hard g, not a soft j sound.
Gitea has two configuration layers: dynamic options you can change from the admin panel while it's running, and static options you edit in the app.ini file, which require restarting the instance to take effect.
Gitea lists security fixes in its release log and CHANGELOG.md on GitHub — search either for the keyword SECURITY to find the relevant entries.
Gitea runs on Linux, macOS, FreeBSD/OpenBSD, and Windows, across x86, amd64, ARM, RISC-V 64, and PowerPC architectures, since it's written in Go.
Gitea is licensed under the MIT License, so you can self-host, modify, and redistribute it with minimal restrictions.
Gitea supports CI/CD through Gitea Actions, which the project describes as able to reuse GitHub Actions workflows, plus a separate action runner binary to execute jobs.
Strengths
- ✓One app instead of five: hosting, review, issues, packages, and CI/CD ship together, so you're not gluing together separate services.
- ✓MIT license, so there's no ambiguity about self-hosting it commercially.
- ✓Runs anywhere Go compiles — the README lists Linux, macOS, BSD, and Windows across five CPU architectures, which matters for odd homelab hardware.
- ✓CI/CD that can reuse GitHub Actions YAML, per the README, easing migration off GitHub without rewriting every workflow file.
- ✓An official CLI (tea) and go-sdk exist for scripting, not just the web UI.
Limitations & risks
- △The README doesn't document a quick-start docker run command or default resource requirements, so first-time setup means digging through the separate docs site.
- △Running Gitea yourself means you own upgrades, backups, and security patching — the README points to the changelog and release log to track security fixes, but applying them is on you.
- △Package registry support spans multiple ecosystems (per the docker-registry-v2, maven-server, and npm-registry topics), but the README doesn't list which registries or how many are supported.
- △No enterprise or managed support channel is mentioned in the README beyond Discord and a Discourse forum — there's no SLA-backed help for production incidents.
The problem it solves
Teams that like GitHub's workflow — PRs, issues, a wiki, Actions-style CI — but need it to run entirely inside their own network usually end up combining four or five separate self-hosted tools: a Git server, a code review app, a CI runner, and a package registry. Gitea's specific pitch is folding that whole stack into one Go binary so a single small server replaces the pile of separate services.
Who should try it — and who should skip
Reach for Gitea if you're a small team or solo developer who wants GitHub's day-to-day workflow (PRs, issues, kanban, Actions-style CI) without handing repos to a third party, and you're fine maintaining a Go binary or Docker container yourself. Skip it if you need a managed service with vendor support, or if your team is large enough that you'd rather pay for GitLab's or GitHub's enterprise tier than run patches and backups on your own schedule.
Related repositories
Still deciding about gitea?
One click hands the question to an AI along with this page — see what it says about gitea.
