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

Gogs vs SourceHut:轻量与极简,自托管 Git 的另类选择

    • #34120

      零、先定位:这两个是什么

      在自托管 Git 的生态中,Forgejo 和 Gitea 是”功能完整的 GitHub 替代品”。而 GogsSourceHut 则走向了完全不同的方向——

      Gogs: 极轻量的 Git 托管最小可行产品。只有最核心的功能:仓库、Issue、PR、Wiki。追求”最小化”

      SourceHut: 一套分离式的开发工具链(Git/Mercurial 托管 + CI + 邮件列表 + 工单),UI 几乎不用 JavaScript,工作流基于电子邮件。追求”极简 + Unix 哲学”

      两者都比 Forgejo/Gitea 更轻、更小,但它们的”轻”的含义完全不同:

       GogsSourceHut
      轻在何处功能少,交互动线短界面极简,无 JS,模组分离
      追求什么易部署、低资源、少维护Unix 哲学、邮件驱动的纯粹体验
      为什么选它“我就想要个能跑 Git 的地方”“我想要最好的邮件协作体验”

      一、Gogs:一切的起点

      基本信息

      项目内容
      创始人Unknwon(龚国成)
      首次发布2014 年
      语言Go
      许可证MIT
      GitHub Stars~47,700
      最新稳定版v0.14.3(2026 年 6 月)

      历史意义

      Gogs 是第一个用 Go 语言编写的轻量级自托管 Git 服务。它在 2014 年开创了”下载一个二进制文件就能跑起 Git 服务”的模式,在此之前,搭建 Git 服务要么用笨重的 GitLab,要么用手配的纯 Git + SSH。

      它的核心价值主张至今没有变:Painless(无痛)。官方文档依然写着:

      “The Gogs project aims to build a simple, stable and extensible self-hosted Git service that can be set up in the most painless way.”

      架构与特点

      极致轻量:

      • 单 Go 二进制,无外部依赖
      • 官方声称仅需 64 MiB RAM + ¼ vCPU 即可运行
      • 能在树莓派和 NAS 上跑
      • 支持 SQLite(无需安装数据库)

      跨平台:

      • 支持 Linux、macOS、Windows、ARM
      • 提供 Docker 镜像

      功能列表

      Gogs 的功能集有意精简,只保留最基本的协作功能:

      功能Gogs
      Git 托管(SSH/HTTP/HTTPS)
      Issue 跟踪
      Pull Request
      Wiki
      Webhooks(Slack/Discord/DingTalk)
      仓库镜像/迁移
      Git Hooks
      组织/团队管理
      Git LFS
      受保护分支
      API✅(实验性)
      用户/仓库仪表盘
      活动时间线

      刻意不包含:

      没有的功能说明
      CI/CD无内置 CI,需配合外部 Jenkins/Drone 等
      Package Registry不包含
      项目看板/Kanban
      Actions 工作流
      代码审查 UIPR 的基础功能有,但不如 Forgejo 完善
      LDAP/OAuth有限支持
      联邦化

      开发节奏

      这是 Gogs 最大的痛点之一。

      Gogs 由 Unknwon 单核心维护,发展速度极慢。举例:

      • 从 v0.12(2020 年)到 v0.13(2024 年)隔了约 4 年
      • 社区 PR 合并缓慢——这正是 2016 年 Gitea 分叉的核心原因
      • 到 2026 年仍在 v0.14.x,而 Gitea 已到 v1.23,Forgejo 已到 v15

      但 Gogs 仍在维护并有更新

      • 2026 年 6 月发布了 v0.14.3(安全修复)
      • 有活跃的安全团队处理漏洞(2025-2026 年修复了多个 CVE,包括 RCE 和 2FA 绕过)
      • Docker 镜像也在更新

      不过客观来说,Gogs 目前更适合作为”个人 Git 仓库”而非”团队协作平台”

      安全漏洞历史

      Gogs 在 2025-2026 年被曝出多个高危漏洞:

      CVE严重程度问题
      CVE-2025-64111CVSS 9.3(Critical)通过 symlink 注入 .git/config 实现 RCE
      CVE-2025-64175CVSS 7.7(High)2FA 恢复码可跨账号使用
      CVE-2026-24135CVSS 7.2(High)Wiki 路径遍历导致文件删除

      这些漏洞在 v0.13.4 和 v0.14.0-dev 后已修复。但这也反映出 Gogs 的小团队在安全审计方面资源有限。


      二、SourceHut:黑客的锻造厂

      基本信息

      项目内容
      创始人Drew DeVault
      首次发布2018 年
      总部阿姆斯特丹,荷兰
      代码许可证AGPL-3.0 / MIT(各组件不同)
      核心哲学Unix 哲学 + 邮件驱动 + 零 JS

      哲学:与 GitHub 彻底不同

      SourceHut 不是一个”GitHub 克隆”。它的设计出发点完全不同。Drew DeVault(也是 Sway 和 wlroots 的创始人)明确表示:

      SourceHut 追求的是效率尊重用户,而不是”用户增长”和”参与度”。

      具体来说:

      • 完全没有 JavaScript:所有功能在禁用 JS 的浏览器中正常工作
      • 没有 AI 功能:明确拒绝 Copilot 类功能
      • 没有追踪和分析:不收集用户行为数据
      • 没有广告
      • 许多功能无需注册账号即可使用
      • 100% 免费开源软件

      架构:一组分离的工具(Unix 哲学)

      SourceHut 将传统”全功能 forge”拆解为一组独立的子服务。这与 Unix 的”做一件事并做好”哲学一致:

      子域名功能说明
      git.sr.htGit 托管公共/私有/未列出仓库,细粒度访问控制
      hg.sr.htMercurial 托管同时支持 Mercurial——这是 SourceHut 的独特卖点
      builds.sr.htCI/CD在隔离 VM 中运行构建,支持多种 Linux 发行版和 BSD
      lists.sr.ht邮件列表补丁审查、论坛讨论、可搜索归档
      todo.sr.ht工单跟踪仅可操作的任务——不讨论、不问问题、不重复
      meta.sr.ht账户和设置统一的用户管理

      关键设计理念:这些服务既可以一起使用,也可以独立使用。你不一定要用 SourceHut 的 CI 才能用它的 Git 托管。

      工作流:邮件驱动

      这是 SourceHut 与其他所有 Git 平台最大的不同。

      在 GitHub/Forgejo/Gitea 上,工作流是:

      在 Web UI 上创建 Issue → 在 Web UI 上 Fork → 在 Web UI 上开 PR → Web UI 审查

      在 SourceHut 上,工作流是:

      发送邮件描述问题 → git send-email 发送补丁 → 邮件列表讨论 → 通过邮件应用补丁

      这意味着:

      • 不依赖 Web UI:你可以全程用命令行 + 邮件完成所有操作
      • 补丁即讨论:每个补丁就是一封邮件,在邮件线程中审查和评论
      • 不需要账号也能参与:任何人都可以通过邮件提交补丁
      • 所有内容存档:邮件列表本身就是可搜索的项目档案

      CI/CD:builds.sr.ht

      SourceHut 的 CI 系统有独特的亮点:

      • 完全虚拟化的 VM 中运行(非容器)
      • 支持多种架构:x86_64、aarch64
      • 支持多种 OS:Alpine、Arch Linux、Debian、Fedora、FreeBSD、NetBSD、OpenBSD、Ubuntu、NixOS 等
      • 可以 SSH 进入失败的构建进行调试
      • 可以从命令行提交临时构建(无需推送代码)
      • 支持构建后触发通知(邮件、Webhook)

      Zig 语言作者 Andrew Kelley 的评价:

      “This CI experience is leagues ahead of all others. Resubmitting builds and SSH’ing in is saving me multiple hours.”

      托管的版本控制系统

      SourceHut 同时支持 GitMercurial(HG)。

      Git 的很多平台都支持。Mercurial 的支持则极为罕见——SourceHut 是唯一同时原生支持这两种 VCS 的主流 forge。

      Web 界面极简到极致

      SourceHut 的 UI 设计理念:

      • 页面通常 < 50KB
      • 不使用任何前端框架
      • 表单使用标准 HTTP POST 提交
      • 导航使用标准超链接
      • 每个页面的 HTML 可以轻松阅读和解析

      这不仅是哲学选择,也有实际好处:

      • 在网速慢的环境下依然可用
      • 屏幕阅读器友好
      • 没有 JS 攻击面(安全)
      • 浏览器资源消耗极低

      商业模式

      SourceHut 是一个付费服务(不是传统的免费开源托管):

      定价费用说明
      免费€0有限的公共仓库功能
      基础~€20/年完整的个人开发需求
      高级~€100/年更多 CI 分钟和资源

      不收钱的原则:

      • 不融资(Drew DeVault 明确拒绝 VC)
      • 不做广告
      • 不卖用户数据
      • 不提供企业版付费墙

      但所有代码本身是开源/自托管的。你可以:

      • 自己部署完整的 SourceHut
      • 免费使用 sr.ht 的有限功能
      • 付费获得更多功能和 CI 额度

      限制规定

      SourceHut 的服务条款中明确禁止:

      • 加密货币/区块链项目
      • 色情内容
      • 暴力内容

      这在社区中有争议——有人认为这是一个付费服务不应有的限制,有人则表示支持。

      争议

      Drew DeVault 是一个极其有主见的人。他的博客涉及大量争议话题(FOSS 伦理、政治、ACAB、对 AI 的强烈批评等)。这导致部分开发者拒绝使用 SourceHut。

      但另一方面,这也吸引了一群认同他价值观的核心用户——SourceHut 的用户群体虽然小,但极为忠诚。

      知名用户

      虽然没有 GitHub 级的规模,SourceHut 被许多重要开源项目使用:

      • Zig 编程语言(Andrew Kelley)
      • postmarketOS(Martijn Braam)
      • Sway / wlroots(Drew 自己的项目)
      • 大量小型 FOSS 项目

      三、Gogs vs SourceHut 全面对比

      宏观比较

      维度GogsSourceHut
      本质上是什么最小化的 Git 托管一套 Unix 哲学的开发工具套件
      核心哲学“无痛”(Painless)“高效、尊重用户”
      目标用户个人/极小组件,只要 GitUnix 老手、邮件流派开发者
      轻量极轻(64MB RAM)轻(但需多个服务组件)
      复杂度极简单(单二进制)中等(多服务组件)
      学习曲线高(邮件工作流需要适应)
      自托管难度极低高(完整的 SourceHut 套件部署复杂)

      功能对比

      功能GogsSourceHut分析
      Git 托管核心功能
      Mercurial 托管SourceHut 独有
      SSH/HTTP(S) 访问两者都支持
      Issue 跟踪✅ 基础✅ todo.sr.ht(仅任务)SourceHut 的工单系统很特殊
      Pull Request✅ 基础✅ 邮件补丁驱动体验完全不同
      WikiGogs 有,SourceHut 无
      Web UI传统 Web UI极简零 JSUI 理念截然相反
      CI/CD✅ builds.sr.htSourceHut 有构建系统
      代码审查基础✅ 邮件列表补丁审查SourceHut 的审查体验更强大
      邮件列表✅ lists.sr.htSourceHut 核心功能
      包注册表两者都没有
      项目管理/看板两者都没有
      组织管理都有
      Webhooks✅ 多平台都有
      Git Hooks都有
      LFSGogs 支持 LFS
      API✅ 实验性✅ 完整SourceHut API 更成熟
      LDAP/OAuth有限SourceHut 支持更好
      无需 JS 可用部分全部SourceHut 完胜
      无需账号可参与SourceHut 邮件驱动可无账号提交补丁
      跨平台所有 Go 平台Linux 为主Gogs 更广泛(支持 Windows)

      资源需求对比

      指标GogsSourceHut
      最小 RAM~64 MB(官方称)~256 MB+(单组件)
      推荐 RAM256 MB1-2 GB(完整套件)
      数据库SQLite / PostgreSQL / MySQLPostgreSQL
      外部依赖几乎为零Redis + PostgreSQL + 多个服务进程
      部署方式单二进制多个服务分别部署
      Docker✅(但复杂)
      首次安装时间~5 分钟数小时(完整套件)

      Gogs 在”最小资源需求”这个维度上无人能敌。64MB RAM 并非虚言——它确实能在树莓派 Zero 或 256MB 的旧 VPS 上运行。SourceHut 由于是多服务架构,需要的资源更多。

      工作流对比

      Gogs 的工作流(与 GitHub 类似):

      Web UI 或 Git CLI → 浏览器操作

      学习成本接近零。如果会用 GitHub,就会用 Gogs。

      SourceHut 的工作流(邮件驱动):

      终端 → git send-email → 邮件列表 → 补丁审查 → git am

      学习成本高。需要熟悉 git send-email、邮件列表礼仪、补丁格式等。但一旦上手,很多用户认为它比 Web UI 更高效。

      社区与开发

      维度GogsSourceHut
      主要维护者Unknwon(单核心)Drew DeVault + 团队
      贡献者规模中等
      发布节奏极慢(年/跨年)活跃(季度更新)
      社区规模大但被动(47K stars)小但活跃
      中文社区大(国人项目)几乎没有
      英文社区中等活跃
      用户活跃度低(多数用户”装完即走”)高(铁杆用户多)
      2026 年维护状态✅ 仍在维护(v0.14.3)✅ 活跃开发(Q2 2026 月报)

      四、安装体验对比

      Gogs 安装

      # Linux amd64
      wget https://github.com/gogs/gogs/releases/download/v0.14.3/gogs_v0.14.3_linux_amd64.tar.gz
      tar -xzf gogs_v0.14.3_linux_amd64.tar.gz
      cd gogs
      ./gogs web
      
      # 或者 Docker
      docker run -d --name=gogs -p 3000:3000 -p 22:22 gogs/gogs

      打开浏览器 → 首次运行配置(数据库、域名等)→ 开始使用。整个过程不超过 5 分钟。

      SourceHut 安装

      SourceHut 由多个独立服务组成,完整自托管需要部署:

      meta.sr.ht → 账户管理
      git.sr.ht  → Git 托管
      hg.sr.ht   → Mercurial 托管(可选)
      builds.sr.ht → CI
      lists.sr.ht  → 邮件列表
      todo.sr.ht   → 工单

      每个服务都是独立的 Python 应用,需要:

      • PostgreSQL 数据库(每个服务独立数据库)
      • Redis
      • 反向代理(nginx/Caddy)
      • 域名配置(每个子域名一个服务)
      • email 发送基础设施

      Drew DeVault 在博客中提供了部署指南,但面向生产环境的完整部署耗时以天计

      注意: SourceHut 的商业模式是”付费使用托管服务”。自托管是可行的(100% 开源),但这不是它提倡的主要使用方式。大多数用户选择使用 sr.ht 托管服务(付费),而不是自托管。


      五、在免 JavaScript 革命中的定位

      SourceHut 在”无 JS 可运行”这一点上,在所有主流 forge 中独占鳌头

      平台JS 需不需要无 JS 体验
      SourceHut完全不需要✅ 所有功能均可正常工作
      Gogs依赖 JS(部分 UI 需要)⚠️ 基本功能可用,但不完整
      Gitea/Forgejo依赖 JS(Vue.js)❌ 无 JS 基本不可用
      GitLab严重依赖❌ 无 JS 不可用
      GitHub严重依赖❌ 无 JS 几乎不可用

      SourceHut 是唯一一个所有功能都不需要 JavaScript 的主流 forge(截至 2026 年)。


      六、选型建议

      选 Gogs 如果你

      1. 你只需要最基础的 Git 托管
        • 纯个人使用或 2-3 人小团队
        • 不需要 CI/CD、不需要包管理、不需要看板
      2. 你的硬件极其有限
        • 树莓派、NAS、128MB RAM 的旧机器
        • 任何其他方案都跑不动
      3. 你想要最简单的部署和维护
        • 下载 → 运行 → 完成
        • 不想搞 Docker Compose 或数据库配置
      4. 你是 Gogs 老用户,用得挺好
        • 没有迁移的动力
        • 安全更新仍然有维护

      选 SourceHut 如果你

      1. 你认同邮件工作流
        • 你已经在用或愿意学习 git send-email
        • 你觉得邮件列表比 Web 讨论更高效
      2. 你是极简主义者
        • 讨厌臃肿的 Web 界面
        • 厌恶 JavaScript 滥用
        • 希望 UI 加载速度像本地文件一样快
      3. 你同时使用 Git 和 Mercurial
        • SourceHut 是唯一原生支持两者的主流 forge
      4. 你重视隐私到偏执级别
        • 零追踪、零广告、零 AI
        • 所有功能在禁用 JS 的情况下可用
      5. 你不在乎”用的人多不多”
        • 你已经有了固定的开发者圈子
        • 不需要 GitHub 那样的社交网络效应

      都不选 如果你

      • 需要完整的 DevOps 管线 → 选 GitLab 或 Forgejo Actions
      • 需要 GitHub 体验的替代品 → 选 Forgejo 或 Gitea
      • 既要轻又要功能全 → 选 Forgejo(180MB RAM 就够跑)
      • 需要大规模团队协作 → 选 GitLab EE

      七、四款自托管 Git 服务全景图

      将 Gogs、SourceHut、Forgejo、Gitea 放在一起看,它们占据了不同的生态位:

      功能丰富
          ↑
          │
          │   GitLab CE/EE (完整 DevOps,但重)
          │
          │   Gitea / Forgejo (功能齐全的 GitHub 替代)
          │
          │   SourceHut (邮件驱动 Unix 哲学)
          │
          │   Gogs (最小 Git 托管)
          │
          └────────────────────────────────────────→ 资源占用少            资源占用多
      轻量级平台横轴:
          Gogs        SourceHut    Forgejo/Gitea    GitLab
        <──────────┼─────────────┼────────────────┼──────────>
        64MB RAM    256MB+ RAM    512MB RAM        4GB+ RAM
        单二进制     多服务         单二进制          多服务
        无 CI       有 CI         有 CI            有 CI

      用一句话概括:

      平台一句话
      Gogs最轻量的”能用就行”——我在树莓派上只想 push/pull
      SourceHut最极客的”这才是我想要的”——邮件补丁 + 零 JS
      Forgejo最放心的”自由软件”——社区治理 + 联邦化
      Gitea最务实的”大家都在用”——MIT 许可 + 企业功能

      八、总结

      Gogs 和 SourceHut 代表了两个完全不同的精简方向

      Gogs 的精简是”功能上做减法”: 它故意不实现 CI/CD、包管理、看板等,从而换取极低的部署成本和维护负担。它不为”更好的开发体验”做文章,只为”最简单的 Git 托管”服务。

      SourceHut 的精简是”体验上做减法”: 它功能其实不少(CI、邮件列表、工单、代码审查),但在交互上选择了最极简的方式——无 JS、邮件驱动、Unix 工具链。它追求的不是”功能少”,而是”不要用不必要的复杂度干扰开发”。

      两者的共同点是:都不适合”想要 GitHub 体验”的用户。但如果你恰好认同它们的理念,它们能提供 GitHub 和 GitLab 永远给不了的体验。

      Gogs 的终极问题:我需要在旧电脑上托管几个仓库,不想折腾 SourceHut 的终极问题:Web UI 和 JS 是对开发的干扰,我想回到邮件的黄金时代


      参考来源

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