Directus 12.5 介绍与选型指南
介绍开源数据平台 Directus 12.5.0 的定位、核心架构、功能特性与官方快速上手示例,并以 GitHub 活跃度、发布节奏、兼容矩阵三大量化维度对比 Strapi、Payload、NocoDB,给出分场景选型建议(信息基准 2026-10-18)。
Directus 12.5 介绍与选型指南
> 目标:面向需要在自有服务器上搭建数据平台 / Headless CMS 的工程师,介绍 Directus 12.5 的定位、架构、功能与同类产品(Strapi、Payload、NocoDB)的量化对比,并给出选型建议。本篇为认知篇,全部结论以官方来源实查为准(查询日期 2026-10-18),不做本地安装实测;部署实操见《Directus Docker Compose 部署指南》。
一、环境信息
本篇是软件介绍与选型认知篇,不依赖本地安装环境,信息基准以官方资料为准。先明确「本文介绍的是哪个版本、结论来自哪里」,再进入正文,避免读者把过时信息套用到当前版本。
- 信息基准:查询日期 2026-10-18;本篇所有版本号、活跃度、兼容性数据均在该日通过官方渠道实查取得,未做本地安装实测。
- 版本依据:本次介绍的版本为 Directus 12.5.0(当前最新稳定版),主要版本线为 v12。
| 依据项 | 实查结果 | 来源 | 查询日期 |
|---|---|---|---|
| 最新稳定版 | 12.5.0 | npm registry(directus 包 latest 标签) | 2026-10-18 |
| 发布日期 | 2026-10-07 | GitHub Releases(v12.5.0) | 2026-10-18 |
| 运行时要求 | Node.js ≥ 22 | npm 包元数据 engines 字段 | 2026-10-18 |
| 发布物分发 | 官方在 Docker Hub 以 directus/directus:12.5.0 分发运行包(2026-10-07 更新) | Docker Hub 标签列表 | 2026-10-18 |
关键解读:v12.5.0 于 2026-10-07 同步出现在 GitHub Releases、npm 与 Docker Hub 三处,版本一致,可放心作为基线版本;官方文档明确提示「Version 12 存在 Breaking changes,升级前需检查变更清单」,从 v10/v11 升级的读者应先读官方 Upgrading 文档。
官方来源清单(本篇引用的全部出处):
- 官网:https://directus.io
- 官方文档站:https://directus.com/docs
- 代码仓库与 Releases:https://github.com/directus/directus
- npm 包页:https://www.npmjs.com/package/directus
- 自托管要求(Requirements):https://directus.com/docs/self-hosting/requirements
- 自托管总览(Overview):https://directus.com/docs/self-hosting/overview
- 许可说明(Licensing):https://directus.com/docs/licensing/overview
- 快速开始(Create a Project):https://directus.com/docs/getting-started/create-a-project
- API 入门(Use the API):https://directus.com/docs/getting-started/use-the-api
二、软件概述
Directus 是一个开源的数据库优先(Database-First)数据平台,由 Monospace Inc 维护。当前最新稳定版为 12.5.0。它的核心工作方式是:把任意主流 SQL 数据库交给 Directus,它通过数据库内省(Introspection)读取已有的表结构,即刻生成一套完整的 REST + GraphQL API,并附带一个功能完备的 Web 管理台(Data Studio)——内容管理、文件管理、用户权限、自动化流程、仪表盘一应俱全。
与「先在工具里建模、再把内容存进自家数据库」的传统 Headless CMS 不同,Directus 不接管、不迁移你的数据:已有 MySQL/PostgreSQL 库原样保留,Directus 只是在其上叠加 API 层与管理层。这一点决定了它的两大典型用法:
- 给存量数据库加 API 与管理界面:已有业务库(如订单、会员)不用改一行 SQL,就能获得标准化 REST/GraphQL 接口和可视化后台;
- 从零构建业务系统 / 内容站点:在 Data Studio 里以无代码方式建模,直接获得生产级 API 与权限体系。
发展脉络与身位:
- 项目仓库创建于 2012-12-12(GitHub API 实查),2021 年发布完全重写的 v9,此后演进至当前 v12 主线;由 Monospace Inc 商业化维护,同时开放自托管。
- 许可:Directus 12 采用 Monospace Sustainable Core License(MSCL-1.0-GPL,源可用许可)——官方文档表述为「免费核心层(core tier)无需许可证;更高限额与附加功能需要付费许可,符合条件的主体可申请 Open Innovation Grant 获取免费商用授权」。这与早期版本的宽松开源许可不同,商用前务必阅读官方 Licensing 页面。
技术栈与运行要求(官方 Requirements 页,2026-10-18 实查):
| 项目 | 要求 |
|---|---|
| 运行时 | Node.js ≥ 22(npm engines 字段) |
| 资源下限 | 1 × 0.25 vCPU / 512 MB(最低);推荐 2 × 1 vCPU / 2 GB |
| 数据库 | PostgreSQL、MySQL、SQLite、MS SQL Server、MariaDB、CockroachDB、OracleDB 的 LTS 版本 |
| 缓存 / 水平扩展 | Redis(缓存推荐启用;水平扩展场景为必需项) |
| 文件存储 | 存储适配器模式:本地文件系统或 S3 等对象存储适配器 |
关键解读:官方把最低资源压到 0.25 vCPU / 512 MB,说明 Directus 可在小型服务器上单实例跑通;但官方同时强调「自托管容易低估资源」,生产环境建议按推荐值 2 vCPU / 2 GB 起步并配合 Redis 缓存。数据库支持面覆盖七大主流 SQL 库(均限 LTS 版本),且明确不支持一个数据库内多 Schema 的接入方式——库结构规划时每个 Directus 项目对应一个 Schema。
三、核心架构
Directus 的架构可以概括为「一层 SQL 抽象 + 一套自动生成的 API + 一个 Vue 管理台」。理解这三个组件如何协作,是判断它是否适配你场景的基础。
3.1 数据库内省层(Introspection)
Directus 启动时读取所连接 SQL 库的表、字段、外键关系,生成内部元数据模型(Directus 系统表本身也存放在同一库中,以 directus_ 前缀命名)。由此带来两个特征:
- 已有库直接接入:表结构无需迁移,数据不搬移,业务系统与 Directus 共享同一份库;
- 系统表同库存放:
directus_users、directus_roles、directus_files等系统集合与业务表同库,权限、文件、日志等能力都落在 SQL 层。
💡 技术拓展:数据平台接入数据库有两条主流路线,选型时先分清——
路线 原理 代表产品 取舍 内省代理(Introspection) 读取已有库结构生成 API,不接管 Schema Directus 存量库零改造接入;但库设计质量直接决定 API 质量 Schema 托管 / 代码优先 在工具或代码中定义模型,自行建表迁移 Strapi(内容类型定义)、Payload(代码定义 Schema) 模型与业务代码同源、可版本化;但不适合「库已存在」的场景 无代码表格 在表格界面里建表,底层用自带或外接库 NocoDB 最快上手;复杂约束与事务能力弱于 SQL 原生建模 Directus 采用第一条路线,适合「数据库已存在、要加 API 与后台」的场景;若从零开始且希望模型进代码仓库,Payload/Strapi 路线更自然。
3.2 API 层:REST + GraphQL + Realtime
每个集合(Collection,对应库中一张表)自动获得一致的 REST 端点(/items/<collection>),同时提供 GraphQL 端点、Realtime(WebSocket 订阅数据变更)与 SDK。所有端点共享同一套查询参数体系(fields、filter、sort、limit、offset、deep、aggregate 等),权限由角色(Role)策略在 API 层统一裁决。
3.3 Data Studio 管理台
Data Studio 是随服务分发的 Vue 3 单页应用,提供:数据模型设计器、内容编辑(含草稿/发布、多语言、版本)、文件库(图片处理)、用户与权限管理、Insights 仪表盘、Flows 自动化编排。非技术人员可以完全在浏览器里完成建模与内容运营,无需写代码。
3.4 扩展与缓存
- 扩展机制:Interface(字段编辑器)、Display(展示)、Layout(列表布局)、Module(页面)、Hook(服务端钩子)、Endpoint(自定义路由),以扩展包形式随目录挂载加载;
- 缓存与扩展性:单实例可直接运行;多实例水平扩展时官方要求引入 Redis(缓存 + 变更通知),文件走共享存储适配器。
架构小结:数据落 SQL、状态进 Redis、文件进存储适配器、界面与 API 无状态——这个结构与主流 Web 服务一致,因此 Directus 的部署、备份、扩容都能套用常规服务器运维经验。
四、功能特性
按官方 Getting Started 与产品文档归纳,12.5 版本的主要功能域如下(均为产品内置能力,非扩展件):
| 功能域 | 能力要点 |
|---|---|
| 数据建模 | 无代码建模:集合、字段类型、关系(多对一/一对多/多对多)、字段校验、翻译字段、数据字典 |
| REST API | 每个集合自动生成 CRUD 端点,统一查询参数(fields/filter/sort/limit/aggregate 等) |
| GraphQL API | 同一份数据模型的 GraphQL 查询与变更端点 |
| Realtime | WebSocket 订阅集合数据变更(配置项 WEBSOCKETS_ENABLED 开启) |
| 认证与权限 | 账号密码、访问令牌(Access Token)/静态令牌、基于角色的细粒度权限(RBAC)、会话 Cookie;SSO 等企业能力见许可条款 |
| 文件管理 | 上传、图片变换(裁剪/缩略图)、存储适配器(本地/S3 等) |
| Flows 自动化 | 事件/定时/手工触发的流程编排,可视化配置操作链(发通知、调外部接口、改数据等) |
| Insights 仪表盘 | 图表、统计卡片等可视化面板,面向运营监控 |
| 多语言 | 字段级多语言(Translations)、界面多语言 |
| 搜索与聚合 | 全局搜索、聚合查询(count/sum/avg 等) |
| 扩展生态 | 六类扩展点 + 社区市场;支持自研扩展包 |
| Schema 迁移 | Schema Snapshot/Diff/Apply,便于把建模结果在环境间迁移(开发→生产) |
关键解读:Directus 把「内容系统的常见全家桶」都内置了——如果需求集中在「数据 + API + 后台 + 自动化」,一套 Directus 可以省掉多个独立组件;反过来,若只要其中一小块(如纯 API 网关),它的体量反而偏重。功能取舍应结合下文第七章的选型对比判断。
五、快速上手(引自官方文档)
本篇为认知篇,不做本地安装实测。以下最小示例引自官方文档《Use the API》(https://directus.com/docs/getting-started/use-the-api ,查询日期 2026-10-18),命令形态照抄官方原文,替换值已注明;完整部署实操见《Directus Docker Compose 部署指南》。
官方文档描述的最小路径是:部署一个 Directus 项目 → 在 Data Studio 中创建带 title、content 字段的 posts 集合 → 在用户详情页创建静态令牌 → 用 curl 读写数据。
读取集合数据(引自官方 Terminal 示例):
curl \
--header 'Authorization: Bearer <access_token>' \
--url 'https://directus.example.com/items/posts'
<access_token>:替换为你项目中的访问令牌(登录接口返回的 access token,或在用户详情页创建的静态令牌);https://directus.example.com:替换为你的项目访问地址,自托管时形如http://<服务器IP>:8055。
带查询参数的过滤读取(引自官方示例,仅返回 status 为 published 的记录的 id 与 title):
curl \
--header 'Authorization: Bearer <access_token>' \
--url 'https://directus.example.com/items/posts?filter[status][_eq]=published&fields=id,title'
创建数据(引自官方示例,向集合 POST 一个对象即创建一条记录):
curl \
--request POST \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data '{ "title": "Hello Universe!" }' \
--url 'https://directus.example.com/items/posts'
要点提示:官方说明集合读取默认每页返回 100 条,超出需用 limit/offset 翻页;所有集合端点结构与查询参数一致,学会一个集合即学会全部。本文 D5 篇《Directus 12.5 API 使用详解》将对上述端点逐条实测并回显真实 JSON。
六、适用场景与限制
6.1 典型适用场景
结合数据库优先的产品定位,以下场景中 Directus 收益最直接:
- 给存量业务库加 API 与后台:公司已有 MySQL/PostgreSQL 业务库,需要快速对外提供 REST/GraphQL 接口与运营后台,且不想动库结构——内省接入,当天可用;
- 企业内容站 / 多语言内容管理:官网、帮助中心、营销内容,编辑团队在 Data Studio 里运营,前端经 API 取数;
- 内部管理系统快速搭建:用无代码建模 + 细粒度 RBAC + Insights 仪表盘拼出审批、台账类内部系统,Flows 承接通知与联动;
- 移动端 / 小程序后端:文件上传、图片处理、用户权限开箱即用,省掉自建后端的脚手架工作;
- 数据中台的轻量服务层:多张源表需要统一鉴权、统一查询参数、按角色暴露子集的场景。
6.2 已知限制
选型前需要接受的边界(均来自官方文档与许可条款,2026-10-18 查询):
- 许可约束:MSCL 源可用许可下,免费核心层有功能与限额边界,更高限额/附加功能需付费许可或 Open Innovation Grant;对许可敏感(如要求 OSI 开源许可)的团队需评估;
- 单库单 Schema:官方明确不支持一个数据库多 Schema 接入,已有库若按多 Schema 规划需拆分;
- 水平扩展依赖 Redis:多实例必须引入 Redis,单机小场景可忽略;
- 数据库版本窗口:仅支持七大 SQL 库的 LTS 版本,老版本(如 MySQL 5.7)不在支持之列;
- 数据库设计质量前置:内省模式下,库设计混乱会直接映射为混乱的 API 与管理界面,接入前建议先整理表结构。
七、同类选型对比
本节在 Directus、Strapi、Payload、NocoDB 四个同类产品之间做量化对比。四个产品都提供「数据库 + API + 管理后台」的交付形态,但实现路线不同(内容优先 / 代码优先 / 数据优先 / 无代码表格),单看功能列表容易误判,需要用社区活跃度、版本节奏、兼容矩阵三个可量化维度校准。
💡 技术拓展:这一类产品业内统称 Headless CMS / 数据平台,实现路线主要有四条——
路线 原理 代表 适合 内容优先 工具内定义内容类型,内容存自家库 Strapi 以内容为中心的站点,从零开始 代码优先 Schema 用代码定义,与前端框架同仓 Payload Next.js 团队,模型要进代码评审 数据优先 内省已有 SQL 库,叠加 API 与后台 Directus 存量库接入、业务系统后端 无代码表格 表格界面建表/接外部库 NocoDB 运营自助、轻量协作,类 Airtable 本文介绍的 Directus 属于「数据优先」路线;下文量化对比可看出四者在社区体量、发布节奏、数据库兼容上的明显差异。
7.1 社区活跃度(量化)
以下数据于 2026-10-18 通过 GitHub API 与 npm downloads API 实查:
| 指标 | Directus | Strapi | Payload | NocoDB |
|---|---|---|---|---|
| GitHub Stars | 38,576 | 73,331 | 45,320 | 65,294 |
| GitHub Forks | 4,977 | 9,889 | 4,304 | 5,095 |
| 仓库创建时间 | 2012-12 | 2015-09 | 2021-01 | 2017-10 |
| npm 包周下载(2026-10-10~16) | 12,061(directus) | 5,425(strapi 包) | 581,876(payload) | 2,381(nocodb) |
| 维护方 | Monospace Inc | Strapi Solutions SAS | Payload Systems Inc(Figma 旗下) | NocoDB Inc |
解读:Stars 体量 Strapi 最大(7.3 万),NocoDB 次之(6.5 万),Payload 与 Directus 在 4~4.5 万一档;四者仓库创建均超过 4 年、至今活跃,社区都属于成熟梯队。npm 周下载需注意口径差异:Payload 数字极高是因为它作为 Next.js 项目的依赖被 npm install,每个前端项目装一次;Strapi 官方推荐以 @strapi/strapi 度量;NocoDB 主要经 Docker 分发,npm 下载量天然偏低。因此 npm 下载仅作参考,不建议跨产品直接比较,Stars/Forks 与发布节奏更适合横向校准。
7.2 版本节奏(量化)
以下为各仓库 GitHub Releases 近期记录(2026-10-18 实查):
| 指标 | Directus | Strapi | Payload | NocoDB |
|---|---|---|---|---|
| 最新稳定版 | 12.5.0 | 5.58.0(@strapi/strapi) | 3.91.0 | 2026.09.1 |
| 最新版发布日期 | 2026-10-07 | 2026-10-07 | 2026-10-13 | 2026-09-10 |
| 近期节奏 | 月度小版本(12.2.0→12.5.0 间隔 07-29/08-18/09-22/10-07) | 周更(v5.57.0 09-30 → v5.58.0 10-07) | 周更(v3.91.0 10-13;v4.0.0-beta.2 10-15 预发布中) | 双周~月度(2026.09.0 09-03 → 2026.09.1 09-10),日历版本 |
| 版本化风格 | 语义化 | 语义化 | 语义化 | 日历化(YYYY.MM.x) |
解读:四个产品 2026 年内都保持高频率发布,不存在停滞风险;Directus 月度小版本 + 语义化版本,对生产环境升级节奏最友好(升级窗口可预期);Strapi/Payload 周更依赖其 LTS/升级工具链消化;NocoDB 的日历版本便于按时间定位问题,但语义化程度低。选型时应同步关注各自「升级是否需要迁移脚本」——Directus v12 官方提示含 Breaking changes,跨大版本升级要读变更清单。
7.3 兼容矩阵(量化)
以下兼容信息分别取自各官方文档(查询日期均为 2026-10-18,来源见 7.5 节链接):
| 维度 | Directus 12.5 | Strapi 5.58 | Payload 3.91 | NocoDB 2026.09 |
|---|---|---|---|---|
| Node.js | ≥ 22 | ≥ 20(Active/Maintenance LTS:v22/v24/v26) | ≥ 20.18.1 | ≥ 22 |
| 支持数据库 | PostgreSQL、MySQL、SQLite、MS SQL Server、MariaDB、CockroachDB、OracleDB(LTS 版本) | PostgreSQL 17(最低 14)、MySQL 8.4(最低 8.0)、MariaDB 11.4(最低 10.3)、SQLite 3;不支持 NoSQL | MongoDB(Mongoose 适配器)、PostgreSQL(Drizzle)、SQLite(Drizzle) | 默认内置 SQLite;可接入外部数据源(PostgreSQL、MySQL、SQL Server、Oracle 等) |
| 许可 | MSCL-1.0-GPL(源可用;免费核心层,高限额/附加功能付费,可申请 Open Innovation Grant) | 核心 MIT;ee/ 目录功能为专有企业版条款 | MIT | Sustainable Use License(源可用,限制二次分发/转售) |
| API 风格 | REST + GraphQL + WebSocket Realtime | REST + GraphQL + WebSocket | REST + GraphQL + Local API | REST |
| 管理界面 | Data Studio(内置) | Admin Panel(内置) | Admin Panel(内置) | 表格界面(内置) |
| 部署形态 | 自托管运行包 / 官方云 | Node 进程自托管 / 官方云 | 嵌入 Next.js 应用 / 官方云 | 自托管运行包 / 官方云 |
解读:数据库兼容面 Directus 最宽(七种 SQL 库,含 SQL Server 与 OracleDB);Strapi 限定四种且最低版本要求最高(PG 14 起);Payload 是唯一以 MongoDB 为一等公民的;NocoDB 主打「外接已有库」。许可上 Payload 最宽松(MIT),Directus 与 NocoDB 同属源可用许可但条款不同,商用合规务必各自读原文。若团队技术栈以 Next.js 为中心,Payload 的代码优先形态契合度最高;若以已有 SQL 库为中心,Directus 的内省路线成本最低。
7.4 选型建议
按「如果……则……」给出结论性建议:
- 已有生产 SQL 库(MySQL/PostgreSQL 等),要快速加 API 与管理后台 → 选 Directus:内省接入不动库结构,这是其余三者做不到或成本很高的路线;
- 从零开始做内容站,团队重编辑运营 → Strapi 或 Directus:Strapi 内容生态与插件市场成熟;若同时想要文件、仪表盘、自动化全家桶,Directus 内置能力更全;
- Next.js 全栈团队,模型要进代码仓库走评审 → 选 Payload:与框架同仓、TypeScript 原生、MIT 许可;
- 运营团队自助建表、类 Airtable 协作 → 选 NocoDB:表格界面最贴近电子表格习惯;
- 要求完全 OSI 开源许可(如商业化再分发) → 优先 Payload(MIT)/ Strapi 核心(MIT),Directus 与 NocoDB 的源可用许可需先做法务评估;
- 需要 SQL Server / OracleDB / CockroachDB 兼容 → 四者中仅 Directus 官方支持。
八、参考链接
以下为本篇全部结论来源,均在 2026-10-18 访问核实:
- Directus 官网:https://directus.io
- Directus 官方文档 — Getting Started Overview:https://directus.com/docs/getting-started/overview
- 官方文档 — Create a Project(含官方 Compose 示例与参数说明):https://directus.com/docs/getting-started/create-a-project
- 官方文档 — Use the API(本篇第五章示例来源):https://directus.com/docs/getting-started/use-the-api
- 官方文档 — Self-Hosting Overview(许可与自托管考量):https://directus.com/docs/self-hosting/overview
- 官方文档 — Self-Hosting Requirements(资源/数据库/Redis 要求):https://directus.com/docs/self-hosting/requirements
- 官方文档 — Licensing Overview(MSCL 许可说明):https://directus.com/docs/licensing/overview
- GitHub 仓库(Stars/Forks/Releases 数据):https://github.com/directus/directus
- GitHub Releases(v12.5.0 及发布日期):https://github.com/directus/directus/releases
- npm registry(版本与 Node.js 引擎要求):https://www.npmjs.com/package/directus
- npm downloads API(周下载量):https://api.npmjs.org/downloads/point/last-week/directus
- Strapi 安装要求与数据库矩阵:https://docs.strapi.io/cms/installation/cli
- Payload 数据库适配器文档:https://payloadcms.com/docs/database/overview
- NocoDB 官网与许可:https://nocodb.com 、https://github.com/nocodb/nocodb