The Builder6 is a comprehensive low-code platform designed to facilitate a wide range of functionalities and integrations.
Builder6 主服务器应用,基于 NestJS 和 Moleculer 构建的综合性低代码平台服务端核心。
Builder6 Server 是一个全功能的低代码平台服务端应用,集成了多个功能模块,提供完整的后端服务支持。它采用现代化的微服务架构,结合了 NestJS 的模块化设计和 Moleculer 的微服务能力。
- 用户认证与授权: JWT 认证、OIDC 集成
- 数据管理: MongoDB 数据库支持、动态表格管理
- 文件管理: 文件上传下载、存储管理
- 实时通信: WebSocket 支持、房间协作
- 文档管理: 在线文档编辑、OnlyOffice 集成
- 邮件服务: 邮件发送和队列管理
- 自动化服务: 微服务编排、Node-RED 工作流
- API 文档: Swagger/OpenAPI 自动生成
- 插件系统: 动态加载和管理插件
``bash`
npm install @builder6/server
或
`bash`
yarn add @builder6/server
`bash开发模式
npm run start:dev
$3
`bash
yarn add @builder6/server
yarn b6 start
`环境变量
$3
`bash
服务端口
B6_PORT=5100服务地址
B6_HOST=http://127.0.0.1:5100MongoDB 连接
B6_MONGO_URL=mongodb://127.0.0.1:27017/steedosRedis 连接(用于微服务通信)
B6_CLUSTER_TRANSPORTER=redis://127.0.0.1:6379Redis 连接(用于缓存)
B6_CLUSTER_CACHER=redis://127.0.0.1:6379JWT 密钥
B6_JWT_SECRET=your-secret-keySession 配置
B6_SESSION_SECRET=your-session-secret
B6_SESSION_PREFIX=steedos-session:
`$3
`bash
启动时自动安装的软件包
B6_PLUGIN_PACKAGES=@builder6/node-red,lodash使用淘宝源
B6_PLUGIN_NPMRC=registry=https://registry.npmmirror.com启动时加载的 Moleculer 服务
B6_PLUGIN_SERVICES=@builder6/node-red启动时加载的 NestJS 模块
B6_PLUGIN_MODULE=@builder6/node-red
`集成模块
Builder6 Server 集成了以下核心模块:
-
@builder6/core: 核心基础功能(包含认证模块)
- @builder6/cli: 命令行工具
- @builder6/moleculer: Moleculer 微服务框架
- @builder6/microservices: 微服务通信
- @builder6/tables: 动态表格管理
- @builder6/files: 文件管理
- @builder6/rooms: 实时协作房间
- @builder6/email: 邮件服务
- @builder6/docs: 文档管理
- @builder6/pages: 页面管理
- @builder6/services: 微服务管理
- @builder6/steedos: Steedos 平台集成
- @builder6/onlyoffice: OnlyOffice 集成
- @builder6/sharepoint: SharePoint 集成
- @builder6/oidc: OpenID Connect 客户端
- @builder6/oidc-provider: OpenID Connect 提供者API 文档
启动服务后,可以通过以下地址访问 Swagger API 文档:
`
http://localhost:5100/api/v6
`下载 OpenAPI JSON 文档:
`
http://localhost:5100/api/v6-json
`插件系统
$3
启动时自动安装 npm 包:
`bash
B6_PLUGIN_PACKAGES=@builder6/node-red,lodash
B6_PLUGIN_NPMRC=registry=https://registry.npmmirror.com
`$3
如果包含
package.service.js 文件,将作为 Moleculer 服务加载:`bash
B6_PLUGIN_SERVICES=@builder6/node-red
`$3
如果包含
dist/plugin.module.js 文件,将作为 NestJS 模块加载:`bash
B6_PLUGIN_MODULE=@builder6/node-red
`开发
$3
`bash
npm run build
`$3
`bash
npm run build:webpack
npm run start:webpack
`$3
`bash
单元测试
npm run test测试监听模式
npm run test:watch测试覆盖率
npm run test:covE2E 测试
npm run test:e2e
`$3
`bash
npm run lint
`$3
`bash
npm run format
`$3
`bash
npm run moleculer:repl
`配置服务
系统自动识别
B6_ 和 STEEDOS_ 开头的环境变量,转换为 NestJS ConfigService 配置。例如:
`typescript
import { ConfigService } from '@nestjs/config';constructor(private configService: ConfigService) {
// B6_MONGO_URL 转换为 mongo.url
const mongoUrl = this.configService.get('mongo.url');
// B6_JWT_SECRET 转换为 jwt.secret
const jwtSecret = this.configService.get('jwt.secret');
}
`架构特点
- 微服务架构: 基于 Moleculer 的分布式微服务
- 混合通信: 支持 HTTP、WebSocket、Redis 传输
- 模块化设计: 清晰的模块边界,易于扩展
- 插件系统: 动态加载和管理功能模块
- 高性能日志: 基于 Pino 的高性能日志系统
- Session 管理: Redis 存储的分布式 Session
- CORS 支持: 灵活的跨域资源共享配置
调试外网
使用 ngrok 将本地服务暴露到外网:
`bash
brew install ngrok
ngrok http 5100
`然后配置环境变量:
`bash
B6_HOST=https://your-ngrok-url.ngrok.io
``AGPL-3.0-only