diff --git a/.planning/docs/gateway-plugin-system.md b/.planning/docs/gateway-plugin-system.md index b610b53..b8b895c 100644 --- a/.planning/docs/gateway-plugin-system.md +++ b/.planning/docs/gateway-plugin-system.md @@ -6,6 +6,80 @@ --- +## 二、整体架构 + +``` +┌─────────────────────┐ +│ fengling-console │ (运维后端 - Backend) +│ web 前端 │ +└─────────┬───────────┘ + │ HTTP API + ▼ +┌─────────────────────┐ +│ fengling-console │ (运维服务端) +│ │ +│ - 路由管理 API │ ───▶ 数据库持久化 +│ - 集群管理 API │ ───▶ Redis Pub/Sub (发布事件) +│ - 插件管理 API │ +└─────────┬───────────┘ + ▲ + │ 事件订阅 + │ +┌─────────┴───────────┐ +│ fengling-gateway │ (YARP 网关多实例) +│ - YARP 代理 │ +│ - 插件执行 │ +│ - 事件监听 │ +└─────────────────────┘ +``` + +### 项目职责 + +| 项目 | 职责 | +|------|------| +| **fengling-gateway** | 纯 YARP 代理 + 事件订阅 + 插件执行 | +| **fengling-console** | 运维 API + 配置持久化 + 事件发布 | +| **fengling-console-web** | 前端 UI (Monaco Editor) | + +--- + +## 三、Web UI 管理界面 + +### 3.1 技术选型 + +| 项目 | 选择 | 理由 | +|------|------|------| +| 前端框架 | React/Vue | 独立前端项目 | +| 编辑器 | Monaco Editor | VS Code 同款,体验一致 | +| 路由 | `/gateway` | 运维平台内统一路由 | + +### 3.2 功能模块 + +``` +/gateway +├── 路由管理 (Routes) +│ ├── 列表/搜索 +│ ├── 创建/编辑/删除 +│ └── 路由规则配置 +├── 集群管理 (Clusters) +│ ├── 上下游服务列表 +│ ├── 实例管理 +│ └── 健康状态 +├── 插件管理 (Plugins) +│ ├── 已加载插件列表 +│ ├── 上传 DLL +│ └── 在线编写 C# 代码 +└── 监控统计 + ├── QPS/延迟 + └── 流量图表 +``` + +## 一、概述 + +本文档描述 YARP 网关的插件系统规划,包括 Web UI 管理界面和动态编译加载两大核心功能。 + +--- + ## 二、Web UI 管理界面 ### 2.1 技术选型 diff --git a/src/Dockerfile b/src/Dockerfile index 352f29f..97e1625 100644 --- a/src/Dockerfile +++ b/src/Dockerfile @@ -1,9 +1,9 @@ -FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base +FROM 192.168.100.120:8418/fengling/dotnet/aspnet:10.0 AS base USER $APP_UID WORKDIR /app EXPOSE 8080 -FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build +FROM 192.168.100.120:8418/fengling/dotnet/sdk:10.0 AS build ARG BUILD_CONFIGURATION=Release WORKDIR /src