CoCreate-app/CoCreate-server
GitHub: CoCreate-app/CoCreate-server
CoCreate Server 是一个无状态集群化的 headless 后端服务,专为高性能多租户实时协作应用提供弹性扩展与安全隔离的基础运行时。
Stars: 0 | Forks: 0
# CoCreate Server
一个安全、无状态、集群化的 headless server,专为高性能多租户、实时协作和沙盒化的 AST 执行而构建。该模块是 CoCreate 分布式生态系统的主要 orchestrator。
## 文档
有关完整的指南和可用的集成配置,请参阅 [CoCreate Server 核心文档](https://cocreatejs.com/docs/server)。
## 目录
* [集群化 Headless 核心之威力](#the-power-of-the-clustered-headless-core)
* [为什么选择 CoCreate Server?](#why-cocreate-server)
* [架构与组件网格](#the-architecture--component-mesh)
* [动态租户驱逐与自愈链式反应](#dynamic-tenant-eviction--self-healing-chain-reaction)
* [安全强化(零信任)设计](#security-hardened-zero-trust-design)
* [安装说明](#installation)
* [公告](#announcements)
* [路线图](#roadmap)
* [如何贡献](#how-to-contribute)
* [关于](#about)
## 集群化 Headless 核心之威力
`@cocreate/server` 是一个高性能系统,旨在以绝对的效率扩展多租户、实时协作应用程序。它不依赖臃肿的 runtime stack,而是采用原生的、零依赖的集群化执行拓扑:
### 多集群原生 IPC 路由
利用操作系统原生的多核进程映射,Master orchestrator fork 出独立的工作进程,以最大化处理吞吐量。IPC 中继以亚毫秒级的开销在各个 worker 之间原生分发状态数据包:
$$\text{Master Process (Primary)} \xrightarrow{\text{Direct OS IPC}} \begin{cases} \text{Worker 1} & \text{(Client Socket Slices)} \\ \text{Worker 2} & \text{(File / Asset Server)} \\ \text{Worker } N & \text{(AST Execution Engine)} \end{cases}$$
### 零依赖核心哲学
为了减轻供应链漏洞、防止包膨胀,并保证极速的冷启动时间,该 server 执行严格的零依赖策略(唯一的例外是用于布局渲染且经过高度审计的 `node-html-parser`)。
### AST Flow 逻辑隔离
该 server 不会直接执行用户的原始脚本。动态客户端逻辑完全在一个受严格限制的 Abstract Syntax Tree (AST) Flow Engine 中执行,从结构层面消除了 Remote Code Execution (RCE) 攻击向量。
## 为什么选择 CoCreate Server?
传统的 Node.js 后端架构在面临高并发的多租户负载时,常常因为常驻内存的连接膨胀和共享状态冲突而显得力不从心。
`@cocreate/server` 通过将计算能力与数据库状态解耦来解决此问题。作为纯粹的 stateless worker runtime,它会动态地从您安全的数据库中获取配置、连接配置文件和执行路由。如果某个计算节点遇到资源边界或流量高峰,`ServerAutoscaler` 可以在启动新节点进行扩容的同时,干净地 cordon、drain 并销毁该机器,而不会中断正在进行的操作。
## 架构与组件网格
作为平台的中央网关,该 server 导入并调度各 peer 模块,形成一个安全、统一的协作结构:
| 组件模块 | 架构角色 | 功能职责 |
| :--- | :--- | :--- |
| **@cocreate/acme** | 证书颁发机构集成 | 动态生成并即时管理 SSL 证书,消除 SSL 终止性能损耗。 |
| **@cocreate/socket-server** | 实时传输层 | 使用低开销的 WebSocket 隧道多路复用终端用户浏览器连接。 |
| **@cocreate/server-mesh** | 节点间控制与数据平面 | 驱动按需、懒加载的 server 到 server 隧道,并由 Organization ID 进行隔离。 |
| **@cocreate/crud-server** | 多数据库状态路由 | 将标准的 MongoDB 风格 JSON 语法转换为安全的并行数据库事务。 |
| **@cocreate/server-autoscaler** | 自主生命周期管理器 | 编排水平扩展、P2P 单播 cordon 以及协作式节点 draining。 |
| **@cocreate/lazy-loader** | 动态组装解析器 | 在被请求时,以流式传输的方式懒加载并构建自定义的 micro-app endpoint。 |
## 动态租户驱逐与自愈链式反应
为了保护服务器 RAM 和数据库 socket,`@cocreate/server` 利用自动化的、基于连接驱动的生命周期。网络 socket 状态是唯一的真实来源:
$$\text{Final Client WebSocket Close} \xrightarrow{\text{60s Grace Period}} \text{Emit 'orgDeleted' locally} \xrightarrow{\text{Cooperative Teardown}} \begin{cases} \text{Close MongoDB Connection Pools} \\ \text{Flush Bandwidth \& Billing Telemetry} \\ \text{Close Dedicated P2P Org Tunnels} \end{cases}$$
当最后一个客户端浏览器与某个组织断开连接时,将启动一个 60 秒的宽限期计时器。如果没有客户端重新连接,worker 将发出本地 `orgDeleted` 信号。这将执行级联式的销毁序列:
1. **`db.js`** 捕获信号,关闭该特定数据库的缓存连接池,并释放 socket 插槽。
2. **`usage.js`** 计算内存中剩余的字节指标,并将计费遥测数据 flush 到平台数据库。
3. **`server_mesh.js`** 对任何连接到 peer server 的专用数据面隧道调用 `ws.close()`。Peer server 捕获原生的 TCP 关闭帧,并以零自定义控制数据包的方式瞬间驱逐路由记录。
## 安全强化(零信任)设计
该 server 专为在高度受限的云网络(VPC/PrivateLink)中部署而设计:
* **无端口暴露:** 除标准的 Web 安全接口(80 / 443)外,所有传入的服务器端口均处于关闭状态。SSH 被完全禁用。
* **管理隔离:** 控制平面功能(如 node cordon、流量削减或虚拟机关闭)需要交互式多因素身份验证(2FA)。标准的平台 API key 不具备在 8090 P2P mesh 控制平面上进行通信的 scope 或权限。
* **密码学不可见性:** 与客户端数据库的集成采用了客户端字段级加密 (CSFLE)。数据库连接字符串和 API key 完全以密文形式存储。明文解密密钥从隔离的 Cloud KMS 模块中动态获取,且绝不会暴露给数据库服务器。
## 安装说明
### NPM 安装
```
npm i @cocreate/server
```
### Yarn 安装
```
yarn add @cocreate/server
```
## 公告
所有结构性更新、安全审计和 API 升级都记录在我们的 `CHANGELOG.md` 和 [CoCreate Server GitHub Releases](https://github.com/CoCreate-app/CoCreate-server/releases) 页面中。您也可以订阅我们的发布通知,以获取关于破坏性变更和部署指南的最新信息。
## 路线图
如果您对核心集群引擎的未来设计方向感兴趣,请查看我们的活跃 issues 和 pull requests。我们欢迎开发者社区提供建设性的架构反馈。
## 关于
`@cocreate/server` 由 CoCreate Developer Experience Team 设计、构建和支持。
`@cocreate/server` 由 CoCreate 维护和资助。CoCreate 的名称和徽标是 CoCreate, LLC 的商标。
标签:AST执行, MITM代理, Web服务器, 分布式系统, 后端开发, 响应大小分析, 多租户架构, 实时协作, 无依赖核心, 自动化payload嵌入