MinIO已死,MinIO万岁
我正在开发 DocFlow,它是一个完整的 AI 全栈协同文档平台。该项目融合了多个技术栈,包括基于
Tiptap的富文本编辑器、NestJs后端服务、AI集成功能和实时协作。在开发过程中,我积累了丰富的实战经验,涵盖了Tiptap的深度定制、性能优化和协作功能的实现等核心难点。
如果你对 AI 全栈开发、Tiptap 富文本编辑器定制或 DocFlow 项目的完整技术方案感兴趣,欢迎加我微信 yunmz777 进行私聊咨询,获取详细的技术分享和最佳实践。
很多人第一次打开 OpenClaw,会下意识把它当成"接在微信或 Slack 上的聊天机器人"。这种理解只对了一半。从架构上看,OpenClaw 更像一个网关:它站在你和一堆能力之间,负责路由、鉴权、记忆和工具调用。真正决定你能做多少事的,不是对话框有多好看,而是背后接了多少"身体"——也就是 Skills。
MinIO 的开源仓库已经被正式归档,不再维护。
一个时代结束了,但开源不会那么容易死去。
我创建了一个 MinIO 分支,恢复管理控制台,重建二进制分发管道,让它重新活过来。
如果你正在运行 MinIO,只需要将 minio/minio 替换为 pgsty/minio 即可。
其他一切保持不变(CVE 已修复,管理控制台 GUI 也回来了)。
死亡证明
2025 年 12 月 3 日,MinIO 在 GitHub 上宣布进入 "维护模式"。我在 MinIO 已死 一文中写过这件事。
2026 年 2 月 12 日,MinIO 又把仓库状态从 "维护模式" 更新为 "不再维护",随后直接将仓库归档。
仓库被设为只读,不再接受 PR、Issue 或任何形式的贡献。一个拥有 6 万星标、超过 10 亿次 Docker 拉取的项目,就这样变成了一块数字墓碑。
如果说 2025 年 12 月是临床死亡,那么 2026 年 2 月的这次提交就是正式的死亡证明。
2026 年 2 月 14 日,一篇广为流传的文章《MinIO 如何从开源宠儿变成警示故事》给出了完整的时间线:MinIO如何从开源宠儿变成警示故事。
Percona 创始人 Peter Zaitsev 也在 LinkedIn 上,对开源基础设施的可持续性提出了担忧。
国际社区的共识很明确:
MinIO 完了。
回顾过去几年的时间线,这并不是一次突然的事故,而是一个缓慢、有意、循序渐进的关停过程:
| 日期 | 事件 | 性质 |
|---|---|---|
| 2021-05 | Apache 2.0 → AGPL v3 | 许可证变更 |
| 2022-07 | 对 Nutanix 采取法律行动 | 许可证执行 |
| 2023-03 | 对 Weka 采取法律行动 | 许可证执行 |
| 2025-05 | 从 CE 中移除管理控制台 | 功能限制 |
| 2025-10 | 停止二进制和 Docker 分发 | 供应链切断 |
| 2025-12 | 宣布维护模式 | 生命周期结束信号 |
| 2026-02 | 仓库归档,不再维护 | 项目结束 |
一家估值 10 亿美元、共融资 1.26 亿美元的公司,用了整整五年时间,有条不紊地拆解了自己一手建立的开源生态系统。
但开源永存
通常到这里,故事就结束了,大家集体叹口气,然后继续各奔东西。
但我想讲一个不太一样的故事。这不是讣告,而是复活。
MinIO 公司可以归档一个仓库,但他们无法归档 AGPL 授予社区的权利。
讽刺的是,AGPL 本来是 MinIO 自己选的。他们从 Apache 2.0 切换到 AGPL,是为了在和 Nutanix、Weka 的纠纷中增加筹码,在保留 "开源" 标签的同时,把许可证当成法律武器。但开源许可证是一把双刃剑,同样的许可证也确保了社区有权分叉。
一旦代码以 AGPL 形式发布,许可证就不可撤销。你可以把仓库设成只读,但不能收回已经授予社区的权利。
这正是开源许可证设计的精妙之处,公司可以放弃一个项目,但不能带走那份代码。
所以,MinIO 已死,但 MinIO 也可以重生。
当然,分叉本身是最简单的部分。任何人都可以点一下 Fork 按钮。
真正的问题不是 "能不能分叉",而是 "有没有人愿意、也有能力,把它当作生产系统的一部分长期维护下去"。
我为什么要这么做?
一开始,我并没有打算接下这个担子。MinIO 进入维护模式之后,我等了几周,希望能看到有社区成员站出来。
但我始终没有等到那个人,于是只好自己上。
先说一点背景,我在维护 Pigsty,这是一个带电池的 PostgreSQL 发行版,内置了 460 多个扩展,并为 14 个 Linux 发行版 做了交叉构建。我还维护了 290 个 PG 扩展、若干 PG 分支 和数十个 Go 项目(Victoria、Prometheus 等)在所有主流平台上的打包。在这样一条流水线上再接一个项目,说实话压力不算太大。
我对 MinIO 也很熟。早在 2018 年,我们就在探探内部运行了一个 MinIO 分支(当时还是 Apache 2.0),托管了大约 25 PB 的数据,是当时中国最早、规模也最大的一批 MinIO 部署之一。
更重要的是,MinIO 也是 Pigsty 中的一个可选模块,很多用户在生产环境里,把它作为 PostgreSQL 的默认备份仓库。
我们确实认真评估过几个替代方案,但没有任何一个,能在现有工作流上做到对 MinIO 的平滑替换。
更多配置细节可以参考:pigsty.io/docs/minio/…
我们自己就在用 MinIO,所以让这条供应链活下去,对我们来说根本不是选项,而是硬性要求。
早在 2025 年 12 月,MinIO 刚宣布进入维护模式时,我就已经构建了包含 CVE 修复 的二进制包,并第一时间在生产中完成了切换。
我们已经做了什么
截至今天,我们已经完成了三件事。
1. 恢复管理控制台
这大概是最让社区糟心的一次改动。
2025 年 5 月,MinIO 从社区版中移除了完整的管理控制台,只留下一款简陋的对象浏览器。
用户管理、存储桶策略、访问控制、生命周期管理,这些东西是一夜之间统统消失的。想要它们回来?唯一途径是买企业版(大约十万美元起步)。
我们把它完整地带回来了。
更有意思的是,这甚至不需要任何逆向工程。
你只需要把 minio/console 子模块恢复到之前的版本。
他们当时的做法,是通过替换依赖版本,用一个阉割版控制台替换了完整版。真正的代码始终都还在那儿。
可以在这里看到具体的改动: github.com/pgsty/minio…
我们现在已经把完整控制台放回来了。
2. 重建二进制分发
2025 年 10 月,MinIO 停止分发预构建的二进制文件和 Docker 镜像,只保留源码。对用户的官方回答只有一句:"使用 go install 自己构建"。
但对于绝大多数用户来说,开源软件的价值远远不止是一份源码副本,真正关键的是稳定可靠的供应链。
你需要的是可以直接塞进 Dockerfile、Ansible playbook 或 CI 流水线里的稳定工件,而不是在每次部署前,都被迫先装一套 Go 编译器。
所以我们重建了分发体系:
| 项目 | 说明 |
|---|---|
| Docker 镜像 |
pgsty/minio 已在 Docker Hub 上线,直接运行 docker pull pgsty/minio 即可使用。 |
| RPM、DEB 包 | 为主流 Linux 发行版构建,遵循 MinIO 原本的打包规范。 |
| 自动化构建流水线 | 在 GitHub 上提供完全自动化的构建流程,持续产出稳定的构建工件。 |
如果你现在使用的是 Docker,只需要把 minio/minio 换成 pgsty/minio。
对于原生 Linux 安装,可以从 GitHub Release 页面获取 RPM、DEB 包。
你也可以使用 pig(PG 扩展包管理器)进行一键安装,或者配置 pigsty-infra APT、DNF 仓库,从中直接安装:
curl https://repo.pigsty.io/pig | bash
pig repo add infra -u
pig install minio
装完之后,它就像你熟悉的那份 MinIO 一样工作。
3. 恢复社区版文档
MinIO 的官方文档同样在慢慢 "消失"。不少旧链接已经开始被重定向到它们的新商业产品 AIStor。
我们分叉了 minio/docs,修复了损坏的链接,恢复了被删掉的控制台文档,并把整个站点部署在 这里。
文档仍然沿用原始项目的 CC Attribution 4.0 许可证,并在此基础上持续维护。
承诺
有几件事值得提前说清楚,以免大家产生不必要的期待。
没有新功能,只保证供应链连续性
作为一款 S3 兼容的对象存储,MinIO 已经算是功能完整了,它更像是一款 "写完了" 的软件。
它现在不缺新功能,真正缺的是一个稳定、可靠、长期可用的构建。
我这边已经有 PostgreSQL 来承担那些更复杂的活儿,所以我并不需要什么 S3 表、S3 向量之类的附加功能。一个稳定扎实的 S3 核心,就是我全部的诉求。
我们现在做的事情很简单:让你始终能拿到一份可用、完整的 MinIO 二进制,其中既包含管理控制台,也包含最新的安全修复。
RPM、DEB、Docker 镜像,都会通过自动化流水线持续构建出来,并与现有的 MinIO 部署保持兼容。
在法律和技术允许的边界内,我们会最大程度保留原有的 MinIO 命名和行为。
这是生产构建,不是归档镜像
我们自己就在生产环境中运行这些构建,而且已经 "吃狗粮" 吃了三个月。
一旦有东西出问题,我们会第一时间感受到,并尽快修复。
我搭建这套东西,首要目的是为了 Pigsty 和我们自己的使用,但我也很希望它能顺带帮到更多人。
我会跟踪 CVE,也会修 Bug
如果你在使用过程中遇到问题,欢迎到 pgsty/minio 反馈。
我会尽力修复这些问题,不过请不要把它当成商业 SLA。
考虑到 AI 编码工具大大降低了修复 Bug 的成本,而且我们明确不会往里加新功能,我相信整体维护工作量是可控的。
(你上一次见到新的 MinIO 功能更新是什么时候?)
商标确实麻烦,但有问题再一起解决
免责声明
商标声明:MinIO® 是 MinIO, Inc. 的注册商标。
本项目(pgsty/minio)是在 AGPL 许可证下独立维护的社区分支。
它与 MinIO, Inc. 没有任何关联、背书或商业关系。
本文中 "MinIO" 的使用仅指这款开源软件本身,并不暗示任何形式的商业合作。
AGPLv3 明确赋予我们分叉和分发的权利,但商标法又是另一套体系。
我们已经在各处清晰标注,这是一份由社区独立维护的构建。
如果 MinIO 公司对商标使用提出异议,我们会积极配合,完成重命名(也许会叫 "silo" 或 "stow" 之类的名字)。
在那之前,我们认为在 AGPL 分支中以描述性方式使用原始名称,是合理且有利于用户理解的。此时强行把所有 MinIO 引用全部改名,反而只会让用户更困惑。
AI 已经改变了游戏规则
你可能会问:一个人真的能扛得住这么大的项目吗?
现在已经是 2026 年了,情况和过去不一样。
借助 Claude Code、Codex 之类的工具,在复杂的 Go 项目里定位和修复 Bug 的成本,已经降低了一个数量级。
很多过去需要专职团队才能维护的大型基础设施项目,现在完全可以交给一位有经验的工程师,加上一位靠谱的 AI 副驾驶来共同完成。
在不引入新功能的前提下,维护一份 MinIO 构建,是一项可管理的工作。
真正的关键在于测试和验证。而我们已经有了完整的生产场景,可以在真实流量下持续验证它的兼容性、可靠性和安全性。
想一想,Elon 把 X(原 Twitter)的工程团队缩减到了大约 30 人,这个平台到现在还在运转。 相比之下,维护一个不再加新功能的 MinIO 分支,远没有想象中那么可怕。
这对你意味着什么
如果你只是远远围观 MinIO 的兴衰,这个故事听起来可能像一篇行业八卦。但如果你属于下面几类用户,这个分支和上面这些工作,其实都和你的日常生产环境直接相关。
- 在自建数据中心里,用
MinIO做数据库备份和归档的团队 - 把
MinIO部署在私有云,用来存放用户上传文件、审计日志、模型权重的 SaaS 团队 - 在多云环境里,把
MinIO当作S3兼容层,用来屏蔽底层对象存储差异的基础设施平台 - 需要在离线环境、内网环境中部署
S3存储,但又无法直接使用公有云服务的企业
对这些场景来说,MinIO 不只是一个组件名字,而是一条埋在系统最底层的供应链。一旦这条链路断掉,影响到的就不仅仅是对象存储本身,而是所有依赖它的备份、恢复、扩缩容、容灾和审计流程。
社区分支的目标,就是让这条链不断掉,让你可以像过去一样,用同一套命令行、同一套配置文件、同一套控制台,继续运转你的业务。
当然,如果你的团队已经在大规模使用公有云原生对象存储服务,或者可以轻松把工作负载迁移回 AWS S3、GCS、Azure Blob,那你完全可以把这篇文章当作一段开源史料。真正急需一条可持续供应链的,是那些长期押注在 MinIO 上、又没有简单退路的用户。
如何开始使用 pgsty/minio
如果你已经在生产里跑 MinIO,想要最小代价切换到社区分支,可以从下面几步入手。
- 先在测试环境里起一套新的
pgsty/minio集群,版本尽量与现网保持一致。 - 把现有
MinIO集群的配置文件完整复制过来,重点检查访问密钥、端点地址、挂载路径、证书配置是否一致。 - 使用同一套客户端脚本、备份流程,在测试环境里完整跑一遍你现在依赖的关键工作流,例如数据库全量备份和增量备份、静态资源读写、日志归档等。
- 如果你使用
Docker或Kubernetes,优先从镜像名入手,把minio/minio替换为pgsty/minio,其余参数保持不变,验证容器生命周期和探针是否工作正常。 - 确认测试环境跑通之后,再在生产环境采用渐进式方式替换,可以先切一小部分流量,观察一段时间,再逐步扩大范围。
整个过程中最重要的一点,是保留好回滚路径。无论是通过流量切换、还是通过 Helm 回滚,只要你能在短时间内切回旧版本,就可以放心在真实业务场景中验证新的构建。
直接分叉它
MinIO 公司可以归档一个 GitHub 仓库,但他们无法归档 6 万颗星标背后的真实需求,也无法归档 10 亿次 Docker 拉取背后的依赖拓扑。这些需求不会凭空消失,它们只会自己找到出口。
HashiCorp 的 Terraform 已经被社区分叉成 OpenTofu,而且运行得很好。相比之下,MinIO 的处境甚至更有利,因为 AGPL 对分叉比 BSL 更友好,社区分叉几乎不存在法律灰区。
公司可以放弃一个项目,但开源许可证本来就是为了确保代码不会因此一同消失。
分叉,是开源世界里最强力的咒语之一。当一家公司选择关门时,社区只需要说出那两个字,
分叉它。
参考
免责声明:本文最初由 Claude 从中文版本润色并翻译成英文,此处为在中文版基础上的再整理与更新。