🔥 BRAVE 質押池已上線 — 在錢包搜尋 BRAVE 即可委託

Forgejo vs Gitea:哪个开源自托管的 Git 服务更适合你

    • #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 日,多名贡献者联署发出公开信,要求:

      1. 将域名和商标转移至非营利组织名下
      2. 建立透明的治理结构
      3. 社区参与重大决策

      这些要求被 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)。理由:

      1. 稳定性问题:Gitea “合并了未经测试的海量代码(包含功能或重构),导致重要回归问题”
      2. 治理分歧不可弥合:Gitea 已转向 open-core 模式,社区合作的信任已破裂
      3. 独立性需求:Forgejo 有资金、资源和治理能力独立运营
      4. 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+

      这是两者在代码层面的最显著差异。

       GiteaForgejo
      当前许可证MITGPL v3+(v9.0 起,2024 年 8 月切换)
      v9.0 之前始终 MITMIT(继承自 Gitea)
      许可证含义允许闭源分发、专有衍生品copyleft,要求衍生品也必须开源
      商业友好较高(对闭源二次开发无限制)较低(禁止闭源分发修改版)
      企业版可能性有(Gitea Enterprise,部分闭源)无(所有功能永远开源)

      Forgejo 切换许可证的原因

      Forgejo 官方在 2024 年 8 月宣布切换到 GPL v3+,官方解释了三个理由:

      1. 接纳 copyleft 贡献者(核心原因): 在 MIT 许可证下,Forgejo 无法接受 GPL 等 copyleft 许可证的代码贡献。而许多优秀的开源组件是 GPL 的。切换到 GPL v3+ 后,Forgejo 可以自由复用 copyleft 生态的代码
      2. 依赖项不兼容问题: Forgejo 发现某些依赖项与 MIT 许可证不兼容(例如 CPAL 许可的 citeproc-js、Eclipse 许可的 elkjs),实际上已经使整体变成 AGPL,但许可证声明还是 MIT——这是法律风险。为了消除许可证冲突,选择升级为 GPL v3+ 是更干净的做法。
      3. 防止商业利用漏洞

        “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 选择专注于单实例功能完善和企业功能

      为什么联邦化重要

      想象一下这样的场景:

      1. 你在自己的 Forgejo 实例上有一个私有仓库
      2. Codeberg 上有一个人想给你的仓库提交 PR
      3. 不需要在 Codeberg 上 fork → 跨实例推送 PR
      4. 你可以在自己的实例上审查和合并
      5. 一切通过 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/EE42%+3%
      Gitea28%-5%
      Forgejo18%+15%
      Gogs7%-2%
      其他5%-1%

      关键趋势:

      • Gitea 在失去市场份额(-5%,被 Forgejo 分流)
      • Forgejo 增速最快(+15%),尽管基数较小
      • 轻型平台(Gitea + Forgejo 合计 46%)正在蚕食 GitLab 以外的市场

      注意:这些数据来自 2025 年末的调查,样本偏差可能存在。

      语言生态

       GiteaForgejo
      中文社区✅ 非常大,文档全较小
      英文社区中等
      欧洲社区一般活跃(Codeberg 在德国,荷兰政府采用)
      核心开发语言GoGo

      七、功能深度对比

      共同能力(两者都有,水平基本一致)

      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 部署             ✅

      差异点

      能力GiteaForgejo分析
      ActivityPub 联邦❌ 未计划✅ 开发中(已实现联邦 star、跨实例关注)最显著的功能差异
      开源承诺open-core(部分功能在付费企业版)100% FOSS,所有功能免费Forgejo 无付费墙
      SAML SSO有(企业版)社区插件企业场景 Gitea 友好
      审计日志有(企业版)基础版同上
      大规模部署优化企业客户驱动Codeberg 生产驱动各有侧重
      Actions Runneract runnerForgejo Runner实现细节在偏离
      数据库 SchemaGitea 自有Forgejo 自有已互不兼容
      CI 语法兼容性.gitea/workflows/*.yml.forgejo/workflows/*.yml语法相似但 Runner 实现有差异
      发布周期月/双月版季度 LTS + 滚动更新Forgejo 更强调稳定性
      版本号1.x9.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 RAMSQLite 即可
      小团队(~5 人)1 vCPU + 1 GB RAM建议 PostgreSQL
      中型团队(~20 人)2 vCPU + 2 GB RAMPostgreSQL + CI Runner
      Codeberg 级别集群部署300K+ 仓库规模

      实际上两者完全一致,都是 Go 单二进制,资源占用几乎没有区别。

      数据库支持对比

       GiteaForgejo
      SQLite(开发/小规模)
      PostgreSQL(推荐生产)
      MySQL / MariaDB
      MSSQL❌(不支持)

      Forgejo 在 v15 中已移除 MSSQL 支持。

      部署方式对比

      方式GiteaForgejo
      单二进制
      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 的治理结构更能匹配这个目标——它本身就不可能被绑架。


      附录:重要时间线

      时间事件
      2014Gogs 发布
      2016-11Gitea 从 Gogs 分叉
      2018-09Codeberg e.V. 在柏林注册成立
      2022-10Gitea 域名/商标被转移到 Gitea Ltd(香港商业公司)
      2022-10-25Gitea 社区公开信发表
      2022-12-15Forgejo 项目在 Codeberg 下正式启动(软分叉)
      2023-06Forgejo 治理仓库决议接受 copyleft 贡献
      2024-02-16Forgejo 宣布成为硬分叉
      2024-08Forgejo v9.0 发布,许可证从 MIT 切换到 GPL v3+
      2024-12Forgejo 宣布 Gitea 1.22 为最后一个透明升级版本
      2025联邦化功能逐步落地(star、unstar、关注)
      2025-11Codeberg 达到 300K+ 仓库、200K+ 用户
      2026-04荷兰政府 code.overheid.nl 基于 Forgejo 上线
      2026-05Forgejo v15 发布,Actions 支持 JWT 联邦身份
      2026-06Fedora 项目宣布用 Forgejo 替换 Pagure

      参考来源

  • 抱歉,回覆主題必需先登入。