Directus 换掉 GPL 之后,Node.js CMS 到底怎么选?(一)

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 核):

相关推荐
guslegend20 小时前
脚手架入门:必要性、核心功能与执行原理
前端·架构·node.js·脚手架·前端工程化
HaipengYu2 天前
深度解密 OpenCode 2 插件加载机制:Dual-Version (V1/V2) 适配实战与官方文档的“隐形陷阱”
node.js
前端之虎陈随易2 天前
bm2,Node.js 与 Bun 项目部署新选择
node.js
梦帮科技3 天前
【3.0修订版】 RNS 代币架构:ERC20 五件套扩展与六钱包分配
数据结构·后端·算法·架构·node.js·区块链·php
niyongsheng4 天前
后端零改动,给若依换一套现代化前端
vue.js·开源·node.js
liangshanbo12154 天前
面试题:Webpack 的 publicPath 有什么作用?
前端·webpack·node.js
hasty5 天前
不上传新包,也能改变用户拿到的版本:npm dist-tag 的 OIDC 权限治理
前端·npm·node.js
福兮说5 天前
前后端算的 MD5、SHA-256 对不上?编码、换行、BOM、HMAC、JSON 顺序,八个原因逐个实测
前端·javascript·node.js·json·哈希算法
lingchen19065 天前
Node.js的下载安装配置
node.js