The Wayback Machine - https://web.archive.org/web/20230329190922/https://github.com/mx-space/core
Skip to content

mx-space/core

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
bin
 
 
 
 
 
 
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Mix Space Core

GitHub stars GitHub issues Node.js Build CI GitHub license wakatime Docker Image Size (latest by date)

Mix Space 核心�?务;基于 nestjs (nodejs),需安装 mongoDB 和 Redis 方�?�完整�?行。

v3 还是使用 nestjs 进行�?构,之�?的版本在 此仓库。

此项目�?带主站,�?�以使用以下项目(选一)进行部署。

  • Kami (�?二次元的风格)
  • Yun (简�?的风格)

接�?�文档通过开�?�环境 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

应用结构

  • 请求处�?��?程

    1. request:收到请求
    2. middleware:中间件过滤爬虫 PHP 肉鸡扫�??路径,记录访问历�?�
    3. guard:守�?�过滤(鉴�?�)和角色附加
    4. interceptor:before:�?�用于 DEBUG 请求计时
    5. pipe:校验请求数�?�,过滤未知数�?�,�?�法类型抛错 422
    6. controller & resolver:业务控制器
    7. service:业务�?务
    8. interceptor:after:数�?��?拦截器(格�?化数�?�)�?请求缓存
    9. filter:�?�获以上所有�?程中出现的异常,如果任何一个环节抛出异常,则返回错误
  • 拦截器�?�?�

ResponseInterceptor -> ResponseFilterInterceptor -> JSONTransformInterceptor -> CountingInterceptor -> AnalyzeInterceptor -> HttpCacheInterceptor
  • 业务逻辑模�?�

    1. [Aggregate] �?��?�
    2. [Analyze] 数�?�统计
    3. [Auth] 认�?
    4. [Backup] 备份
    5. [Category] 分类
    6. [Commnet] 评论
    7. [Configs] 读�?��?置项
    8. [Feed] RSS
    9. [Health] 应用�?�康检查与日志相关
    10. [Init] �?始化相关
    11. [Link] �?�链
    12. [Markdown] Markdown 解�?导入导出解�?相关
    13. [Note] 日记
    14. [Option] 设置
    15. [Page] 独立页�?�
    16. [PageProxy] �??代管�?�页
    17. [Post] �?�文
    18. [Project] 项目
    19. [Recently] 最近
    20. [Say] 说说
    21. [Search] �?�索
    22. [Sitemap] 站点地图
    23. [User] 用户
  • 核心辅助模�?� processors

    1. [cache] Redis 缓存相关
    2. [database] 数�?�库相关
    3. [gateway] Socket.IO 相关
      • 用户端
      • 管�?�端
      • 实时通知
    4. [helper] 辅助类
    5. [CountingService] �??供更新阅读计数
    6. [CronService] 维护管�?�计划任务
      • 自动备份
      • 推�?百度�?�索
      • 清除缓存
      • etc.
    7. [EmailService] �?信�?务
    8. [HttpService] 请求模�?�
    9. [ImageService] 图片处�?�
    10. [TqService] 任务队列
    11. [UploadService] 上传�?务
    12. [AssetService] 获�?�本地资�?�?务
    13. [TextMacroService] 文本�?替�?��?务
    14. [JWTService] JWT �?务
    15. [BarkPushService] Bark Push �?务

开�?�

pnpm i
pnpm start

Reference

项目�?�考了 nodepress


Since 2021-08-31

Thanks

许�?�

This project is licensed under AGPLv3 licensed. 2021 Innei