Files
soul/开发文档/服务器管理/references/系统架构说明.md

28 KiB
Raw Blame History

卡若服务器管理系统 - 完整架构说明

一、系统定位

一句话定位让AI写完代码之后不需要任何人介入系统自动把项目"变成一个在线网站"。

核心理念

  • 代码开发 = 由 TRAE / Cursor / AI 工具完成
  • 本系统只负责:组合 + 自动化部署 + 上线 + 同步

二、整体架构图

┌─────────────────────────────────────────────────────────────────────────────┐
│                         卡若服务器管理系统 v2.0                               │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  ┌───────────────────────────────────────────────────────────────────────┐ │
│  │                           用户交互层                                    │ │
│  │  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  │ │
│  │  │  Cursor AI  │  │  终端命令   │  │  Python脚本 │  │  配置文件   │  │ │
│  │  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘  │ │
│  └─────────┼────────────────┼────────────────┼────────────────┼─────────┘ │
│            │                │                │                │           │
│            └────────────────┴────────────────┴────────────────┘           │
│                                    │                                       │
│                                    ▼                                       │
│  ┌───────────────────────────────────────────────────────────────────────┐ │
│  │                          Skill 触发层                                  │ │
│  │  ┌─────────────────────────────────────────────────────────────────┐  │ │
│  │  │  触发关键词: 服务器 / 宝塔 / 部署 / Node / SSL / DNS / MySQL   │  │ │
│  │  │  触发场景: 项目上线 / 状态检查 / 问题诊断 / 证书管理           │  │ │
│  │  └─────────────────────────────────────────────────────────────────┘  │ │
│  └───────────────────────────────────────────────────────────────────────┘ │
│                                    │                                       │
│                                    ▼                                       │
│  ┌───────────────────────────────────────────────────────────────────────┐ │
│  │                          核心组件层                                    │ │
│  │                                                                       │ │
│  │  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  │ │
│  │  │  宝塔API    │  │  SSH客户端  │  │  环境修复   │  │  服务器档案 │  │ │
│  │  │ (优先使用)  │  │ (备选方案)  │  │ (白名单等)  │  │ (配置管理)  │  │ │
│  │  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘  │ │
│  │         │                │                │                │         │ │
│  │         └────────────────┴────────────────┴────────────────┘         │ │
│  └───────────────────────────────────────────────────────────────────────┘ │
│                                    │                                       │
│                                    ▼                                       │
│  ┌───────────────────────────────────────────────────────────────────────┐ │
│  │                          功能插件层                                    │ │
│  │                                                                       │ │
│  │  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  │ │
│  │  │  宝塔部署器 │  │ SSL证书管理 │  │阿里云DNS管理│  │  MySQL管理  │  │ │
│  │  └─────────────┘  └─────────────┘  └─────────────┘  └─────────────┘  │ │
│  │                                                                       │ │
│  │  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  │ │
│  │  │  Nginx管理  │  │  状态报告   │  │  系统诊断   │  │  项目修复   │  │ │
│  │  └─────────────┘  └─────────────┘  └─────────────┘  └─────────────┘  │ │
│  └───────────────────────────────────────────────────────────────────────┘ │
│                                    │                                       │
│                                    ▼                                       │
│  ┌───────────────────────────────────────────────────────────────────────┐ │
│  │                          服务器资源层                                  │ │
│  │                                                                       │ │
│  │  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐       │ │
│  │  │    小型宝塔     │  │     存客宝      │  │     kr宝塔      │       │ │
│  │  │ 42.194.232.22   │  │ 42.194.245.239  │  │  43.139.27.93   │       │ │
│  │  │   2核4G 5M      │  │  2核16G 50M     │  │    2核4G 5M     │       │ │
│  │  └─────────────────┘  └─────────────────┘  └─────────────────┘       │ │
│  │                                                                       │ │
│  │  ┌──────────────────────────────────────────────────────────────┐    │ │
│  │  │                    外部服务                                   │    │ │
│  │  │  阿里云DNS API  |  腾讯云MySQL  |  GitHub/Coding 代码仓库    │    │ │
│  │  └──────────────────────────────────────────────────────────────┘    │ │
│  └───────────────────────────────────────────────────────────────────────┘ │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

三、核心流程图

