2023 年 4 月,Directus 发了 10.0.0,这个版本里只改了一个文件------LICENSE。主项目的许可从 GPL v3 换成了 BSL 1.1。当时发布说明里写明,这是该版本唯一的改动,官方特意不想把这件事藏起来。三年后的 2026 年 5 月,v12 又换了一次,换成 MSCL。
很多团队这时候才发现:自己用了好几年的"开源 CMS",其实早就不算开源软件了。PHP 那边的坑多半是"免费下载、商用要交钱",Node 这边不长这样------它更多是用着用着许可证换了 ,和开源核心配一个商业版这两类。
一、先分清:它是软件还是服务
Contentful、Sanity、Storyblok、Prismic 这几个名气很大,但它们是 SaaS 服务,不是开源软件------代码不在你手上,数据存在别人的服务器上,没有"自己部署"这个选项。它们不在本系列的清单里。
这一步在 Node 系特别容易跳过:headless CMS 这个词底下,SaaS 和自托管是混着叫的,宣传页长得也差不多。先问一句"它给不给一份能自己跑起来的代码",能省掉后面一堆无用功。
二、六个能自己部署的
Node.js 这一脉的主流形态是 headless------内容只管存和出 API,页面长什么样交给前端。下面六个按"你会因为什么想起它"排,都能自己部署。
每个系统后面标了最近一次正式版的时间。成熟项目本来就不靠发版刷存在感,看到停在半年前先别急着下结论。真正要警惕的是官方自己宣布不再加新功能,那是准归档,用的人要么自己 fork,要么换。
1. 要一个功能最全的后台 → Strapi(MIT,最新正式版 5.57.0/2026-10)
开源 headless CMS 里用得最广的一个,法国团队开发。管理后台是同类里做得最完整的:内容类型可视化建模、媒体库、角色权限都齐,REST 和 GraphQL 双接口开箱就有,插件生态丰富。
注意它的双许可结构 :仓库根 LICENSE 里写得很直白------ee/ 目录下的代码算企业版,走另一份许可;ee/ 之外(也就是社区版)是 MIT,可以免费商用、随便改。自托管用社区版,没有任何授权费。规划功能时别把 ee/ 里那些当成开源的。官方另有 Strapi Cloud 托管服务,那是另一笔钱。
2. 要接一个已经存在的数据库 → Directus(源码可得,非开源软件;最新正式版 12.5.0/2026-10)
把任意 SQL 数据库直接映射成 API 和后台,这是它的招牌能力------不用定义模型,连上现有库就能用,接老系统特别省事。功能全面,权限、工作流、自动化都能配。
但它现在不是开源软件,这点必须说清楚。 协议换过两次,前后用了三种:2023 年 4 月的 10.0.0 从 GPL v3 换成 BSL 1.1;2026 年 5 月的 v12 又换成 MSCL(基于 Fair Core License 的源码可得许可)。
规则是这样的:年营收低于 500 万美元、且员工少于 50 人的个人和组织,可以完整免费使用(官方叫 Open Innovation Grant);超过这个门槛的,还有一个免费但功能受限的 Core 层可以探索和构建;高级企业功能(SCIM、离线模式这些)进了付费层。另外每个版本满 4 年后会自动转成 GPL v3,SDK 一直是 MIT。
唯一的使用限制是"不能直接拿它做个竞品去卖"------托管它、在它上面做产品、围绕它提供服务,都不受限。中小团队照常用,基本不用掏钱;上规模了要按门槛算成本。
Directus 在回顾这次换证的文章里写得很坦率:他们清楚 BSL 并不满足 OSI 开源定义的十条标准,只是认为可持续的开源需要另一种平衡。这话由项目方自己写出来,比任何第三方争论都有说服力。
3. 前端工程师主导,后台想长在自己代码里 → Payload(MIT,最新正式版 3.90.2/2026-09)
2022 年 5 月宣布完全开源、采用 MIT 协议,之前不是。它的路子和别家不同:直接长在 Next.js 里,管理后台和你的前端是同一套 React 代码库,字段和区块用 TypeScript 配置,写完就是代码的一部分。前端工程师用起来最顺,不用在两个系统之间来回切。TypeScript 原生、自带认证和访问控制,适合做定制化的内容后端。
代价也在这儿:它默认你愿意把后台当代码维护。只想装完填内容就上线的团队,用它会觉得多出来一层活。
4. 要自己搭,不要成品 → Keystone(MIT,最新正式版 2026-08-31)
澳大利亚 Thinkmill 团队维护,GraphQL + React,schema 用 TypeScript 写,数据层走 Prisma。它更像一个"帮你把后台和 API 搭出来"的开发框架,而不是装完填内容就上线的成品------自由度很高,代价是要自己写代码。2026 年 7 月刚跨到 8.x 这条线,包名沿用 @keystone-6/core,老教程按 6.x 讲的不少地方已经对不上。
5. 要在页面上直接改 → ApostropheCMS(MIT,最新正式版 4.33.0/2026-09)
Node.js + MongoDB,主打页面上直接可视化编辑(in-context editing),编辑在页面上看到什么就改什么,对不写代码的同事很友好。社区版是 MIT 协议,已经包含页面编辑、本地化、SEO 工具、SSO 这些;Pro 版是付费层。它属于"传统 CMS 体验 + Node 技术栈"的少数派,想要所见即所得又想用 Node,基本就它。
一个硬前提:数据层是 MongoDB。团队只熟 MySQL 的话,先把这条路能不能走通确认清楚。
6. 已经上了 AWS,要无服务器和多租户 → Webiny(开源版 MIT,最新正式版 6.4.11/2026-09)
开源、自托管、跑在无服务器架构上,而且是深度绑定 AWS------Lambda、DynamoDB、S3 这些。TypeScript 写的,多租户、页面构建器、数字资产管理(DAM)都有。
协议上有个细节:官方在文档里写明,代码库超过 95% 是 MIT,开源版完全免费;剩下不到 5% 属于商业部分,跟着 Business(9 美元/用户/月起)和 Enterprise(3499 美元/月起)两档解锁。别看到"MIT"就以为每一行都能随便拿。
部署门槛要提前想清楚:它不是一个 docker compose up 就能起来的东西,整套跑在 AWS 上,运维方式和别家完全不同,迁出成本也高。没上云、或者不想绑定单一云厂商的团队,慎选。
三、协议这笔账怎么算
六个里五个是 MIT(Strapi、Payload、Keystone、Apostrophe、Webiny),自托管没有授权费,协议上不用操心。Directus 得单独算:它属于"源码可得"那一族(BSL、MSCL、FCL 都在这儿),源码给你看,但不给你开源协议那套权利,从一开始就不在开源软件这个范畴里。它好用,只是别照开源那套来选型。
剩下两条能记住的:
- 看 LICENSE,不看宣传页。 协议写在仓库根目录那个文件里,宣传页上的"开源"两个字不作数。
- 看清哪些在开源那份里。 双轨制在 Node 系是常态------Strapi 的
ee/、Apostrophe 的 Pro、Webiny 那不到 5%,开源的核心都能商用,边界上的要另算。
一句话:Node 系选 CMS,先问它给不给一份能自己跑起来的代码,再去仓库看一眼 LICENSE 里写的到底是不是开源协议。
本篇数据来源(版本与日期为 2026-10-08 核):
- Directus 官方《Evolving Our License for Long-Term Sustainability》(v12 改用 MSCL、Open Innovation Grant 门槛、4 年转 GPLv3):
https://directus.com/resources/directus-v12-license-change - Directus 官方《Changing Our License: One Year Later》(2023 年 10.0.0 从 GPL3 改 BSL 1.1 的经过):
https://directus.com/resources/changing-our-license-one-year-later - Strapi 官方自托管页(社区版 MIT、可自托管):https://strapi.io/hosting
- Strapi 仓库 LICENSE(ee/ 目录为企业版,其余为 MIT):https://github.com/strapi/strapi/blob/develop/LICENSE
- Payload 官方《Payload is now completely free and open source》(2022-05-24 改 MIT):
https://payloadcms.com/posts/blog/open-source - ApostropheCMS 官方 Open Source 页(Community Edition 为 MIT):https://apostrophecms.com/product/open-source
- Webiny 官方仓库(开源自托管、AWS serverless):https://github.com/webiny/webiny-js
- Strapi 仓库 releases(最新正式版 5.57.0,2026-10-07):https://github.com/strapi/strapi/releases
- Directus 仓库 releases(最新正式版 12.5.0,2026-10-07):https://github.com/directus/directus/releases
- Payload 仓库 releases(最新正式版 3.90.2,2026-09-23):https://github.com/payloadcms/payload/releases
- Keystone 官方《Keystone 8》(2026 年 7 月跨到 8.x):https://keystonejs.com/blog/keystone-8
- Keystone 仓库 releases(最近一次正式版 2026-08-31):https://github.com/keystonejs/keystone/releases
- ApostropheCMS 仓库 CHANGELOG(最新正式版 4.33.0,2026-09-30):
https://github.com/apostrophecms/apostrophe/blob/main/packages/apostrophe/CHANGELOG.md - Webiny 仓库 releases(最新正式版 6.4.11,2026-09-11):https://github.com/webiny/webiny-js/releases
- Webiny 官方文档《Pricing Tiers》(代码库 95% 以上为 MIT、三档定价):https://www.webiny.com/docs/overview/pricing