Files
Havline/CHANGELOG.md
T
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

16 KiB
Raw Blame History

Changelog

All notable changes to this project will be documented in this file.

[v1.1.0] - 2026-09-19

新增

  • FRP:新增公网 fonu-agent 服务端管理基础能力——VPS 侧提供 Bearer Token API,Fonu 本地可测试 Agent、读取状态、下发 frps.toml,并在 HTTP/HTTPS 规则保存后同步公网 Nginx 反代路由
  • FRP:服务端新增「Agent 管理」弹窗——API 状态面板(连接/frps/Nginx/80-443 端口监听/已注册路由)与 SSH 生命周期操作(探测环境、一键安装/升级/卸载、SSH 诊断),安装后自动回填 Agent 地址与 Token;agent 二进制内嵌随主程序分发,无需单独下载
  • FRP:模块整体升级为多服务端管理——支持添加多台 frps(独立启动 / 停止 / 日志 / 测速 / 校验),穿透规则支持全部 8 种类型(tcp / udp / http / https / tcpmux / stcp / sudp / xtcp)与插件(static_file / socks5 / https2http 等,按插件类型校验必填字段)
  • FRP:服务端详情五项独立诊断(TCP 可达 / frpc 登录 / 代理可达 / DNS 解析 / 归属地),含最近 30 分钟可用率与延迟曲线
  • FRP:frps.toml 同源生成——服务端「详情」一键生成与 frpc 侧配置同源的服务端配置(bindPort / 认证 / webServer / 传输参数 / vhost 端口 / 防火墙放行清单);支持 token / 无认证 / OIDC 三种方式;格式对齐官方 frps_full_example.toml(v0.52.0+ TOML,v0.63.0+ 均适用)
  • FRP:穿透规则实时流量与连接数展示(需在 frps 配置 webServer 管理接口)
  • FRP:「应用配置」旁新增「使用说明」——配置流程、DDNS / 反向代理 / 证书组合说明与十个组合场景详解(双标签页 + 手风琴折叠展示)
  • FRP:frpc 客户端多版本管理(「应用配置」弹窗内下载 / 启用 / 删除 / 配置下载代理)
  • DDNS:新增「自定义 IP」——按任务设置固定 IPv4 / IPv6(如公网服务器 IP),更新时直接使用该 IP,不再检测本机出口 IP;须为公网地址,否则拒绝更新

改进

  • FRP:脱敏令牌完整闭环——Token / OIDC 客户端密钥 / frps 管理密码掩码往返保护,回传掩码不会覆盖真实凭据;表单统一「已配置」标识
  • FRP:服务端详情「配置」面板重新分组排版(描述 / 连接与认证 / 诊断)
  • 前端:使用说明弹窗对齐「添加穿透规则」弹窗的自绘外壳样式

变更

  • FRP:旧「Nginx 网关模式」退役——原 5 条 /api/frp 接口移除,由 /api/frpmulti 接管;旧实现归档为 internal/frp-1.0.2(不参与运行、可整目录删除);旧网关配置(settings 键值)保留但不再读取,升级后需在「FRP 穿透」页重新配置服务端
  • 数据库:新增迁移 015–021(FRP 多服务端核心表)与 022(DDNS 自定义 IP 字段),升级后首次启动自动应用

[v1.0.2] - 2026-09-18

新增

  • 证书:支持火山引擎 DNS 的 ACME DNS-01 验证

[v1.0.1] - 2026-09-18

新增

  • DDNS:支持火山引擎 DNS(AccessKey / Secret Access Key)
  • DDNS:委托子域与多层子域名 Zone 自动匹配(最长后缀优先,如 a.zzz.com)

改进

  • DDNS:解析记录统一展示完整域名;任务列表仅显示记录条数
  • DDNS:保存时校验域名格式(非法字符、标签长度、连字符位置)
  • 证书:火山引擎 DNS 任务申请证书时给出明确不支持 DNS-01 的提示

修复

  • DDNS:多层子域名(如 aaaa.vvv.bbb.com、www.a.zzz.com)保存后被截断的问题
  • DDNS:同一任务混用多根域/委托子域时 Zone 解析错误

[v1.0.0] - 2026-09-18

新增

  • 通知:支持 SMTP 邮件、Webhook 预设(Bark / ntfy / Gotify / 自定义)与 Telegram 机器人(可选 HTTP 代理),全局仅可启用一种方式
  • 设置页新增「测试通知」按钮,无需保存即可验证当前配置
  • 告警事件:DDNS / 证书 / 安全 / 系统分组,含 IP 变更、续签成功/失败、登录异常、Nginx 重载失败等
  • 设置页改为「常规 / 通知 / 安全 / 高级」分栏,减轻单页信息密度
  • 日志中心:系统日志、访问日志、Nginx 错误日志三 Tab;移除实时日志 SSE
  • 凭据类字段统一「已配置」标识与「留空表示不修改」占位(SMTP / Webhook / Telegram / DDNS / FRP / Basic Auth 等)

