Forgejo vs Gitea:哪个开源自托管的 Git 服务更适合你
-
-
2026 年 7 月 13 日 上午 1:40 #34119
零、一句话总结
Forgejo 和 Gitea 在日常使用层面几乎一样,但两者的灵魂完全不同:
- Gitea 是一个由商业公司(Gitea Ltd)控制的开源核心(open-core)项目,走的是务实路线
- Forgejo 是一个由非营利协会(Codeberg e.V.)全权拥有的社区治理项目,走的是理念路线
选择哪一个,本质上是价值观选择,而非技术选型。
一、完整故事线:从 Gogs 到 Gitea 到 Forgejo 的两次分叉
Gogs(2014)— 起点
国人开发的 Go 语言 Git 服务,主打”开箱即用、部署简单”。但长期由单核心作者(Unknwon)主导开发,合并 PR 速度慢,社区声音得不到回应。
Gitea(2016 年 11 月,从 Gogs 分叉)
一群核心贡献者因不满 Gogs 的”单维护者管理模式”而分叉,在 GitHub 上创建了 Gitea 组织。打出了社区驱动的旗帜,快速迭代:
- Issues、Pull Request、看板、Webhooks 等现代化功能迅速补齐
- 中文文档全、更新快、社区活跃
- 迅速成为最流行的自托管 Git 平台(GitHub 56K+ stars)
- 许可证:MIT
到 2022 年,Gitea 已经是一个成熟的、广泛部署的 Git 服务,被全球无数团队和公司在生产环境中使用。
争议爆发(2022 年 10 月)
2022 年 10 月,Gitea 的两名核心所有者(Lunny Xiao 和 Matti Ranta)在未与社区沟通、未经过投票的情况下,将 Gitea 的域名(gitea.io、gitea.com)和商标悄然转移到了新注册的香港商业公司 Gitea Ltd。
社区反应强烈。2022 年 10 月 25 日,多名贡献者联署发出公开信,要求:
- 将域名和商标转移至非营利组织名下
- 建立透明的治理结构
- 社区参与重大决策
这些要求被 Gitea Ltd 拒绝。
Forgejo 诞生(2022 年 12 月 15 日)
公开信无法改变结果后,社区中的一派决定再次分叉。在 Codeberg e.V.(德国柏林注册的非营利协会)的赞助下,Forgejo 项目宣布成立。
名字来源于世界语 forĝejo(锻造车间),暗示这是一个由社区锻造的平台。
关键决策教训:Forgejo 吸取了 Gogs → Gitea 的经验,从一开始就安排了域名和商标由 Codeberg e.V. 持有,而不是任何个人名下。项目仓库托管在自己的 Codeberg 平台上(而非 GitHub),实现了真正的”自举”。
软分叉阶段(2022 年 12 月 — 2024 年 2 月)
Forgejo 以”软分叉”(soft fork)方式运作,类似于 LineageOS 与 Android 的关系:
- 追踪 Gitea 上游开发分支
- 在 feature 分支中工作并定期 rebase 纳入 Gitea 改动
- 在此之上叠加 Forgejo 特有的改进(如治理文档、CI 质量要求等)
- 作为 Gitea 的”透明升级替代品”,替换二进制即可完成迁移
硬分叉决定(2024 年 2 月)
2024 年 2 月 16 日,Forgejo 正式宣布成为 Gitea 的硬分叉(hard fork)。理由:
- 稳定性问题:Gitea “合并了未经测试的海量代码(包含功能或重构),导致重要回归问题”
- 治理分歧不可弥合:Gitea 已转向 open-core 模式,社区合作的信任已破裂
- 独立性需求:Forgejo 有资金、资源和治理能力独立运营
- Gitea 不配合:Gitea 多次”重新实现”已被 Forgejo 修复的 bug 或功能,加速了分歧
宣布时的承诺:
- Gitea v1.21.5 及之前版本仍可透明升级到 Forgejo
- API 将尽量保持向前兼容
- 之后的版本不再保证可无缝切换
分岔加速(2024 年 — 今)
到 2024 年 12 月,Forgejo 官方宣布:Gitea 1.22 是最后一个能透明升级到 Forgejo 的版本。之后两者代码库已经分岔到无法低成本同步:
差异示例:
- 数据库 schema 不同(actions 中的索引、受保护分支优先级)
- 功能实现完全不同(如 admin 分支保护)
- 子系统已重新架构(如 Webhooks 在 Forgejo 中的实现)
- Actions Runner 的实现细节也在逐步偏离
二、治理模式:根本分歧
Gitea:公司治理
Gitea Ltd(香港商业公司):
- 控制 Gitea 的 GitHub 仓库、域名(gitea.io、gitea.com)、商标
- 核心维护者 Lunny Xiao 为该公司负责人
- 决策过程不透明,社区无投票权
- 商业模式:open-core(开源核心 + 付费企业版 + 云服务)
- 2016 年分叉时反对”单维护者”,2022 年自己变成了”单公司”——讽刺地重蹈了 Gogs 的覆辙
Forgejo:非营利社区治理
Codeberg e.V.(eingetragener Verein,德国注册协会):
- 注册于柏林,2018 年 9 月成立
- 2026 年拥有 1100+ 名会员
- 由会员选举委员会,重大决策会员投票
- 拥有 Forgejo 的全部域名、商标、基础设施
- 财务对会员公开,运作透明
- 在德国法律下,协会不可能被”收购”——资产不属于任何个人
Forgejo 项目的治理体系: Forgejo 在
codeberg.org/forgejo/governance有一个专门的治理仓库,公开了全套文档:文档 内容 MISSION.md项目使命与价值观 DECISION-MAKING.md决策流程(共识 + 投票) TEAMS.md团队结构与成员职责 AGREEMENTS.md贡献者协议 PullRequestsAgreement.mdPR 质量标准(含测试要求) MODERATION-PROCESS.md社区审核流程 SECURITY-POLICY.md安全漏洞响应 branding/品牌使用规范 治理原则:
- 所有决策通过公开讨论和 RFC 流程进行
- 重大变更需要社区共识或投票
- 贡献者(非公司)决定项目路线
- Codeberg e.V. 作为”终极守护者”,但不干预日常运营决策
保障措施:
- 任何个人或公司无法单方面转移资产(需要协会全体会员投票)
- 许可证已切为 GPL v3+,防止闭源分叉
- 代码托管在 Codeberg 而非 GitHub——平台自举,不依赖任何商业平台
对比: Gitea 2016 年指责 Gogs 是”单维护者”→ 分叉时承诺”多所有者、社区驱动”→ 2022 年变成”单公司控制”。Forgejo 的治理设计在制度上防止了这种退化。
三、许可证差异:MIT vs GPL v3+
这是两者在代码层面的最显著差异。
Gitea Forgejo 当前许可证 MIT GPL v3+(v9.0 起,2024 年 8 月切换) v9.0 之前 始终 MIT MIT(继承自 Gitea) 许可证含义 允许闭源分发、专有衍生品 copyleft,要求衍生品也必须开源 商业友好 较高(对闭源二次开发无限制) 较低(禁止闭源分发修改版) 企业版可能性 有(Gitea Enterprise,部分闭源) 无(所有功能永远开源) Forgejo 切换许可证的原因
Forgejo 官方在 2024 年 8 月宣布切换到 GPL v3+,官方解释了三个理由:
- 接纳 copyleft 贡献者(核心原因): 在 MIT 许可证下,Forgejo 无法接受 GPL 等 copyleft 许可证的代码贡献。而许多优秀的开源组件是 GPL 的。切换到 GPL v3+ 后,Forgejo 可以自由复用 copyleft 生态的代码。
- 依赖项不兼容问题: Forgejo 发现某些依赖项与 MIT 许可证不兼容(例如 CPAL 许可的 citeproc-js、Eclipse 许可的 elkjs),实际上已经使整体变成 AGPL,但许可证声明还是 MIT——这是法律风险。为了消除许可证冲突,选择升级为 GPL v3+ 是更干净的做法。
防止商业利用漏洞:
“Copyleft 许可证减少了对用户的剥削性商业行为——比如创建一个修改版的 Forgejo,剥夺用户应有的自由。”
GPL v3+ 的具体影响
- 不会影响:使用官方发布的二进制/Docker 镜像的用户和自托管者
- 会受影响:打包 Forgejo 并重新分发的发行版/容器平台,需要提供完整源代码
- 不会影响:商业托管 Forgejo 服务(SaaS 模式)
- 战略意义:任何想基于 Forgejo 做闭源二次开发的公司,都必须开源其修改——这保证了 Forgejo 生态永远不会出现”社区版 vs 企业版”的分化
FAQ 另一面: Gitea 始终坚持 MIT 许可证,这也意味着理论上任何公司都可以 fork Gitea 并推出闭源专有版本——实际上 Gitea Enterprise 就是这么做的。
四、联邦化(Federation):Forgejo 最独特的战略方向
这是 Forgejo 与 Gitea 在功能路线上最大的分岔点。Forgejo 正在把 Git 托管从一个”孤岛”变成一个互联网络。
核心理念
通过 ActivityPub 协议(W3C 标准,Mastodon、Threads、Pixelfed 等使用的同一种协议),Forgejo 实例之间可以互相通信。
这意味着:不再需要把所有代码集中到一个平台上。你可以自托管自己的 Forgejo 实例,但依然可以和 GitHub、Codeberg、或其他 Forgejo 实例上的项目跨实例协作。
技术实现:ForgeFed
ForgeFed 是一个基于 ActivityPub 的 forge 联邦协议。Forgejo 的核心开发者参与了 ForgeFed 标准的制定,并从 NLnet 基金会获得了专项资金支持。
当前状态
已实现(2026 年 5 月月报):
功能 状态 联邦化的 Star(跨实例收藏仓库) ✅ 已发布 联邦化的 Unstar ✅ 已发布 关注其他 ActivityPub 用户 ✅ 已合并(v15) 跨实例 ActivityPub Feed ✅ 已合并(目前支持 Forgejo、Mastodon、GoToSocial) Actions 支持 JWT 联邦身份 ✅ 已发布(v15) 正在开发中(FOSDEM 2025 演讲路线图):
功能 状态 关注仓库 🔄 开发中 联邦通知 🔄 开发中 集成 Mastodon 通知 🔄 开发中 联邦评论/讨论 📋 规划中 联邦 PR 📋 长期目标 对比 Gitea
根据 Forgejo 官方声明:Gitea 目前没有任何关于 forge federation 的工作。
这是一个根本性的路线差异:
- Forgejo 认为未来的代码协作是去中心化的
- Gitea 选择专注于单实例功能完善和企业功能
为什么联邦化重要
想象一下这样的场景:
- 你在自己的 Forgejo 实例上有一个私有仓库
- Codeberg 上有一个人想给你的仓库提交 PR
- 不需要在 Codeberg 上 fork → 跨实例推送 PR
- 你可以在自己的实例上审查和合并
- 一切通过 ActivityPub 协议传输,不依赖任何第三方平台
这就是联邦化的最终愿景——让代码协作像电子邮件一样,不受平台控制。
警告
目前联邦功能仍标记为实验性。官方警告:
启用联邦功能后,Forgejo 运行的域名将永久性地无法在将来与其他软件进行联邦化。
请仔细阅读 FAQ 后再启用。
这是因为 ActivityPub 的”域名即身份”机制——一旦一个域名在联邦网络中被识别为一个 ActivityPub 节点,就不能被重新用于另一个协议实现。
五、许可证与开源承诺的保障机制
Forgejo 在制度设计上有多层保障,确保项目永远不被商业公司接管:
第一层:法律实体
Codeberg e.V. 作为德国注册协会(e.V.),受德国《民法》约束:
- 资产属于协会,不属于任何个人
- 解散时资产必须用于公益目的
- 不能”被收购”(没有股权结构)
- 会员大会是最高权力机构
第二层:许可证
GPL v3+ 确保任何衍生作品必须开源。如果未来有人 fork Forgejo 并试图闭源,GPL 提供了法律武器。
第三层:基础设施自举
- 代码托管在 Codeberg 上,运行 Forgejo 本身
- 不依赖 GitHub、GitLab 等商业平台
- 即使 GitHub 关闭或改变政策,Forgejo 不受影响
第四层:财务透明
- 通过 Liberapay 接受捐赠
- 财务状况在 sustainability 仓库公开
- 目前有来自 NLnet 等组织的项目资助
对比 Gitea
Gitea 的保障仅有:Lunny Xiao 个人的承诺(”项目当然仍然是开源的”)。但没有任何制度能防止 Gitea Ltd 在未来改变路线——实际上企业版和云服务已经包含了闭源组件。
六、用户与采用情况
知名用户/采用者
Forgejo:
- Codeberg.org — 最大的 Forgejo 实例,2025 年 11 月数据:300,000+ 仓库,200,000+ 注册用户,1208 名协会会员
- 荷兰政府 — code.overheid.nl 使用 Forgejo 作为政府软件开发平台(2026 年 4 月上线)
- Fedora 项目 — 正在用 Forgejo 替换原有的 Pagure forge
- CodeMirror — 著名浏览器端代码编辑器,于 2025 年从 GitHub 迁移到自托管的 Forgejo 实例
- Freedom of the Press Foundation — 使用 Forgejo
Gitea:
- 部署量远大于 Forgejo(10 年积累),但缺少类似的知名”招牌用户”
- 更多是中小企业和个人开发者使用
市场数据(2025 DevOps 社区调查)
平台 自托管市场份额 年增长率 GitLab CE/EE 42% +3% Gitea 28% -5% Forgejo 18% +15% Gogs 7% -2% 其他 5% -1% 关键趋势:
- Gitea 在失去市场份额(-5%,被 Forgejo 分流)
- Forgejo 增速最快(+15%),尽管基数较小
- 轻型平台(Gitea + Forgejo 合计 46%)正在蚕食 GitLab 以外的市场
注意:这些数据来自 2025 年末的调查,样本偏差可能存在。
语言生态
Gitea Forgejo 中文社区 ✅ 非常大,文档全 较小 英文社区 大 中等 欧洲社区 一般 活跃(Codeberg 在德国,荷兰政府采用) 核心开发语言 Go Go 七、功能深度对比
共同能力(两者都有,水平基本一致)
Git 托管(SSH/HTTP(S)) ✅ Pull Request / Code Review ✅ Issues / 里程碑 / 看板 ✅ Wiki ✅ Webhooks / API ✅ OAuth / SSO 集成 ✅ 仓库迁移(GitHub/GitLab) ✅ 包注册表(Docker/NPM/PyPi等) ✅ Actions CI/CD(GitHub Actions 兼容语法) ✅ LDAP / SMTP ✅ Git LFS ✅ 组织 / 团队管理 ✅ SQLite / PostgreSQL / MySQL ✅ Docker / K8s 部署 ✅差异点
能力 Gitea Forgejo 分析 ActivityPub 联邦 ❌ 未计划 ✅ 开发中(已实现联邦 star、跨实例关注) 最显著的功能差异 开源承诺 open-core(部分功能在付费企业版) 100% FOSS,所有功能免费 Forgejo 无付费墙 SAML SSO 有(企业版) 社区插件 企业场景 Gitea 友好 审计日志 有(企业版) 基础版 同上 大规模部署优化 企业客户驱动 Codeberg 生产驱动 各有侧重 Actions Runner act runner Forgejo Runner 实现细节在偏离 数据库 Schema Gitea 自有 Forgejo 自有 已互不兼容 CI 语法兼容性 .gitea/workflows/*.yml.forgejo/workflows/*.yml语法相似但 Runner 实现有差异 发布周期 月/双月版 季度 LTS + 滚动更新 Forgejo 更强调稳定性 版本号 1.x 9.x → 目前 15.x(2026) 独立版本体系 Webhook 实现 Gitea 方式 已重新架构 不兼容 主题/品牌 Gitea 蓝绿 Forgejo 蓝紫 视觉效果略有不同 Forgejo Actions 的独特优势(v15)
2026 年 5 月,Forgejo v15 引入了一个重要功能:Authorized Integrations,允许 Actions 以 JWT 联邦身份操作。这意味着:
${{ forgejo.token }}现在可以有可配置的权限- 支持跨服务器权限,在联邦化的 Forgejo 网络中可以跨实例执行 Actions
- Forgejo Actions 不仅是一个 CI 系统,也正在成为联邦化工作流引擎
Gitea Actions 目前没有对应的功能。
关于”功能列表”的官方态度
Forgejo 官方明确表示:
No, there isn’t.(是否有 Forgejo 比 Gitea 多的功能列表?——没有。)
两者都在以让这种比较难以维护的速度发展。 请自行比较两者的文档、博客和发布说明。
这实际上是 Forgejo 的一种姿态:不参与功能竞赛,专注于自己的路线(治理 + 联邦化)。
八、部署与运维
资源需求
场景 建议配置 说明 个人 1 vCPU + 512 MB RAM SQLite 即可 小团队(~5 人) 1 vCPU + 1 GB RAM 建议 PostgreSQL 中型团队(~20 人) 2 vCPU + 2 GB RAM PostgreSQL + CI Runner Codeberg 级别 集群部署 300K+ 仓库规模 实际上两者完全一致,都是 Go 单二进制,资源占用几乎没有区别。
数据库支持对比
Gitea Forgejo SQLite(开发/小规模) ✅ ✅ PostgreSQL(推荐生产) ✅ ✅ MySQL / MariaDB ✅ ✅ MSSQL ✅ ❌(不支持) Forgejo 在 v15 中已移除 MSSQL 支持。
部署方式对比
方式 Gitea Forgejo 单二进制 ✅ ✅ Docker ✅ ✅ Docker Compose ✅ ✅ Kubernetes Helm ✅ ✅ 系统包(apt等) ✅ ✅(社区维护) 1Panel 等面板 ✅ ✅(社区适配) 桌面使用上完全一致,官方文档都提供了详细的部署指引。
备份与迁移
Gitea → Forgejo:
- Gitea v1.21.5 及之前:替换二进制即可(透明升级)
- Gitea v1.22:最后一个透明的版本(2024 年 12 月起)
- Gitea v1.23+:不再支持透明迁移,需要走特定版本路径
Forgejo → Gitea: 官方未提供文档。理论上几乎不可能(Forgejo 增加了 Gitea 没有的功能和数据库变更)。
两者之间未来: 随着代码分歧持续扩大,迁移成本只会越来越高。请做一次性决策。
九、详细选型建议
✅ 选 Forgejo 如果你
1. 你认同社区治理的价值
- 不希望一个商业公司能单方面决定项目方向
- 愿意支持非营利模式
- 认为代码基础设施应该去中心化
2. 你看好联邦化
- 希望未来能跨实例协作
- 不想把所有代码绑定在一个”孤岛”上
- 对 ActivityPub / Fediverse 有好感
3. 你注重”真·开源”
- 不想要 open-core 模式(免费版缺功能,付费版才有完整功能)
- 希望所有功能永远免费开源
- 接受 GPL v3+ 许可证
4. 你在欧洲或在欧洲有业务
- Codeberg 位于德国,受 GDPR 保护
- 荷兰政府、Fedora 项目等都在采用
5. 你项目的规模不需要企业付费功能
✅ 选 Gitea 如果你
1. 你需要企业功能
- SAML SSO、审计日志、大规模 LDAP 等(Forgejo 需要社区插件或自己实现)
- 可能需要付费支持
2. 你在公司内部使用且需要 MIT 许可证
- 某些公司的法务部门对 GPL 有顾虑
- 可能需要对 Gitea 进行二次开发并闭源发布
3. 你更需要中文社区支持
- Gitea 的中文文档和社区远比 Forgejo 丰富
- 中文用户遇到问题更容易找到答案
4. 你希望最大的生态兼容性
- Gitea 部署量更大,第三方集成更丰富
- 如果你的工作流依赖特定的 Gitea 插件或集成
5. 你信任公司治理模式
- 认为商业公司支持的项目更可持续
- 不介意 open-core 模式
✅ 都不选 如果你
- 需要完整 DevOps 管线 → GitLab
- 极简 Git 托管(无需 Issue/PR)→ Gogs
- 激进的最小主义 → SourceHut
十、Final 总结
技术层面: 两者几乎一样。都是 Go 单二进制、轻量级、功能丰富、部署简单的自托管 Git 平台。
治理层面: 完全不一样。
- Gitea 由香港的商业公司控制,走的是”开源核心 + 付费企业版”路线
- Forgejo 由德国的非营利协会拥有,走的是”100% 社区治理 + 联邦化”路线
功能差异:
- Forgejo 有联邦化(ActivityPub),Gitea 没有
- Gitea 有企业付费功能(SAML、审计日志),Forgejo 没有
- 其余日常功能基本一致
未来趋势:
- Forgejo 正在与 Gitea 加速分岔。2024 年 2 月硬分叉后,两者已不能互换
- Forgejo 在 2024 年 12 月宣布 Gitea 1.22 是最后一个透明升级版本
- Forgejo 的联邦化路线与 Gitea 的”继续充当 GitHub 替代品”路线正在形成越来越大的差异
核心问题: 如果你想自托管一个 Git 平台来”摆脱 GitHub 的控制”,那么:
- 选 Gitea 是在用一个商业公司的开源产品替代另一个商业公司的产品
- 选 Forgejo 是用一个社区治理的非营利产品替代商业产品
如果你自托管的理由之一是不想被平台绑架,那 Forgejo 的治理结构更能匹配这个目标——它本身就不可能被绑架。
附录:重要时间线
时间 事件 2014 Gogs 发布 2016-11 Gitea 从 Gogs 分叉 2018-09 Codeberg e.V. 在柏林注册成立 2022-10 Gitea 域名/商标被转移到 Gitea Ltd(香港商业公司) 2022-10-25 Gitea 社区公开信发表 2022-12-15 Forgejo 项目在 Codeberg 下正式启动(软分叉) 2023-06 Forgejo 治理仓库决议接受 copyleft 贡献 2024-02-16 Forgejo 宣布成为硬分叉 2024-08 Forgejo v9.0 发布,许可证从 MIT 切换到 GPL v3+ 2024-12 Forgejo 宣布 Gitea 1.22 为最后一个透明升级版本 2025 联邦化功能逐步落地(star、unstar、关注) 2025-11 Codeberg 达到 300K+ 仓库、200K+ 用户 2026-04 荷兰政府 code.overheid.nl 基于 Forgejo 上线 2026-05 Forgejo v15 发布,Actions 支持 JWT 联邦身份 2026-06 Fedora 项目宣布用 Forgejo 替换 Pagure 参考来源
- Forgejo 官方对比页
- Forgejo 官方 FAQ
- Forgejo Governance 仓库
- LWN: Forgejo makes a full break from Gitea (2024-02)
- LWN: Forgejo changes license to GPLv3+ (2024-08)
- Forgejo: Forking forward (2024-02)
- Forgejo: Gitea 1.22 is the last transparent upgrade (2024-12)
- Forgejo: Now copyleft, just like Git (2024-08)
- Forgejo 月报 – May 2026
- Forgejo 月报 – June 2025
- FOSDEM 2025: Federation in Forgejo 演讲
- Wikipedia: Forgejo
- Wikipedia: Codeberg
- Gitea 社区公开信
- Contabo: Gitea vs Forgejo 2026
- ServerSpan: Gitea vs Forgejo 2026
- ValeByte: Gitea vs Forgejo 2026
- European Purpose: Forgejo Review 2026
-
- 抱歉,回覆主題必需先登入。