3.1 标准部署流程

┌─────────────────────────────────────────────────────────────────────────────┐
│                        Node项目一键部署流程                                  │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│   START                                                                     │
│     │                                                                       │
│     ▼                                                                       │
│  ┌──────────────────┐                                                      │
│  │ 1. 读取部署配置  │  配置文件: 部署配置/*.json                           │
│  └────────┬─────────┘                                                      │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐                                                      │
│  │ 2. 修复API白名单 │  环境修复.py → 确保本机IP在宝塔白名单               │
│  └────────┬─────────┘                                                      │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐     ┌──────────────────┐                            │
│  │ 3. 查询服务器状态│────▶│ 宝塔API: 系统统计 │                            │
│  └────────┬─────────┘     └──────────────────┘                            │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐     ┌──────────────────┐                            │
│  │ 4. 探测空闲端口  │────▶│ SSH: netstat检查  │                            │
│  └────────┬─────────┘     └──────────────────┘                            │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐     ┌──────────────────┐                            │
│  │ 5. 创建项目目录  │────▶│ 宝塔API: 创建目录 │                            │
│  └────────┬─────────┘     └──────────────────┘                            │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐     ┌──────────────────┐                            │
│  │ 6. 上传代码压缩包│────▶│ SSH: scp上传     │                            │
│  └────────┬─────────┘     └──────────────────┘                            │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐     ┌──────────────────┐                            │
│  │ 7. 解压代码      │────▶│ SSH: unzip       │                            │
│  └────────┬─────────┘     └──────────────────┘                            │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐     ┌──────────────────┐                            │
│  │ 8. 安装依赖      │────▶│ SSH: pnpm install│                            │
│  └────────┬─────────┘     └──────────────────┘                            │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐     ┌──────────────────┐                            │
│  │ 9. 构建项目      │────▶│ SSH: pnpm build  │                            │
│  └────────┬─────────┘     └──────────────────┘                            │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐     ┌──────────────────┐                            │
│  │10. 修正启动端口  │────▶│ SSH: 修改package │                            │
│  └────────┬─────────┘     └──────────────────┘                            │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐     ┌──────────────────────────┐                    │
│  │11. 宝塔添加项目  │────▶│ 宝塔API: create_project  │                    │
│  └────────┬─────────┘     │ (失败则需手动在面板添加) │                    │
│           │               └──────────────────────────┘                    │
│           ▼                                                                 │
│  ┌──────────────────┐     ┌──────────────────┐                            │
│  │12. 绑定域名      │────▶│ SSH: 调用宝塔内部│                            │
│  └────────┬─────────┘     └──────────────────┘                            │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐     ┌──────────────────┐                            │
│  │13. 配置HTTPS     │────▶│ SSH: 修改Nginx   │                            │
│  └────────┬─────────┘     └──────────────────┘                            │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐                                                      │
│  │14. 健康检查      │                                                      │
│  │   - 端口监听?   │                                                      │
│  │   - HTTP 200?    │                                                      │
│  │   - HTTPS 200?   │                                                      │
│  └────────┬─────────┘                                                      │
│           │                                                                 │
│           ▼                                                                 │
│        SUCCESS                                                              │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐                                                      │
│  │  输出部署报告    │                                                      │
│  └──────────────────┘                                                      │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

3.2 问题诊断流程

┌─────────────────────────────────────────────────────────────────────────────┐
│                           问题诊断流程                                       │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│   用户报告问题                                                              │
│        │                                                                    │
│        ▼                                                                    │
│   ┌─────────────────┐    否    ┌─────────────────────────────────────────┐ │
│   │ 能连接服务器?  │─────────▶│ 检查项:                                 │ │
│   └───────┬─────────┘          │ - SSH连接是否正常                       │ │
│           │是                   │ - 宝塔面板是否能访问                    │ │
│           │                     │ - API白名单是否包含本机IP               │ │
│           ▼                     └─────────────────────────────────────────┘ │
│   ┌─────────────────┐    否    ┌─────────────────────────────────────────┐ │
│   │ 项目端口监听?  │─────────▶│ 检查项:                                 │ │
│   └───────┬─────────┘          │ - PM2进程是否运行                       │ │
│           │是                   │ - 宝塔面板项目状态                      │ │
│           │                     │ - npm start是否报错                     │ │
│           ▼                     │ - 端口是否被其他进程占用                │ │
│   ┌─────────────────┐    否    └─────────────────────────────────────────┘ │
│   │ Nginx配置正确 │─────────▶│ 检查项:                                 │ │
│   └───────┬─────────┘          │ - nginx -t 语法检查                     │ │
│           │是                   │ - server_name是否正确                   │ │
│           │                     │ - proxy_pass端口是否正确                │ │
│           ▼                     │ - 是否有重复配置文件                    │ │
│   ┌─────────────────┐    否    └─────────────────────────────────────────┘ │
│   │ SSL证书有效   │─────────▶│ 检查项:                                 │ │
│   └───────┬─────────┘          │ - 证书是否过期                          │ │
│           │是                   │ - 证书路径是否正确                      │ │
│           │                     │ - 是否为通配符证书                      │ │
│           ▼                     └─────────────────────────────────────────┘ │
│   ┌─────────────────┐    否    ┌─────────────────────────────────────────┐ │
│   │ DNS解析正确   │─────────▶│ 检查项:                                 │ │
│   └───────┬─────────┘          │ - dig查询A记录                          │ │
│           │是                   │ - 阿里云DNS控制台                       │ │
│           │                     │ - 本地DNS缓存                           │ │
│           ▼                     │ - 是否被代理劫持                        │ │
│   ┌─────────────────┐          └─────────────────────────────────────────┘ │
│   │ 服务器内部正常  │                                                      │
│   │ 检查客户端网络  │                                                      │
│   └─────────────────┘                                                      │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

四、文件结构说明

服务器管理/
├── .codex/skills/karuo-server-manager/   # Skill 目录
│   ├── SKILL.md                           # 主文件(触发条件+核心流程)
│   ├── references/                        # 参考文档
│   │   ├── 宝塔API接口文档.md
│   │   ├── 端口配置表.md
│   │   ├── 常见问题手册.md
│   │   └── 部署配置模板.md
│   ├── scripts/                           # 快捷脚本
│   │   ├── 快速检查服务器.py
│   │   ├── 一键部署.py
│   │   └── SSL证书检查.py
│   └── assets/                            # 资源文件
│       └── 系统架构说明.md
│
├── .cursor/rules/serverconnect.mdc        # Cursor规则文件凭证+规范)
│
├── 核心组件/                               # 核心功能库
│   ├── SSH客户端.py
│   ├── 宝塔API.py
│   ├── 服务器档案.py
│   ├── 环境修复.py
│   └── 腾讯云MySQL管理.py
│
├── 功能插件/                               # 独立功能模块
│   ├── MySQL数据库分析.py
│   ├── MySQL自动清理.py
│   ├── Nginx管理器.py
│   ├── Node管理器.py
│   ├── SSL证书管理器.py
│   ├── 宝塔中控.py
│   ├── 宝塔部署器.py
│   ├── 状态报告生成.py
│   ├── 系统诊断.py
│   ├── 阿里云DNS管理器.py
│   └── 项目深度修复.py
│
├── 部署配置/                               # JSON配置文件
│   ├── soul_部署配置.json
│   ├── zhiji_部署配置.json
│   └── ...
│
├── 状态报告/                               # 生成的报告
│   └── *.html
│
├── 开发文档/                               # 开发文档
│   ├── 服务器管理插件系统总览.md
│   ├── 宝塔API接口文档.md
│   └── ...
│
└── 配置.py                                 # 全局配置

五、使用规范

5.1 操作优先级

  1. 优先使用宝塔API - 稳定、可追溯
  2. 备选使用SSH - 用于API无法完成的操作
  3. 必要时手动操作 - 如添加Node项目到宝塔面板

5.2 安全规范

  • 不在代码中硬编码密码
  • 不执行危险命令reboot, rm -rf /等)
  • 不使用独立PM2避免与宝塔冲突
  • 操作前先检查服务器状态
  • 操作后验证结果
  • 生成操作报告

5.3 输出规范

每次操作完成后,必须输出:

  1. 操作结果(成功/失败)
  2. 关键信息(端口、域名、访问地址)
  3. 验证结果端口监听、HTTP响应
  4. 后续操作建议