10000 GitHub - dorucioclea/mx-space-core: 😎 The next generation of RESTful API service and more feature for Mix Space, powered by @nestjs.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

😎 The next generation of RESTful API service and more feature for Mix Space, powered by @nestjs.

License

Notifications You must be signed in to change notification settings

dorucioclea/mx-space-core

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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ï¼šæ•°æ®æµæ 6DA7 ‹¦æˆªå™¨ï¼ˆæ ¼å¼åŒ–æ•°æ®ï¼‰ã€è¯·æ±‚缓存
    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

About

😎 The next generation of RESTful API service and more feature for Mix Space, powered by @nestjs.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 98.0%
  • JavaScript 1.2%
  • Other 0.8%
0