改进

  • 旧版 notify_webhook_url 自动迁移为「自定义 Webhook」
  • 通知密钥加密存储,接口不再返回明文;保存后表单状态与服务端同步
  • 系统日志中文展示(历史英文日志兼容翻译)
  • 仪表盘与反代详情「最近访问」展示反代服务名而非域名
  • README 界面截图更新为原图,两列排版展示

修复

  • 通知 / 系统设置保存后刷新丢失的问题

[v0.1.31] - 2026-09-18

新增

  • 反向代理 Nginx:支持单条规则自动/手动编辑、备份与回滚;详情页只读预览,编辑弹窗内配置
  • 设置页 Nginx 全局片段:http 块自定义编辑,默认上传大小 50M 片段与框架说明
  • Nginx 编辑器:CodeMirror 语法高亮;自动生成配置附带中文注释
  • 保存 Nginx 时基础语法校验(无 nginx 可执行文件时亦可拦截明显错误)

改进

  • 反代日志面板:移除「隐藏轮询」开关,简化日志工具栏

[v0.1.30] - 2026-09-17

修复

  • 反向代理 Basic Auth:htpasswd 文件补充 nginx 可读权限与 bcrypt 前缀兼容,修复认证后 500 错误
  • 反代连接数:按「域名 + 监听端口」统计,修复同域名多规则互相串数的问题
  • 仪表盘「今日请求」:排除错误页与 favicon 噪音,趋势改为较昨日对比

新增

  • 反代详情日志:支持全屏查看实时访问日志

[v0.1.29] - 2026-09-17

修复

  • 反向代理 Basic Auth:修复密码哈希在 Nginx 重载前被剥离导致认证不生效的问题
  • 反代上传:全局默认 client_max_body_size 50m,修复大文件上传 413 错误

改进

  • README 更新界面截图(v0.1.28)并补充开源地址与协议说明

[v0.1.28] - 2026-09-16

修复

  • 仪表盘「今日请求」:改为今日 0–24 时固定坐标轴(00:00–22:00),未来时段为空

改进

  • FRP Token:保存后显示「已保存」状态,说明不显示明文的原因
  • FRP Web 穿透:移除重复域名输入框,统一在「已同步域名」弹窗中编辑保存

[v0.1.27] - 2026-09-16

修复

  • FRP:移除无效的 pidFile 配置项,修复 frpc 启动即退出(exit status 1)
  • FRP:关闭穿透时保存按钮不可用,导致无法真正关闭
  • FRP:frps 配置随连接设置实时生成,不再展示静态示例
  • 仪表盘「今日请求」:改为滚动最近 24 小时统计,修复当前时段无数据

改进

  • Docker 镜像内置 frpc 升级至 v0.71.0

[v0.1.26] - 2026-09-16

新增

  • FRP 内网穿透(Nginx 网关模式):独立「内网穿透」页面配置 frps 连接,自动穿透本地 Nginx HTTP/HTTPS 端口
  • Docker 镜像内置 frpc v0.66.x(amd64 / arm64)
  • DDNS 页:FRP 启用时提示将域名解析到 VPS 公网 IP

[v0.1.25] - 2026-09-15

新增

  • DDNS 与证书 DNS-01:支持腾讯云 DNS(SecretId + SecretKey,区别于 DNSPod ID+Token)

[v0.1.24] - 2026-09-14

修复

  • 中国 IP 段更新后 nginx 重载失败:校验用临时文件,应用配置时改用正式的 china_cidr.conf
  • 仪表盘「今日请求」图表:从完整 access.log 按小时统计,不再仅用最近 10 条访问记录

[v0.1.23] - 2026-09-14

修复

  • 自定义错误页插图无法显示:图片路径改为公开 location,浏览器可正常加载 error.png / 429.png

[v0.1.22] - 2026-09-14

改进

  • 仅中国大陆:内网 IP(10/8、172.16/12、192.168/16 等)默认放行,无需手动加白名单
  • 自定义错误页图片内嵌进二进制,Docker 镜像补充 web/assets/image 资源目录

修复

  • 错误页目录权限:生成后自动 chmod/chown,避免 nginx(www-data)无法读取导致回退默认 403 页
  • 中国 IP 段未就绪时,仅中国大陆规则改为只拦截非公网内网地址

[v0.1.21] - 2026-09-14

