Mix Space Core
Mix Space æ ¸å¿ƒï¿½?务;基于
nestjs(nodejs),需安装mongoDB和Redis方�?�完整�?行。
v3 还是使用
nestjs进行�?构,之�?的版本在 æ¤ä»“库。
æ¤é¡¹ç›®ï¿½?带主站,�?�以使用以下项目(选一)进行部署。
接�?�文档通过开�?�环境 Swagger 查阅。
现有的比较有�?�?的一些�?玩�?的实现:
- 实时日志输出。通过 Socket.IO + 劫�?
process.stdout实现。 - PTY 支�?。
- 云函数
Docker 部署(建议)
cd
mkdir -p mx/server
cd mx/server
wget https://fastly.jsdelivr.net/gh/mx-space/mx-server@master/docker-compose.yml
docker-compose up -d宿主部署
需�?以下环境:
- Node.js 16.10+
- MongoDB
- Redis
现有 macOS(x86)�?Linux(x86) 的已构建产物。使用以下脚本�?��?手动构建直接�?行。
curl https://cdn.jsdelivr.net/gh/mx-space/mx-server@master/scripts/download-latest-asset.js >> download.js
zx ./download.js
cd mx-server
node index.js或者手动下载 release,之�?�解压然�?�
node index.js
所有的�?èµ–éƒ½æ‰“åŒ…è¿›äº†äº§ç‰©ï¼Œæ— éœ€é»‘æ´žä¸€èˆ¬çš„ node_modules
开�?�环境
git clone https://github.com/mx-space/mx-server
cd mx-server
pnpm i
pnpm dev
项目结构
.
├── app.config.ts # 主程�?�?置,数�?�库�?程�?�?第三方,一切�?��?置项
├── app.controller.ts # 主程�?æ ¹æŽ§åˆ¶å™¨
├── app.module.ts # 主程�?æ ¹æ¨¡ï¿½?�,负责�?�业务模�?�的�?��?�
├── common # å˜æ”¾ä¸é—´ä»¶
│ ├── adapters # Fastify 适�?器的�?置
│ ├── decorator # 业务装饰器
│ ├── exceptions # 自定义异常
│ ├── filters # 异常处�?�器
│ ├── guard # 守�?�与鉴�?�
│ ├── interceptors # 拦截器, 数�?�过滤与�?åº”æ ¼ï¿½?化处�?�
│ ├── middlewares # ä¼ ç»Ÿï¿½?义上的ä¸é—´ä»¶
│ └── pipes # 管�?�
├── constants # 常�?
├── main.ts # 引入�?置,�?�动主程�?,引入�?��?全局�?务
├── modules # 业务逻辑模�?�
├── processors # æ ¸å¿ƒè¾…åŠ©æ¨¡ï¿½?�
│ ├── cache # Redis 缓å˜ç›¸å…³
│ ├── database # Mongo 数�?�库相关
│ ├── gateway # Socket.IO 相关
│ ├── helper # 辅助类
│ └── logger # 自定义 Logger
├── shared # 通用模型
│ ├── dto # 数�?�验�?模型
│ ├── interface # 接�?�
│ └── model # 基本数�?�模型
├── utils # 工具类
└── zx.global.ts
应用结构
-
请求处�?��?程
- request:收到请求
- middleware:ä¸é—´ä»¶è¿‡æ»¤çˆ¬è™« PHP 肉鸡扫�??路径,记录访问历�?�
- guard:守�?�过滤(鉴�?�)和角色附åŠ
- interceptor:before:�?�用于 DEBUG 请求计时
- pipeï¼šæ ¡éªŒè¯·æ±‚æ•°ï¿½?�,过滤未知数�?�,�?�法类型抛错 422
- controller & resolver:业务控制器
- service:业务�?务
- interceptor:after:数�?��?æ‹¦æˆªå™¨ï¼ˆæ ¼ï¿½?化数�?�)�?请求缓å˜
- filter:�?�获以上所有�?程ä¸å‡ºçŽ°çš„å¼‚å¸¸ï¼Œå¦‚æžœä»»ä½•ä¸€ä¸ªçŽ¯èŠ‚æŠ›å‡ºå¼‚å¸¸ï¼Œåˆ™è¿”å›žé”™è¯¯
-
拦截器�?�?�
ResponseInterceptor -> ResponseFilterInterceptor -> JSONTransformInterceptor -> CountingInterceptor -> AnalyzeInterceptor -> HttpCacheInterceptor
-
- [Aggregate] �?��?�
- [Analyze] 数�?�统计
- [Auth] 认�?
- [Backup] 备份
- [Category] 分类
- [Commnet] 评论
- [Configs] 读�?��?置项
- [Feed] RSS
- [Health] 应用�?�康检查与日志相关
- [Init] �?始化相关
- [Link] �?�链
- [Markdown] Markdown 解�?导入导出解�?相关
- [Note] 日记
- [Option] 设置
- [Page] 独立页�?�
- [PageProxy] �??代管�?�页
- [Post] �?�文
- [Project] 项目
- [Recently] 最近
- [Say] 说说
- [Search] �?�索
- [Sitemap] 站点地图
- [User] 用户
-
æ ¸å¿ƒè¾…åŠ©æ¨¡ï¿½?� processors
- [cache] Redis 缓å˜ç›¸å…³
- [database] 数�?�库相关
- [gateway] Socket.IO 相关
- 用户端
- 管�?�端
- 实时通知
- [helper] 辅助类
- [CountingService] �??供更新阅读计数
- [CronService] 维护管�?�计划任务
- 自动备份
- 推�?百度�?�索
- 清除缓å˜
- etc.
- [EmailService] �?信�?务
- [HttpService] 请求模�?�
- [ImageService] 图片处�?�
- [TqService] 任务队列
- [UploadService] ä¸Šä¼ ï¿½?务
- [AssetService] 获�?�本地资�?�?务
- [TextMacroService] 文本�?替�?��?务
- [JWTService] JWT �?务
- [BarkPushService] Bark Push �?务
开�?�
pnpm i
pnpm start
Reference
项目�?�考了 nodepress
Since 2021-08-31
Thanks
许�?�
This project is licensed under AGPLv3 licensed. 2021 Innei

