Commit Graph
36 Commits
Author SHA1 Message Date
mrlee dfce843b50 fix(agent): HTTPS 自检证书指纹并定位端口占用并发布 v1.4.6 2026-09-28 14:57:11 +08:00
mrlee 87c072f5d4 fix(agent): 探测阶段自愈 nginx 版本目录并发布 v1.4.5 2026-09-28 14:43:59 +08:00
mrlee c92d06642f fix(agent): 修复 nginx 版本目录被误加载并发布 v1.4.4 2026-09-28 14:37:15 +08:00
mrlee 8c07e64e87 fix(agent): 自愈 HTTPS 直连地址并发布 v1.4.3 2026-09-28 14:30:35 +08:00
mrlee 4a29bcb249 fix(agent): 同步更新 transport URL 并发布 v1.4.2 2026-09-28 14:24:37 +08:00
mrlee fac9234e4d feat(agent): 增加 HTTPS pin 模式并修复隧道端口竞态 2026-09-28 14:13:57 +08:00
mrlee 1bec91cc5e feat(agent): 默认回环监听并自动建立 SSH 隧道并发布 v1.4.0 2026-09-28 13:42:21 +08:00
mrlee 49d4af27ca fix(updater): 忽略容器路径并优先使用 Compose 配置目录 2026-09-28 12:01:39 +08:00
mrlee 63538ec5b7 fix(agent): 限流状态损坏时拒绝覆盖并发布 v1.3.9 2026-09-28 11:53:58 +08:00
mrlee 454371368c feat(web): 更新示例页验证内容并发布 v1.3.8 2026-09-28 11:32:33 +08:00
mrlee 4e948f65d1 fix(updater): 复用原 Compose 项目名并保护非 Compose 部署 2026-09-28 11:24:51 +08:00
mrlee f63c28e10e feat(web): 添加示例页升级验证区块并发布 v1.3.7 2026-09-28 11:15:16 +08:00
mrlee d154aef807 fix(updater): 自动定位宿主机 Compose 目录并发布 v1.3.6 2026-09-28 11:10:14 +08:00
mrlee 3f23610e59 feat(web): 更新示例页验证内容并发布 v1.3.5 2026-09-28 10:58:06 +08:00
mrlee bed1e223cc fix(updater): 修复 Compose 文件挂载并发布 v1.3.4 2026-09-28 10:30:50 +08:00
mrlee da054517c0 feat(web): 更新示例页升级验证标识并发布 v1.3.3 2026-09-27 19:25:49 +08:00
mrlee fa9cdf913f fix(updater): 通过 raw 接口读取远端版本并发布 v1.3.2 2026-09-27 19:18:54 +08:00
mrlee 6074cfceca feat(web): 添加在线升级验证示例页并发布 v1.3.1 2026-09-27 18:58:26 +08:00
mrlee 163df0c5b0 feat(update): 支持 Docker Compose 页面一键升级并发布 v1.3.0 2026-09-27 18:43:34 +08:00
mrlee 32dfe3b6de fix(agent): Bearer Token 改为常量时间比较并发布 v1.2.21 2026-09-27 18:27:23 +08:00
mrlee d39f8a7201 chore(release): 发布 v1.2.20 2026-09-27 18:16:40 +08:00
mrlee 8d932a50f3 docs: 添加项目详细分析与 P0-P3 改进路线实施方案 2026-09-27 18:14:42 +08:00
mrlee 8f1114753d docs: 补充仅编排文件(hub 变体)部署时的升级与回滚方式
- 构建上下文是 Git 地址时,每次 --build 会重新解析仓库分支,无需 git pull;给出带 FONU_VERSION 的升级/回滚命令,并说明 scripts/upgrade.sh 需要本地源码目录、不适用于只有编排文件的部署目录

- 补充升级前后两件小事:整目录备份与启动日志确认
2026-09-27 15:34:00 +08:00
mrlee ac5d98330e feat(docker,docs): 数据目录可通过 FONU_DATA_PATH 指定(默认仍为命名卷),新增容器部署与数据指南(v1.2.19)
- 三个 compose 的挂载改为 \:/data:默认命名卷不变(老用户升级不受影响),在同层 .env 写 FONU_DATA_PATH=/vol1/docker/fonu-data 即可落到指定宿主机目录

- 新增 docs/container-deploy-and-data.md:编排文件选择、干净机器部署、数据目录与迁移(含从命名卷拷到宿主机目录)、备份三条注意(务必带上 session_secret)、升级与回滚、环境变量速查、常见问题排查

- 本轮不涉及 Go 代码,安装包未重出(dist 里 1.2.17 仍可用)
2026-09-27 15:31:26 +08:00
mrlee dda0eb876e feat(cert,scripts,docs): Linux 原生安装包与证书申请三处修复(DNS 解析器 / Buypass 下线 / ZeroSSL 报错与密钥脱敏)(v1.2.13)
- Linux 安装包:scripts/build-linux.ps1 交叉编译出 fonu-<版本>-linux-{amd64,arm64}.tar.gz(二进制 + migrations + systemd 安装脚本 + 运行时资源 + sha256),scripts/fonu-install.sh 负责装机(/opt/fonu、/var/lib/fonu、/etc/fonu/fonu.env 首次生成随机会话密钥)并新增 --reset-admin;装完直接打印初始管理员口令

