Gitea vs OneDev vs Forgejo: Self-Hosted Git Platforms in 2026
Why Self-Host Your Git Platform?
GitHub Teams costs $4/user/month ($48/user/year). GitHub Enterprise is $21/user/month. For a 50-developer organization, that's $2,400-12,600/year just for code hosting.
Beyond cost, self-hosting your Git platform means your source code stays on your infrastructure — not on GitHub/Microsoft servers. For organizations with compliance requirements, classified work, or simply a preference for data sovereignty, self-hosting is the right choice.
Three projects stand out as the best options in 2026: Gitea (the established leader), Forgejo (the community-driven Gitea fork), and OneDev (the most integrated development platform).
TL;DR
- Forgejo (5K+ stars): Best for teams prioritizing community governance, GPL licensing, and federation features. Community-driven Gitea fork with strong trajectory.
- Gitea (53K+ stars): Best established option with widest community and most integrations. Commercial backing from Gitea Ltd.
- OneDev (13K+ stars): Best integrated development platform. Built-in CI/CD with visual pipeline editor, code navigation, and symbol search.
Quick Comparison
| Feature | Gitea | Forgejo | OneDev |
|---|---|---|---|
| GitHub Stars | 53K+ | 5K+ (new org) | 13K+ |
| License | MIT | GPL-3.0 | MIT |
| Governance | Gitea Ltd (company) | Non-profit | Company (OneDev) |
| CI/CD built-in | Yes (Gitea Actions) | Yes (Forgejo Actions) | Yes (native) |
| Federation | No | In development | No |
| Code navigation | Basic | Basic | Advanced |
| Symbol search | No | No | Yes |
| Container registry | Yes | Yes | Yes |
| Resource usage | Low | Low | Medium |
| Docker deployment | Easy | Easy | Easy |
Gitea vs Forgejo: What You Need to Know
Gitea and Forgejo share a common origin. Understanding the split helps you choose:
Gitea was founded as an open source project and grew to 53K+ stars. In 2022, a company (Gitea Ltd.) took control of the project's direction, domain, and trademark. Development continued but governance shifted from pure community to company-controlled.
Forgejo was created as a response. In 2024, Forgejo formally split from Gitea (stopped synchronizing), adopted the GPL-3.0 license, and became hosted by the Codeberg non-profit. Forgejo is pursuing features Gitea isn't — particularly federation (ActivityPub), which would allow users on different Forgejo instances to interact.
Functionally, they're very similar today. The differences are:
- License: Forgejo is GPL-3.0 (copyleft), Gitea is MIT
- Governance: Forgejo has non-profit community governance, Gitea has company control
- Federation: Forgejo is actively building federation, Gitea is not
- Long-term trajectory: Different visions for what a Git forge should be
Forgejo — Best Community Choice
Forgejo is the choice if you care about open source governance, long-term community direction, and want federation capability in the future.
What Makes It Stand Out
Community governance: Forgejo is hosted by a non-profit (Codeberg e.V.) with transparent governance. No single company controls the project's direction.
GPL-3.0 license: Stronger copyleft protection than Gitea's MIT. Any modifications to Forgejo that are distributed must be open source.
Federation roadmap: Forgejo is implementing ActivityPub federation, which will allow Forgejo instances to communicate with each other and potentially with other fediverse platforms. This is a unique feature not present in Gitea.
Forgejo Actions: Compatible with Gitea Actions and largely compatible with GitHub Actions workflow syntax. Migrate GitHub Actions workflows with minimal changes.
Self-Hosting
# Docker Compose
docker run -d \
--name=forgejo \
-p 3000:3000 \
-p 2222:22 \
-v forgejo:/data \
codeberg.org/forgejo/forgejo:latest
Or with docker-compose:
services:
forgejo:
image: codeberg.org/forgejo/forgejo:latest
restart: always
ports:
- "3000:3000"
- "2222:22"
volumes:
- forgejo:/data
db:
image: postgres:15
environment:
POSTGRES_USER: forgejo
POSTGRES_PASSWORD: forgejo
POSTGRES_DB: forgejo
Resource requirements: 512MB RAM minimum, 1-2GB recommended. Can run on a $4/month VPS.
Best for: Open source communities, organizations prioritizing software freedom, teams that want to migrate away from company-controlled infrastructure.
Gitea — Most Established Option
Gitea (53K+ stars) is the most widely deployed self-hosted Git platform. The large community means more tutorials, more integrations, more third-party tools with native Gitea support.
What Makes It Stand Out
Ecosystem: The largest community of any lightweight self-hosted Git platform. Most CI/CD tools, deployment platforms, and developer tools have native Gitea integration.
Gitea Actions: GitHub Actions-compatible workflow engine. Migrate many GitHub Actions workflows directly to Gitea.
Packages/Registry: Container registry (Docker), npm, Maven, PyPI, and other package registries built in.
Wiki, issues, PRs, reviews: Full code review workflow including line comments, review requests, and merge strategies.
OAuth2 provider: Use Gitea as an OAuth2 provider for other applications — unified login across your self-hosted stack.
Self-Hosting
docker run -d \
--name=gitea \
-p 3000:3000 \
-p 2222:22 \
-v gitea:/data \
gitea/gitea:latest
Gitea can run with SQLite (for small deployments), MySQL, or PostgreSQL.
Best for: Organizations who want the widest ecosystem support and the most battle-tested lightweight Git platform.
OneDev — Best Integrated Development Platform
OneDev (13K+ stars) takes a different philosophy: instead of a lightweight Git host you integrate with other tools, it's a complete integrated development environment with built-in CI/CD, code intelligence, and issue tracking.
What Makes It Stand Out
Code navigation: OneDev indexes your code for symbol search, go-to-definition, and find-references — similar to a web-based IDE. Navigate large codebases without cloning.
Symbol search: Search for function names, class definitions, and symbols across all repositories. This is OneDev's unique killer feature.
Built-in CI/CD: YAML-based pipeline definitions with a visual editor. No need for a separate CI tool like Drone or Jenkins.
Job executors: Flexible job execution — run CI jobs on Docker, Kubernetes, SSH remotes, or inline.
Build artifacts: Store and retrieve build artifacts from within OneDev.
Issue tracking: Kanban board, milestones, iterations, and custom fields for issues.
Self-Hosting
docker run -d \
--name onedev \
-p 6610:6610 \
-p 6611:6611 \
-v /opt/onedev:/opt/onedev \
1dev/server
OneDev runs as a single Docker container. More resources needed than Gitea (512MB-1GB minimum, 2GB recommended for code indexing).
OneDev vs Gitea for CI/CD
Gitea's Actions requires a separate runner process. OneDev's CI is fully integrated:
Gitea: Configure actions runners → write YAML → run OneDev: Write YAML in visual editor → run (runner built in)
For teams who want CI/CD without managing a separate runner infrastructure, OneDev's integrated approach is simpler.
Best for: Development teams who want an all-in-one solution — code hosting, CI/CD, and code intelligence without managing separate tools.
Migration from GitHub
All three tools support GitHub-compatible APIs for most operations. Migration typically involves:
- Export from GitHub: Use GitHub's export feature or
gh repo clone --all - Configure authentication: Set up SSH keys and access tokens
- Import repositories: Use the platforms' GitHub import features (all three support this)
- Migrate CI/CD: GitHub Actions syntax is mostly compatible — minor changes needed
- Update integrations: Update webhook URLs and tokens in integrated tools
Gitea and Forgejo have the most GitHub Actions compatibility. OneDev requires rewriting CI pipelines in its own format.
Cost Comparison
GitHub Annual Costs (50 Developers)
| Plan | Per User/Month | Annual |
|---|---|---|
| Teams | $4 | $2,400 |
| Enterprise | $21 | $12,600 |
Self-Hosted
| Tool | Server (Hetzner CPX21) | Annual |
|---|---|---|
| Gitea | $6.50/mo | $78 |
| Forgejo | $6.50/mo | $78 |
| OneDev | $10-15/mo | $120-180 |
50-developer savings vs GitHub Teams: ~$2,322/year. vs GitHub Enterprise: ~$12,420/year.
Which One Should You Choose?
Choose Forgejo if: You care about software freedom and community governance. You want federation capability. You prefer GPL licensing.
Choose Gitea if: You want the widest ecosystem support, the largest community, and the most existing integrations.
Choose OneDev if: You want code navigation and symbol search. You want integrated CI/CD without a separate runner. You're comfortable with less GitHub compatibility in exchange for more integrated tooling.
Find Your Git Platform
Browse all GitHub and GitLab alternatives on OSSAlt — compare Gitea, Forgejo, OneDev, Gitlab CE, and every other open source Git hosting platform with deployment guides and feature comparisons.