新增

  • 反代安全设置:IP 黑/白名单、仅中国大陆、Basic Auth、速率/连接数限制
  • 设置页:信任代理(CDN Real IP)、全局 IP 黑名单、中国 IP 段定时更新
  • 自定义 Nginx 错误页(403 / 404 / 429 / 500 / 503)
  • 高级选项:上游 TLS 校验跳过、目标 Host 头、TLS 1.3 仅、HTTPS 安全响应头

改进

  • 中国 IP 段:同步更新 API、ghfast 镜像回退、多源下载与状态展示
  • 反代编辑/详情弹窗 UI 重构;列表域名访问链接与复制
  • 仅中国大陆 + 白名单:白名单 IP 正确豁免大陆限制(geo + 变量组合)

修复

  • 白名单模式开启但未填 IP 时的校验
  • API 测试依赖 settings 包导入

[v0.1.20] - 2026-09-13

改进

  • 反代详情改为弹窗展示,概览布局重排(信息条 + 图表/指标 + 最近访问)
  • 标题栏显示当前连接数;最近访问列表支持纵向滚动
  • 反代详情日志结构化展示(时间、方法、路径、状态码等分列)

文档

  • README 默认反代端口更新为 18080 / 9443

[v0.1.19] - 2026-09-13

修复

  • 反代详情日志:修复无法滚动的问题,悬停显示滚动条,默认跟随最新日志

[v0.1.18] - 2026-09-13

改进

  • 反代详情:概览 / 日志 Tab 切换,默认概览;日志区域撑满侧栏
  • 反代列表:状态列改为开关,可直接启用/停用
  • 反代「复制」改为填入新建表单(名称加 -复制 后缀)
  • README Docker 徽章按 semver 排序,避免显示 -amd64 标签

移除

  • 反代详情「设置」Tab 与拖动排序提示文案

[v0.1.17] - 2026-09-13

新增

  • 反代规则「备注」改为「名称」,列表以名称优先展示
  • 反代规则复制当前信息到剪贴板
  • 反代列表拖动排序(无筛选时)

[v0.1.16] - 2026-09-13

改进

  • 证书申请:首次未配置 ACME 邮箱时提示填写,前后端校验邮箱格式
  • 证书列表空状态与反代/DDNS 页风格统一

[v0.1.15] - 2026-09-13

修复

  • Docker 发版:amd64/arm64 均构建完成后再推送 latest 与版本多架构 manifest
  • 补全 web/assets/image 品牌图片资源,同步仪表盘 banner

改进

  • arm64 镜像构建:前端与 Go 在 BUILDPLATFORM 编译,缩短 QEMU 构建时间

[v0.1.14] - 2026-09-13

新增

  • ZeroSSL 证书申请支持
  • 反代规则备注字段;域名+端口唯一约束
  • 可配置默认反代监听端口(FONU_NGINX_HTTP_PORT / FONU_NGINX_HTTPS_PORT),适配飞牛 host 部署
  • docker-compose.host.yml 飞牛 host 模式部署示例
  • 全新 Web UI:品牌视觉、仪表盘、证书/DDNS/反代/设置页重构

改进

  • README 重写:飞牛 fnOS 部署说明、界面截图、Docker Hub 徽章
  • /api/version 返回默认反代端口配置
  • 移除仓库内 scripts/、cmd/seed 本地开发辅助

[v0.1.13] - 2026-09-13

修复

  • 修复证书页 TypeScript 类型错误导致 Docker 构建失败

[v0.1.12] - 2026-09-12

新增

  • DDNS:单任务支持多根域名,列表按域名展示解析 IP 与同步状态
  • 证书:申请进度弹窗与实时日志(SSE 异步任务);列表支持下载证书/私钥/ZIP
  • 反代:按规则实时访问日志、流量统计(累计/速率)与当前连接 IP 查看
  • 日志:访问/错误/运行日志分页;实时日志预载最近 100 条 Nginx 记录

修复

  • 实时日志 SSE 因中间件未转发 Flush 导致始终为空
  • Vite 开发代理对 SSE 流的缓冲问题
  • 证书申请:同一 DDNS 凭证管理多个根域(如 roven.cc + chiak.cc)时校验失败
  • 首次启动自动创建管理员并在运行日志输出初始密码(移除独立初始化页)
  • 证书申请失败写入 last_error 并在列表展示
  • 系统日志过滤无意义 API 轮询噪音

改进

  • 仪表盘/证书/DDNS 列表加载优化(轻量接口与缓存刷新)
  • Nginx 访问日志增加 request_length / bytes_sent 供流量统计
  • 反代与证书页操作按钮横排布局

[v0.1.11] - 2026-09-12

修复

  • Vite 开发服务器允许经 Nginx 反代用自定义域名访问(server.allowedHosts)

[v0.1.10] - 2026-09-12

