Gogs vs SourceHut:轻量与极简,自托管 Git 的另类选择
-
-
2026 年 7 月 13 日 上午 1:51 #34120
零、先定位:这两个是什么
在自托管 Git 的生态中,Forgejo 和 Gitea 是”功能完整的 GitHub 替代品”。而 Gogs 和 SourceHut 则走向了完全不同的方向——
Gogs: 极轻量的 Git 托管最小可行产品。只有最核心的功能:仓库、Issue、PR、Wiki。追求”最小化”。
SourceHut: 一套分离式的开发工具链(Git/Mercurial 托管 + CI + 邮件列表 + 工单),UI 几乎不用 JavaScript,工作流基于电子邮件。追求”极简 + Unix 哲学”。
两者都比 Forgejo/Gitea 更轻、更小,但它们的”轻”的含义完全不同:
Gogs SourceHut 轻在何处 功能少,交互动线短 界面极简,无 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 工作流 无 代码审查 UI PR 的基础功能有,但不如 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-64111 CVSS 9.3(Critical) 通过 symlink 注入 .git/config 实现 RCE CVE-2025-64175 CVSS 7.7(High) 2FA 恢复码可跨账号使用 CVE-2026-24135 CVSS 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 同时支持 Git 和 Mercurial(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 全面对比
宏观比较
维度 Gogs SourceHut 本质上是什么 最小化的 Git 托管 一套 Unix 哲学的开发工具套件 核心哲学 “无痛”(Painless) “高效、尊重用户” 目标用户 个人/极小组件,只要 Git Unix 老手、邮件流派开发者 轻量 极轻(64MB RAM) 轻(但需多个服务组件) 复杂度 极简单(单二进制) 中等(多服务组件) 学习曲线 低 高(邮件工作流需要适应) 自托管难度 极低 高(完整的 SourceHut 套件部署复杂) 功能对比
功能 Gogs SourceHut 分析 Git 托管 ✅ ✅ 核心功能 Mercurial 托管 ❌ ✅ SourceHut 独有 SSH/HTTP(S) 访问 ✅ ✅ 两者都支持 Issue 跟踪 ✅ 基础 ✅ todo.sr.ht(仅任务) SourceHut 的工单系统很特殊 Pull Request ✅ 基础 ✅ 邮件补丁驱动 体验完全不同 Wiki ✅ ❌ Gogs 有,SourceHut 无 Web UI 传统 Web UI 极简零 JS UI 理念截然相反 CI/CD ❌ ✅ builds.sr.ht SourceHut 有构建系统 代码审查 基础 ✅ 邮件列表补丁审查 SourceHut 的审查体验更强大 邮件列表 ❌ ✅ lists.sr.ht SourceHut 核心功能 包注册表 ❌ ❌ 两者都没有 项目管理/看板 ❌ ❌ 两者都没有 组织管理 ✅ ✅ 都有 Webhooks ✅ 多平台 ✅ 都有 Git Hooks ✅ ✅ 都有 LFS ✅ ❌ Gogs 支持 LFS API ✅ 实验性 ✅ 完整 SourceHut API 更成熟 LDAP/OAuth 有限 ✅ SourceHut 支持更好 无需 JS 可用 部分 全部 SourceHut 完胜 无需账号可参与 ❌ ✅ SourceHut 邮件驱动可无账号提交补丁 跨平台 所有 Go 平台 Linux 为主 Gogs 更广泛(支持 Windows) 资源需求对比
指标 Gogs SourceHut 最小 RAM ~64 MB(官方称) ~256 MB+(单组件) 推荐 RAM 256 MB 1-2 GB(完整套件) 数据库 SQLite / PostgreSQL / MySQL PostgreSQL 外部依赖 几乎为零 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 更高效。社区与开发
维度 Gogs SourceHut 主要维护者 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 如果你
- 你只需要最基础的 Git 托管
- 纯个人使用或 2-3 人小团队
- 不需要 CI/CD、不需要包管理、不需要看板
- 你的硬件极其有限
- 树莓派、NAS、128MB RAM 的旧机器
- 任何其他方案都跑不动
- 你想要最简单的部署和维护
- 下载 → 运行 → 完成
- 不想搞 Docker Compose 或数据库配置
- 你是 Gogs 老用户,用得挺好
- 没有迁移的动力
- 安全更新仍然有维护
选 SourceHut 如果你
- 你认同邮件工作流
- 你已经在用或愿意学习
git send-email - 你觉得邮件列表比 Web 讨论更高效
- 你已经在用或愿意学习
- 你是极简主义者
- 讨厌臃肿的 Web 界面
- 厌恶 JavaScript 滥用
- 希望 UI 加载速度像本地文件一样快
- 你同时使用 Git 和 Mercurial
- SourceHut 是唯一原生支持两者的主流 forge
- 你重视隐私到偏执级别
- 零追踪、零广告、零 AI
- 所有功能在禁用 JS 的情况下可用
- 你不在乎”用的人多不多”
- 你已经有了固定的开发者圈子
- 不需要 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 是对开发的干扰,我想回到邮件的黄金时代
参考来源
-
- 抱歉,回覆主題必需先登入。