- 证书 DNS-01:lego 默认读系统 resolv.conf(容器里是 Docker 的 127.0.0.11,不返回权威 NS)导致 could not determine authoritative nameservers;现显式传 AddRecursiveNameservers,默认 223.5.5.5/1.1.1.1/8.8.8.8,设置项 acme_dns_resolvers 可覆盖(system = 回到系统解析器)

- Buypass 已停止签发(2025-10-15)并终止服务(2026-04-15):从可选 CA 移除,历史记录仍可展示,直接提交会被拦下并给出中文原因

- ZeroSSL:422 时带出 error.type/error.code(非 JSON 退回截断正文);同时修掉网络错误把含 access_key 的完整 URL 写进任务日志与 app.log 的密钥泄露

- 测试:解析器列表解析 3 例 + ZeroSSL EAB 4 例(含不泄露密钥断言);gofmt / go build / go vet / go test 全绿
2026-09-27 10:10:15 +08:00
mrlee 74d731d0ac feat: 自动备份与保留策略、健康持续化与状态页、指标历史与趋势图,并修隧道判定误报与仪表盘布局(v1.2.11)
- 自动备份:每日一份(按最新备份是否在 24h 内判定,重启不重复)、保留份数可配、列表/下载/恢复/删除,恢复前先校验归档;顺手修 writeArchive 逐个检查 tar/gzip/文件 Close()(审查报告 §二)

- 健康持续化:只存状态变更(up/down/unknown)并推导可用率与不可用区间;公开状态页默认关闭、访问码存 SHA-256、按 IP 限流、只暴露域名与可用率

- 隧道判定修复:RouteHealthCandidate 新增 tunnel_known,frps 管理接口不可用时不再把「判不出来」当成「不通」(此前会误报「隧道连续不通」);汇总与徽标同样区分「无法判定」

- 指标历史:metrics_samples 纵向点表(本机 CPU/内存/磁盘 + 每规则上下行,30 天保留、查询按桶平均、不做降采样表);仪表盘趋势卡支持 1h/24h/7d

- 仪表盘布局:运行状态并入顶部统计区(运行时长补进「服务」卡);性能并入系统资源那一行,整行 4 列

- 测试:backup/metrics/frp/api/app 新增用例;gofmt、go build/vet/test、vue-tsc、vite build 全绿

- agent 无改动,AgentVersion 保持 0.12.2
2026-09-25 13:05:58 +08:00
mrlee c8264bf280 feat(notify): 告警补服务端掉线/Agent 不可达/配置漂移,巡检改 Source 接口(v1.2.10)
- 三个新事件(默认关闭):公网服务端掉线、公网 agent 不可达、配置漂移;连续失败阈值与漂移提醒间隔均可配,达标与恢复各报一次

- 避免误报:只在「用户要服务端运行」时判定掉线;ConnectionState=unknown 按健康处理;没配 agent 的服务端不参与可达性判定

- internal/monitor 改 Source 接口(Routes/Servers/Agents/Drift),frp 适配在 internal/app/monitor_source.go;「连续 N 次」抽成共用 failureTransition,通知一律在锁外调用

- 通知图标分类补齐;通知方式标签改「Webhook / IM 机器人」;新增 6 个设置项;补 serverDown/serverLabel/stateOr 测试

- agent 无改动,AgentVersion 保持 0.12.2
2026-09-25 09:54:48 +08:00
mrlee 862442e77f feat: 配置版本历史/对比/回滚、国内 IM 通知渠道、阈值告警与 API Token(v1.2.9)
- 配置版本:fsutil 版本化备份(内容相同自动去重),主 nginx.conf 与 VPS vhost 的版本列表/逐行差异/一键回滚,回滚先校验语法与 nginx -t 再写回

- agent 0.12.2:写 vhost 前留版本;nginx -t 校验失败改为恢复上一个可用版本(此前直接删文件),新增域名 vhost 版本端点,双架构二进制已重编

- 通知:补企业微信 / 钉钉 / 飞书机器人,切换预设时服务地址跟随该预设默认值

- 阈值告警:新增 internal/monitor 巡检(CPU/内存/磁盘持续超阈值、隧道连续 N 次未注册),默认关闭,带静默期与恢复通知

- API Token:api_tokens 表 + Authorization Bearer 认证,只读/读写两种范围;令牌管理与改密/退出仅限登录会话
2026-09-24 20:50:17 +08:00
mrlee 8f75e99339 fix(web,agent): P1 正确性与鉴权加固,P2 抽 fsutil 并补测试(v1.2.8) 2026-09-24 19:03:05 +08:00
mrlee 6abedbbe42 fix(security): P0 修复——备份恢复路径与权限、frps 安装白名单与 SHA-256、SSH 主机密钥 TOFU、三处凭据掩码,另修状态徽标与仪表盘文案(v1.2.7) 2026-09-24 17:06:34 +08:00
mrlee 0fce234ef3 feat(web): 公网服务端页并入服务端列表并改左列表右详情,内网穿透页改左服务端右规则(v1.2.6) 2026-09-24 15:27:26 +08:00
mrlee f75e672a45 feat: 公网反代部署漂移与全量重部署,仪表盘补公网穿透/系统资源/中国 IP 段/通知通道(v1.2.3)
仪表盘:新增「公网穿透」卡与运行状态「公网反代」行(新增 GET /api/frpmulti/routes/summary 逐台聚合);「性能」面板(今日异常/平均响应)与「流量 Top 5」;新增一行三卡「系统资源 / 中国 IP 段 / 通知通道」,系统资源来自新增跨平台采集 internal/sysinfo