修复

  • Windows 本地 Nginx:证书/日志使用绝对路径,HTTPS 块先于 HTTP 重定向,修复 ssl_certificate 校验失败
  • Windows 进程检测与启动:修复 isPIDAlive 误判、启动阻塞及重复拉起 Nginx 导致端口冲突
  • 系统日志写入 app.log,API 请求记录状态码;实时日志连接时预载最近条目
  • 未设置 FONU_DATA_DIR 时默认使用当前目录 .data

改进

  • 新增 scripts/dev.ps1、scripts/clean-data.ps1 便于 Windows 本地开发
  • 测试与文档示例域名统一为 example.com,移除个人域名硬编码

[v0.1.9] - 2026-09-12

修复

  • 反代保存/删除不再因 Nginx 重载卡住 30 秒:优先 SIGHUP 信号重载,失败时快速强制重启
  • 保存/更新规则先落库再重载 Nginx,避免超时后规则未写入
  • 部分成功(规则已保存但 Nginx 失败)时前端仍关闭弹窗并刷新列表

[v0.1.8] - 2026-09-12

修复

  • 修复反代规则删除无反应:删除失败时显示错误提示;Nginx 重载失败时不再回滚已删除的规则

[v0.1.7] - 2026-09-12

改进

  • 界面左下角版本号随发版标签注入,与 Docker 镜像版本一致(不再固定显示 v0.1.0)
  • 新增 GET /api/version 接口;发版时更新根目录 VERSION 文件

[v0.1.6] - 2026-09-12

修复

  • 为 Nginx 校验/重载/启动命令增加 15 秒超时,避免反代保存时无限转圈
  • 前端 API 请求增加 30 秒超时,超时后显示明确错误提示
  • Nginx 重载失败时先尝试优雅停止再重启,降低端口占用导致的卡死

[v0.1.5] - 2026-09-12

修复

  • 反代证书匹配改为读取证书库记录与磁盘文件,导入证书可正确用于 Nginx HTTPS
  • 启用 HTTPS 但域名未匹配证书时,返回明确错误(含当前证书覆盖范围)而非 Nginx 校验失败
  • 修复 HTTPS 配置生成时可能遗漏 HTTP 回退的问题

[v0.1.4] - 2026-09-12

修复

  • 修复启用 HTTPS 但证书文件不可用时,Nginx 生成 listen ... ssl 却缺少 ssl_certificate 导致反代保存失败
  • 仅在证书文件完整存在时生成 HTTPS 配置,否则自动降级为 HTTP

[v0.1.3] - 2026-09-12

新增

  • 反代多域名:一条规则支持多个前端域名、自定义监听端口,以及 IPv4/IPv6 监听开关
  • 单域名独立端口:前端地址可写 example.com:6893 覆盖规则默认端口

改进

  • 本地开发未安装 Nginx 时,保存反代规则仍写入配置并跳过校验,便于调试 UI

数据库迁移

  • 006_proxy_multi_host.sql — 反代规则多域名与监听配置

[v0.1.2] - 2026-09-12

修复

  • 修复 Nginx PID 文件为空或进程已退出时仍尝试重载,导致反代规则保存失败

[v0.1.1] - 2026-09-12

修复

  • 修复全新部署时 API 返回 null 导致仪表盘/日志等页面空白、map 报错
  • 修复 Nginx 重载使用错误 PID 路径(/run/nginx.pid)导致反代保存失败
  • 公网 IP 检测增加多个备用服务,降低 Docker 环境下单点失败概率
  • 修复 SPA 路由刷新时未正确回退到 index.html

[v0.1.0] - 2026-09-12

新增

  • DDNS 多域名:支持多条 DDNS 配置,独立管理根域名与记录
  • 证书多域名:申请/续签支持多域名与通配符(*.example.com)
  • ACME 颁发机构:申请与续签时可选择 Let's Encrypt 正式/测试环境
  • 证书导入:支持粘贴 PEM 或指定文件路径导入自签/已有证书
  • Docker 发版:推送 v* 标签自动分架构推送镜像(latest / 0.1.0 / 0.1.0-amd64 / 0.1.0-arm64)
  • 表格操作规范:所有列表操作按钮平铺展示(renderTableRowActions)

改进

  • 仪表盘:全新布局,ECharts 图表,状态卡片与日志预览
  • 日志页:分页(20 条/页),支持 ?tab= 跳转,统一时间格式
  • 证书页:概览统计、申请弹窗优化、表格自适应宽度
  • 布局:顶栏时间靠左、操作靠右,内容区铺满主区域
  • 主题:深色模式与组件样式统一

数据库迁移

  • 003_ddns_multi.sql — DDNS 多配置
  • 004_cert_acme_ca.sql — 证书 ACME CA 字段
  • 005_cert_domains.sql — 证书多域名