理解直接

Directus是一个开源的无头CMS和数据平台,它坐落在任何SQL数据库上,即时提供灵活的API层和直观的adminapp. 不同于传统的CMS来决定您的数据结构,Directus内观您现有的数据库计划并生成动态的,完全自定义的界面. 这种方法允许开发者和内容团队按照自己的条件处理数据,而无需锁定入僵硬的内容模型. 它与Node.js和Vue.js一起构建,使其既轻而易之,又能非常可扩展,适合从简单的博客到复杂的企业车队管理系统等项目.

其核心是Directus,它包含了“未证明的数据”的概念。 它不强制实施默认的系统、迁移系统或专有文件存储。而是尊重您数据库的现状,无论是从空白系统还是现有的生产数据库开始。这个理念使其成为逐渐采用的理想伴生,允许团队在不进行破坏性整改的情况下将现代CMS整合到遗留系统中。

使Directus站出位置的关键特性

Directus)包了一套丰富的能力来简化内容管理并加速应用开发,其功能集是故意模块化的,给团队仅使用所需要物品的自由.

  • Database-First 方法: Directus不拥有您的数据,它连接到您现有的SQL数据库(MySQL,PostgreSQL,SQLite等),并自动生成相应的API和管理员面板. 这意味着您保留对您数据的全部控制,可以使用自己的迁移工具,并且可以在不突破CMS的情况下直接查询数据库.
  • Dynamic REST和GraphQL APIs: 一旦一个数据库表被识别出来,Directus立即创建了 REST 和 GraphQL 的终点。这些APIs支持精细的授權,过滤,排序,平面和深层关系取取取取取取. GraphQL API对需要精确数据查询的前端应用特别有力量.
  • 高度自定义可操作的 App:[ 管理面板由Vue.js所建,完全可以白标签. 您可以自定义品牌,修改页面布局,创建自定义视图,并添加外置的语句 内置页. 角色访问控制(RBAC) 允许您定义每个用户角色能够看到和做的事情, 下至外地级别.
  • 认证和安全: Directus支持一系列认证提供者,包括本地电子邮件/密码,Google,Facebook,Twitter,GitHub,和SSO通过OpenID Connect. 它还提供两个要素认证,IP白名单,以及一个与您用户定义的角色相联的综合权限系统.
  • 纤维与媒体管理: 多功能数字资产管理器允许您上传、裁剪和整理文件。它包括了上飞图像转换,并可以将资产存储在本地磁盘、S3或其他云存储适配器上。这对于车队平台至关重要,您可以管理数千张车辆检查相片或驾驶文件。
  • 通过扩展扩展扩展: 平台支持自定义接口、显示、布局、面板、钩子和终点。开发者可以以npm包的形式发布扩展,也可以保留其项目特定内容。这种生态系统允许您将Directus的经验精确地调整到您的领域,无论是物流、医疗保健还是电子商务。

建筑深潜:Directus如何工作

在引擎盖下,Directus由API服务器("核心")和脱钩客户端的adminapp组成,两者都是BSL和GPL许可下的开源,有商业支持的版本。当您在数据库中指向Directus时,它分析表格和列,检测数据类型,关系和约束,然后构建一个元数据层,描述每个收藏和字段。这个元数据存储在同一数据库中的一组专用表格中,确保不存在你无法控制的专有黑盒存储。

抽象图层

一旦数据库被内测, Directus 创建了您数据的虚拟表达。 您可以将表格重新命名为“ 收集 , 隐藏敏感栏目 , 并调整字段标签和描述, 而不修改基本的 SQL 方案。 这种抽象化在 CMS 中是纯粹的化妆品和功能; 数据库没有被任何其它客户端或 SQL 工具所覆盖, 并且完全运行。 对于机队应用, 这意味着您远程数据库可以继续摄取实时数据, 而内容小组则使用 Directus 来管理静态车辆配置和驱动文件, 并且都是和谐的 。

API 生成和缓存

Directus 自动从元数据中构建 OpenAPI 和 GraphQL 计划。 每个收藏都获得自己的 REST 端点( GET, POST, PATCH, DELETE) , 并带有查询参数, 以映射基础 SQL 操作, 包括聚合函数, 关系结合, 以及计算出字段。 平台包括内置缓存层和支持 Redis 保持 API 响应的速度, 即使负重, 这是查询上千个记录的机队仪表板的基本功能 。

通过 WebSockets 实时更新

对于需要实时数据更新的应用程序,Directus提供了WebSocket接口。订阅可以按收集方式设定,允许前端客户在数据变化时收到即时通知。这对于车队跟踪系统来说是十分宝贵的,因为车辆的位置或状态需要实时推入仪表板。

Directus 与其他 CMS 平台的比较

也帮助将它与常见的替代品相提并论。

直接对斯特拉皮

两者都是建立在Node.js上的无头CMS,但根本区别在于数据库哲学。 Strapi拥有数据库结构,处理迁移和计划定义本身。另一方面,Directus 照搬了现有的数据库。如果你已经拥有一个包含上百个表格的复杂的车队管理数据库,并且你想在不改变这一模式的情况下添加一个CMS层,Directus是明确的选择。 Strapi的方法从零开始适合项目,因为你很高兴让CMS定义数据模型。

直通对哈苏拉

Hasura是一个GraphQL引擎,它也内入数据库并曝光了GraphQL API。然而,Hasura不是一个CMS;它缺乏一个内容编辑器专用的管理员面板。Directus既提供了API,又提供了完整的管理员界面,与RBAC,媒体管理,以及灵活的用户体验相配合。对于日常操作需要非开发用户界面的应用程序,比如车队管理器更新驱动记录,Directus更实用.

Directus vs. WordPress (作为无头CMS) 互联网档案馆的存檔,存档日期2013-12-21.

WordPress可以通过它的REST API无头使用,但它仍然与自己的数据计划和“后”概念相接。 Directus没有强制实施这样的概念,使其更适应非内容网站。 如果你的项目需要管理库存、传感器数据或任何定制实体,Directus提供了一种更自然的适合性,而无需WordPress的见解结构。

真实世界舰队管理使用案例

一篇“Fleet Directus”的文章往往集中在内容管理和操作数据的交叉点上。 船队生成大量信息 — — 车辆遥测、维护记录、驾驶员文件、保险记录、路线分配和合规报告。 Directus可以作为管理所有这一切的统一数据平台。

  • 司机和车辆简介:[ 使用Directus来模拟车辆细节,驾驶证,执照到期,以及分配的单位. 管理员面板允许调度员更新状态,上传检查相片,并通过钩子触发警报.
  • 事件报告:事件自定义集可以捕捉时间戳,GPS坐标,损坏描述,以及辅助图像. 借助API,移动应用程序可以直接提交报告,而管理员应用程序可以充当合规官员的审查界面.
  • 维护排行: 创建与车辆相链接的维护集合. 设置起站点任务或外部触发器,查询Directus API,以识别应服役的车辆,并自动向责任团队发送电子邮件提醒.
  • 数字文档存储库: 媒体经理组织合同、保险单和合规表。 Directus的许可确保了司机只能访问自己的文件,而审计师则可以更广泛的阅读。
  • Real-Time Dashboard Introduction: 通过将GraphQL API与Nuxt.js或Next.js等前端库相合并,可以构建实时机队仪表板,在地图上显示车辆位置,最近的警报,以及关键性能指标. Directus的WebSocket支持保持数据新鲜而无需再加载.

因为Directus直接坐在您的操作数据库上,这些使用案例不需要将数据复制或同步到单独的CMS存储器中去。 这会降低复杂性和耐久性,这是对时间敏感的机队操作的巨大优势。

启动: 设置直线项目

安装 Directus 可以在几分钟内完成。 推荐的方法是使用官方的 CLI 或 Docker 图像。 对于一个寻找原型的车队公司来说, Docker 编译器设置与 Directus 和一个 PostgreSQL 容器是最快的路径 。

  1. 将多克图像:[ 运行 以获得最新的稳定版本.
  2. 创建一个编译文件: 定义 Directus 和您所喜欢的数据库的服务. Map 环境变量如 ADMIN EMAIL, ADMIN PASWORD, SECRET, 和数据库证书.
  3. 关闭堆栈: 启动两个容器。Directus在第一次运行时自动初始化,在数据库中创建必要的系统表格。
  4. 访问管理员 App:[ 导航到 并登录管理员的证书。您可以看到一张空白的画布,准备取取取数据。
  5. 连接一个现有的数据库: 如果您已经拥有一个车队数据库,请通过更新 DBQQ环境变量来指向DBQ环境变量。重启后,管理员面板将显示您所有的表格作为收藏。然后您可以配置字段标签、关系和权限。

扩展直通以适应您的操作

Directus的真正力量是它的可扩展性。定制扩展允许您在不伪造核心的情况下将平台建模为特定的业务逻辑。这在车队管理中至关重要,因为工作流程往往涉及天气API、政府车辆登记或VIN解码器等外部服务。

构建自定义接口和显示

界面定义一个字段的编辑方式(例如,取日期器、GPS坐标的地图选择器)。显示只读视图中如何显示字段。您可以创建自定义的“车辆状态”界面,显示一个颜色编码徽章,或者“旋转优化器”显示器,它调用外部API来可视化一个路由。这些是用Vue.js构建的,并通过扩展文件夹注册。

创建 Webhoks 和事件钩

Directus 提供了一个钩子系统,它触发了项目创建,更新,或删除等事件的逻辑. 例如,当创建了新的维护记录时,钩子可以自动向被指派到该车辆的机械师发送通知. Webhooks可以在全球配置,也可以从管理员面板上每集配置,可以与Zapier,Slack或自定义的中间软件服务进行集成,而无需写入服务器代码.

自定义 API 终点

如果动态 REST 或 GraphQL API 无法满足特定需要, 您可以在 Directus 服务器中添加自定义端点。 这些端点可以完全访问数据库、 认证上下文和核心服务。 机队应用可能会暴露一个端点, 将燃料总消耗总量汇总到一个日期范围内, 执行复杂的 SQL 加入, 而后者在通用 API 查询中并不容易表达出来。 通过添加它作为扩展, 端点成为官方API 的一部分, 并受益于相同的认证和限速机制 。

敏感舰队数据安全模型

车队管理涉及敏感的个人数据(司机执照、电话号码、地点)和保密的商业信息(合同、路线 ) 。 Directus的颗粒式许可系统确保只有授权用户才能获取正确的数据。您定义了角色,如“司机”、“司机”、“经理 ” 和“审计者 ” , 然后为每个收集和个人领域指定许可。许可可以基于任意的操作规则,使用过滤表达方式。例如,司机只能看到`指定'司机的车辆记录与其用户身份相符。API标志、IP白名单和MFA提供了适合合规要求的更多安全层次。

高卷数据性能优化

如果您的机队数据库有上百万个遥测记录, 性能就变得至高无上。 Directus 允许您直接添加数据库索引( 因为它不拥有该图谱) , 而API 则使用这些索引来加速查询。 平台还支持限制速率, 资产CDN 和Node.js 服务器的横向缩放。 对于报告重度使用案例, 您可以在数据库中创建可读化视图, 并将其注册为 Directus 中只读化的集合, 提供快速访问预汇总数据的机会, 而无需对主表格进行课税 。

德克特斯社区和生态系统

Directus从一个主动开放源代码社区中获益,该社区可以提供扩展、主题和蓝图。 GitHub讨论[ 板和 Directus Discord服务器[ 是获得帮助或分享车队执行故事的好地方。核心团队维护从安装到自定义扩展开发的全方位文件[。对于企业, Directus Cloud 提供了管理下的托管选项,可以处理规模、备份和更新,使团队免于基础设施的担忧。

未来维护您的舰队数据堆栈

选择Directus意味着你不会将关键机队操作锁定在专有生态系统中。由于您的数据位于标准SQL数据库中,您保留了SQL的全部报告、ETL进程和与Metabase或Power BI等BI工具的整合能力。 如果您决定远离Directus, 您的数据模型及其完整性将保持完好无损, 并且没有供应商锁定。 这个数据库第一战略与车队资产管理中所需的长期思维完全一致, 车辆生命周期和监管记录长达数十年。 通过将Directus视为轻量强的数据前端而不是单一系统,您为车队业务构建了具有弹性和适应性的技术基础。