selfhosting.shUnlike most forks that wither, Gitea took Gogs' codebase in 2016 and built a substantially more...
Unlike most forks that wither, Gitea took Gogs' codebase in 2016 and built a substantially more capable Git forge on top of it. Gogs remains the minimalist original — stable, lightweight, and adequate for basic repository hosting. But Gitea now has CI/CD, package registries, and a community 10x larger.
Gitea is the better choice for new deployments. It has everything Gogs offers plus Actions CI/CD, package registries, project boards, OAuth2 provider capabilities, and a vastly more active development community. Gogs still works for simple Git hosting where you want the absolute smallest footprint — but the resource difference between them is minimal, while the feature gap is substantial.
Gogs launched in 2014 as a self-hosted Git service written in Go, designed to run on minimal hardware. It was (and is) maintained primarily by one developer. In 2016, a group of contributors forked Gogs to create Gitea, frustrated by the single-maintainer bottleneck on pull request reviews.
Since the fork, Gitea has grown to 500+ contributors and added major features — CI/CD (Gitea Actions), package registries, OAuth2 provider, and improved API compatibility with GitHub. Gogs continues to receive updates but at a much slower pace, focused on stability over feature expansion.
| Feature | Gitea | Gogs |
|---|---|---|
| Docker image | gitea/gitea:1.25.5 |
gogs/gogs:0.14.2 |
| Language | Go | Go |
| License | MIT | MIT |
| Contributors | 500+ | ~50 |
| Built-in CI/CD | Gitea Actions (GitHub Actions-compatible) | None |
| Package registry | Yes (npm, Maven, PyPI, Cargo, NuGet, Conan, etc.) | None |
| Container registry | Yes | None |
| Project boards | Yes (Kanban) | None |
| OAuth2 provider | Yes (act as identity provider) | No |
| Git LFS | Yes | Yes |
| Issue tracking | Yes (labels, milestones, assignees) | Yes (labels, milestones, assignees) |
| Pull requests | Yes (reviews, merge options, protected branches) | Yes (basic merge) |
| Wiki | Yes (Git-backed) | Yes (Git-backed) |
| Webhooks | Gitea, GitHub, Slack, Discord, Teams, Matrix, Telegram | Slack, Discord, Dingtalk |
| Database | SQLite, PostgreSQL, MySQL/MariaDB, MSSQL | SQLite, PostgreSQL, MySQL |
| SSH access | Yes | Yes |
| Migration from GitHub | Yes (repos, issues, PRs, labels, milestones) | Yes (repos only) |
| API | REST + Swagger docs | REST (basic) |
| 2FA | Yes (TOTP, WebAuthn) | Yes (TOTP) |
| LDAP/SMTP auth | Yes | Yes |
| Themes | Built-in dark/light + custom CSS | Limited |
| RAM (idle) | ~80-120 MB | ~50-80 MB |
Both are Go binaries with similar deployment patterns. The Docker Compose is nearly identical:
services:
gitea:
image: gitea/gitea:1.25.5
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=gitea-db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=changeme-gitea-db-pass
volumes:
- ./data:/data
ports:
- "3000:3000"
- "2222:22"
depends_on:
- gitea-db
restart: unless-stopped
gitea-db:
image: postgres:16-alpine
container_name: gitea-db
environment:
- POSTGRES_DB=gitea
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=changeme-gitea-db-pass
volumes:
- ./db:/var/lib/postgresql/data
restart: unless-stopped
services:
gogs:
image: gogs/gogs:0.14.2
container_name: gogs
volumes:
- ./data:/data
ports:
- "3000:3000"
- "2222:22"
restart: unless-stopped
Gogs defaults to SQLite, making the minimal setup a single container. Gitea also supports SQLite but the PostgreSQL setup is recommended for anything beyond personal use.
| Metric | Gitea | Gogs |
|---|---|---|
| Docker image size | ~110 MB | ~80 MB |
| RAM (idle, SQLite) | ~80 MB | ~50 MB |
| RAM (idle, PostgreSQL) | ~120 MB (+PostgreSQL) | ~80 MB (+PostgreSQL) |
| RAM (under load) | ~200-350 MB | ~150-250 MB |
| CPU (idle) | Negligible | Negligible |
| Startup time | ~5 seconds | ~3 seconds |
| Disk (application) | ~200 MB | ~150 MB |
Gogs is lighter, but the margin is 30-50 MB RAM — irrelevant on any modern server. Both run comfortably on a Raspberry Pi 4 or a $5 VPS.
This is where the fork diverged most significantly. Gitea Actions is a GitHub Actions-compatible CI/CD system. Deploy a runner container, define workflows in .gitea/workflows/ or .github/workflows/, and most GitHub Actions from the marketplace work with minimal changes.
Gogs has no CI/CD. You'd need an external system — Drone CI, Jenkins, or Woodpecker CI — adding deployment complexity and another service to maintain. For many developers, CI/CD is non-negotiable, and this alone decides the comparison.
| Metric | Gitea | Gogs |
|---|---|---|
| GitHub stars | 48K+ | 45K+ |
| Active contributors | 500+ | ~10-20 |
| Release frequency | Monthly | Every 2-4 months |
| Governance | Multi-maintainer, Gitea Ltd. | Single primary maintainer |
| Ecosystem | Themes, plugins, Actions marketplace | Minimal |
Gitea's multi-maintainer model means PRs get reviewed and merged faster. Gogs' single-maintainer approach has been a point of friction since 2016 — it's why Gitea forked in the first place.
Migrating from Gogs to Gitea is straightforward because Gitea was forked from Gogs:
Migrating from Gitea to Gogs is not supported — Gitea's database schema has diverged significantly.
Gitea wins on features — CI/CD, package registries, project boards, and a thriving ecosystem that Gogs can't match. The resource difference is negligible. For new deployments, Gitea (or its community fork Forgejo) is the right choice. Gogs is only worth considering if you explicitly want the smallest possible Git server and don't need CI/CD, packages, or any feature added to Gitea in the last 8 years.
Almost. Gitea can import Gogs databases directly. The API is similar but Gitea's has expanded significantly. SSH and HTTP cloning work identically.
Forgejo is a community-governed fork of Gitea with identical features and guaranteed nonprofit stewardship. See our Gitea vs Forgejo comparison for the full breakdown.
No. Gitea Actions is specific to Gitea (and Forgejo). Gogs would need an external CI system like Drone CI or Woodpecker CI.
Yes. Gogs receives updates every few months and v0.14.2 released in February 2026. Development is slower than Gitea but the project is not abandoned.