Files
webui4frpc/plan.md
jianf c1936887a2 webui4frpc: 独立可用的可视化 frpc 控制器 (M0)
- 零 frp 源码依赖,单二进制 (Go + Vue3 + VueFlow + Element Plus)
- 画布多对多连线,渲染 tcp/udp/http/https frpc 配置
- worker 进程管理:自愈、日志轮转、崩溃退避重启
- frpc 一键安装 (GitHub Releases) + 手动指定路径
- 三页 UI:状态(默认)/连接配置/设置
- 状态页实时节点/转发状态,节点可增删改启停
- 画布冲突检查:端口/域名冲突标红 + 弹窗拦截保存
- backend 单测覆盖 store/render/process/httpapi/install
- plan.md + FRPC_FEATURES_AUDIT.md 文档
2026-08-17 11:00:26 +08:00

69 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# webui4frpc 开发计划
> webui4frpc —— 独立于 frp 源码的可视化 frpc 控制器(单二进制,零 frp 代码依赖frpc 运行时一键从官方 Releases 下载或手动指定)。
## 目标
用画布方式把「本地转发项」连到「远程服务器」,自动为每台远程服务器生成 frpc 配置并拉起独立 worker 进程,避免运维反复手写 frpc 配置。
## 已完成M0骨架与核心
- [x] 独立仓库module `webui4frpc`,仅依赖 `modernc.org/sqlite`,零 frp 源码引用
- [x] 目录结构cmd / internal/{store,render,process,httpapi,install} + webVue3 + VueFlow + Element Plus
- [x] 画布模型local / remote / link 多对多连线,节点可编辑、可添加
- [x] 渲染器tcp/udp/http/https → frpc JSON 配置http 用 customDomains=`<name>.local`
- [x] worker 进程管理spawn/stop/restart、日志轮转、崩溃自愈指数退避
- [x] 一键安装 frpcGitHub Releases 手动指定路径
- [x] REST APIstatus/canvas/settings/remotes/profiles/binary
- [x] 三页 UI状态默认/ 连接配置 / 设置
- [x] 状态页:远程节点状态框 + 本地服务转发表(每 5s 轮询),节点可增删改启停
- [x] 画布可用性检查:端口冲突 / http 域名唯一性,标红 + 弹窗提示,保存前拦截
- [x] 演示环境3 本地 × 3 远程多对多全连通tcp + http 转发实测返回数据)
- [x] 后端单元测试store / render / process / httpapi / install
## 里程碑
### M1 高级传输参数P0建议优先
目标:让常用 frpc 能力可配置,保持画布简洁(折叠高级区)。
- [ ] Local 增加高级字段useEncryption / useCompression / bandwidthLimit / poolCount / metadatas / annotations渲染器 + 编辑表单 + 折叠 UI
- [ ] Remote 增加 transportprotocoltcp/quic/kcp/websocket、tls.enable、poolCount
- [ ] 渲染器补齐 transport 段输出;增加 render 单测覆盖新字段
- [ ] 高级字段随 canvas API 持久化store 表扩展 + 迁移)
### M2 HTTP/HTTPS 完善
- [ ] local http/https 增加可编辑域名字段customDomains / subdomain
- [ ] locations路径路由多配置
- [ ] httpHeaderRewrite / hostHeaderRewrite / basicAuth站点访问认证
- [ ] frps vhostHTTPPort 的显示与状态映射(状态页展示)
### M3 负载均衡与健康检查
- [ ] group / groupKey多后端负载均衡
- [ ] health checktcp / http失败剔除与恢复
- [ ] 状态页体现 LB 组与健康状态
### M4 更多代理类型
- [ ] tcpmuxHTTP/2 多路复用)
- [ ] stcp / sudp点对点加密穿透
- [ ] xtcpP2P需 kcp
- [ ] 按类型动态显示字段的表单
### M5 运维与发布
- [ ] git init + 首次 commit + .gitignore排除 node_modules/dist
- [ ] 一键构建脚本web→dist→embed→单二进制
- [ ] GitHub Actionsrelease 构建linux/windows/mac
- [ ] 配置导出/导入(备份)
- [ ] 日志查看页worker 日志 tail UI
## 审查结论摘要(详见 FRPC_FEATURES_AUDIT.md
- 已支持tcp / httpcustomDomains、token 认证、多对多、worker 管理
- 未支持stcp/sudp/xtcp/tcpmux、OIDC/TLS 证书、加密/压缩/限速/连接池、LB/健康检查、http 路由高级、插件/虚拟 IP
- 优先级P0 高级传输参数 → P1 域名字段+transport → P2 LB/健康检查 → P3 低频项
- UI 原则:高级字段折叠式 / 按类型动态显示,保画布简洁