仪表盘:「服务」卡不再写死「正常」,按 Fonu/Nginx/DDNS/证书四项实际状态聚合;/api/status 每 15 秒刷新并按页面可见性暂停轮询;删除死样式

公网反代:部署漂移清单(未部署/孤儿配置/未生效/内容不一致)+ 重新部署全部(逐条下发、单条失败不中断)

公网 Agent:端口矩阵补端口含义;frps 启动一致性核对;证书徽标补证书来源

FRP:frpc 版本探测失败时回落按二进制目录名推导,并逐台服务端探测

文档:新增 docs/agent-capability-plan.md(agent 能力扩展方案);VERSION 提升到 1.2.3
2026-09-24 09:20:07 +08:00
mrlee fd1661622e feat: 上游 1.0.3-1.0.5 同步第 1-8 项(v1.2.2)
剪贴板:新增 web/src/utils/clipboard.ts,5 处调用点支持非 HTTPS 环境(对齐 1.0.4)

日志中心:新增「FRP 日志」Tab,解析 frpc 日志为 时间/级别/来源/消息(对齐 1.0.3)

通知:单通道密文解密失败不再拖垮整份配置(对齐 1.0.5);容器补 TZ + tzdata(对齐 1.0.4);Telegram 代理自动补 http:// 并校验 scheme(对齐 1.0.3)

反向代理:复制不再追加「-复制」(对齐 1.0.5);监听占用校验合并表单规则与手动 Nginx 配置两张表(迁移 024 + endpoints 解析器),冲突提示写明占用规则;改端口的并发冲突改为可读提示

FRP:frps 弹窗补「VPS 防火墙放行 TCP 远程端口」提示(对齐 1.0.3);反代配置弹窗补齐内容区内边距与来源说明

文档:新增 docs/upstream-sync-plan.md(逐版本对照 + 第 5 项详细整理);VERSION 与 CHANGELOG 记 v1.2.2
2026-09-23 17:46:21 +08:00
mrlee 5b5091e1ed feat(web): 公网反代页重构(部署台账 + 弹窗对齐本地页)
- 台账改用 n-data-table:规则/域名(含复制与打开)、协议、上游/回源、健康、连接、当前上传、当前下载、总上传、总下载、更新时间、操作
- 单元格样式走 :deep():render 函数创建的节点不带 scoped 的 data-v 属性
- 修复 loadErrorMsg 从不渲染、按动作粒度 loading、切换服务端重置、轮询静默与可见性保护、移除反代二次确认
- 部署设置弹窗对齐本地反代页:900px、三段式、页脚分隔线、开关行底色,并新增右侧配置说明栏
- 新增统计区(可部署规则/已生效/健康通过/当前连接)与环境与 Nginx 卡(4 列)
- 文档:docs/proxy-remote-design.md
2026-09-23 15:22:43 +08:00
mrlee 8a98d8e4f0 feat(web): 公网 Agent 页按设计 v2 重构(功能清单驱动)
- 重写 AgentView.vue:运行状态 / 环境与依赖 / frps 控制 / Agent 生命周期 / 输出与日志 五段分区
- 补齐 5 处「数据已返回但页面未展示」:Agent 凭据状态、8080 端口、反代路由数、最后检查时间、Nginx 可用性
- 状态机:busy 按动作粒度 loading、轮询静默、切换服务端重置状态、三态区分(未加载/加载中/失败)
- 交互:卸载(含数据)二次确认;管理面板与安装 frps 常显但按条件禁用;输出改为带来源与时间的时间线
- 新增「配置查看」按钮 + 只读弹窗(getFrpFRPSConfig)
- 无障碍与响应式:section[aria-label]、aria-live、aria-hidden、320px、≤760px 触控目标、prefers-reduced-motion
- 文档:docs/agent-view-design-v2.md(设计规格)、docs/agent-view-design.md、docs/agent-view-refactor-plan.md
2026-09-23 13:54:42 +08:00
mrlee 278f8267b7 chore: 初始提交 Fonu 1.0.2
- 公网反代:Nginx 状态卡片(版本 / 运行状态 / 配置校验 / 端口监听)
- 部署设置第一、二梯队(HTTPS 开关、安全头、限流、连接数、仅中国大陆 IP)
- 隧道检测兼容 frps v0.68 / v0.71(V2 与旧版端点)
- 恢复被清空的 internal/frp/store.go、internal/api/ddns_handler.go、web/src/views/DdnsView.vue
2026-09-23 09:40:59 +08:00