Commit Graph
52 Commits
Author SHA1 Message Date
Su Yijun f16448d4cb feat: 发布 0.6.20,社区共享库改用 WebDAV(NAS 自带),取消中转模式(debug22)
- 每实例把匿名投票写到 NAS 的 WebDAV 文件夹(deployments/ 心跳 + votes/ 投票),互相读取本地聚合,≥2 实例见过才进社区层
- 设置改为 WebDAV 地址/账号/密码三项;删除「本实例作为共享中转」
- 全球部署量 = 心跳文件数;防污染与隐私边界不变(私网剔除、应用白名单、限量)
2026-10-25 16:52:17 +08:00
Su Yijun 9ca520c029 feat: 发布 0.6.19,共享同步兼容自签/内网中转地址(verify=False) 2026-10-25 16:20:01 +08:00
Su Yijun 92abd2c825 chore: 移除误提交的本地文件 2026-10-25 16:13:44 +08:00
Su Yijun dacbfe0f92 fix: 0.6.18 的版本号未随上次提交更新(保持 0.6.17) 2026-10-25 16:09:06 +08:00
Su Yijun 555812e9c9 fix: 发布 0.6.18,修复共享端点路由前缀(/share → /api/share)与 merged 未初始化(debug21)
- 共享中转四个端点注册成了 /share/*,调用方全走 /api/share/*,中转上的端点从未暴露(404)——修正前缀
- 共享同步在库拉取异常时 merged 未初始化导致周期收尾崩溃;初始化为 0
2026-10-25 16:04:22 +08:00
Su Yijun f5f5ca9956 fix: 发布 0.6.17,修复全球部署量两处(0.6.16 接口 500 + 前端 0 时隐藏);中转校验传入 classifier 2026-10-25 15:37:19 +08:00
Su Yijun efdda2ebca fix: deployments_with_relays 补上 db 形参(0.6.16 漏改导致 /api/system/deployments 500) 2026-10-25 15:33:11 +08:00
Su Yijun b281ab866f fix: 0.6.16 的中转校验在生产路径传入 classifier(应用白名单生效) 2026-10-25 15:26:09 +08:00
Su Yijun acb7def37d feat: 发布 0.6.16,共享库连接状态指示 + 社区库数量 + 中转端校验强化(debug20)
- 共享库状态四态显示:未启用/未配置/等待同步/已连接(失败带原因);参与共享不再误显示为未启用
- 连接成功显示社区库现有规模(IP + 域名记忆条数)和上次同步时间
- 中转端强化校验:域名格式正则、应用白名单(自定义应用与编造 ID 拒收)、单条字节票数上限
2026-10-25 15:22:20 +08:00
Su Yijun 596818848c feat: 发布 0.6.15,共享中转可见可选用、中转间自动同步;修复中转地址不回显(debug19)
- 修复 /api/settings 漏返回 share_url:值已落库但前端回读为空,看起来像无法保存
- 开启中转的实例在心跳带上公开地址;部署量接口返回可用中转列表,前端点击即可切换
- 中转实例每小时从主中转发现其它中转并同步其社区库,所有中转数据保持一致
2026-10-25 15:05:47 +08:00
Su Yijun e5a500fe2f feat: 发布 0.6.14,全球部署量在面板可见(debug16-2)
- 系统设置 → 外部数据源 → 社区共享库 显示 已部署/在线/离线(从中转拉取,中转自身直接读本地)
- 中转公开接口 /api/share/deployments 不变
2026-10-25 14:53:52 +08:00
Su Yijun 84a2cd2910 feat: 发布 0.6.13,社区共享库默认中转上线(debug16)
- 默认中转地址内置为 https://rosdpi.suyijun.top:8443,新装实例升级后自动参与共享,无需配置
- 总开关(系统设置 → 外部数据源 → 共享识别库,默认打开)可随时退出;隐私边界不变
2026-10-25 14:50:33 +08:00
Su Yijun 3d19fa27ac feat: 发布 0.6.12,Linux 单文件二进制一键部署 + 网页一键自更新 + 项目文档重写(debug18)
- PyInstaller 打包后端+前端+运行时为单文件二进制;install.sh 一键部署(systemd、SQLite 零配置起步,支持 x86_64/aarch64)
- Linux 二进制部署自动检测 GitHub 新版本,前端一键更新(下载、原子替换二进制、自动重启服务);Docker 部署提示 compose pull
- CI 新增 linux-binary 任务,每个版本构建 Linux 二进制并附加到 GitHub Release(amd64)
- README 与 Docker Hub 介绍按双部署形态与新功能重写
2026-10-25 14:35:21 +08:00
Su Yijun 8d7fadfc62 feat: 发布 0.6.11,域名学习并共享(debug17)
- 本地自学习库新增「域名 → 应用」层:host_domain_day 域名行按字节数取多数,精确域名匹配,识别库没认出时先查这层
- 社区共享扩展到域名:上报/聚合/发布新增域名条目(≥2 实例见过才发布),ShareDomain 表,本地实测优先
- 识别库面板本地行同时显示 IP 记忆与域名记忆规模
2026-10-25 14:19:55 +08:00
Su Yijun a5d6df5245 ci: GitHub Release 支持主线提交自动发版(版本号没发过就补) 2026-10-25 14:08:02 +08:00
Su Yijun 039054e047 feat: 发布 0.6.10,社区共享库 + 全球部署量(debug16)
- 本地自学习库互通:实例开启「共享中转」后,其它实例上报各自实测的 IP→应用 匿名投票(≥2 实例见过才发布),并拉取社区库合并;本地实测优先,社区只补空白
- 隐私与防污染:只含远端 IP + 应用 ID + 字节票数,不含本机终端/域名记录/自定义应用;私网、保留、组播地址剔除;上报限量、过期清理
- 中国环境以 IPv6 公网为主:IPv6 按 /64 前缀聚合共享与匹配(精确地址跨实例几乎不重复,凑不满投票)
- 全球部署量:实例每小时心跳(匿名 ID + 版本号),中转公开 /api/share/deployments(总数/在线/离线)
- 共享识别库总开关(默认打开);compose 可用 SHARE_URL / SHARE_TOKEN
- 新数据表 share_entries、share_deployments(启动自动创建)
2026-10-25 14:01:37 +08:00
Su Yijun 509b421387 ci: 主线构建自动打版本标签(读 backend/app/__init__.py),修复 Docker Hub 未打标签
0.6.8 / 0.6.9 只推了 main 提交、没打 git 标签,semver 标签不生效,Docker Hub 版本号停在 0.6.7。
现在每次主线构建都从代码里读版本号,latest 和版本标签同时推送;git 标签 v* 仍然可用。
2026-10-25 13:19:49 +08:00
Su Yijun 4c7784b44c feat: 发布 0.6.9,识别库面板新增「本地自学习」层(debug15-1 上屏)
- 后端 /api/library 的 sources 追加 local 行(IP 记忆条数、上次重建时间)
- 前端识别库分组的第五层「本地自学习」,中英文文案齐备;大小列显示 IP 记忆条数
2026-10-25 12:30:09 +08:00
Su Yijun a251857b37 fix: 0.6.8 的列宽自动迁移没有生效——inspector 列字典不含 length 键,改从反射类型对象取 2026-10-25 12:09:42 +08:00
Su Yijun 9add509a1e fix: 发布 0.6.8,修复落库卡死(在线终端 0 根因)、本地自学习库、组播噪音过滤(debug15)
- access_log.remote 45→255 并在启动时自动迁移存量库;代理连接 remote 恢复只存 IP(长域名曾让每分钟落库全部失败,在线终端 0、统计停更)
- 本地自学习库(debug15-1):host_domain_day 实测的 IP→应用 沉淀为长期记忆,每小时重建热加载,DNS 缓存过期 / DoH / 裸 IP 流量按记忆归类
- 历史重算落库改 upsert + 加锁串行化,IntegrityError 纳入重试(审计 P1-1:并发重算撞主键 1062 整笔回滚)
- 组播 / 广播流量(SSDP、mDNS)不再计入统计(debug15-2:单设备月发几百 MB SSDP 全落「其它」)
2026-10-25 12:02:08 +08:00
Su YijunandClaude Opus 5.5 f2d4f4145a fix: 发布 0.6.7,修复历史重算反复搬移 / 降级、识别库自动登记误判、手动深色主题配色重叠(debug13、debug14 复查)
- 重算只处理今天以前的数据:0.6.6 每次自动重算都把当天累计字节再搬一遍
- 重算只升级不降级:不再把实时按 IP 段 / 端口认出的应用改回 HTTPS、把 HTTPS 改成其他
- 自动重算按识别库变化或过零点触发,不再看 DNS 缓存行数;启动 15 分钟后才首跑
- 上游新目录下载后按现有识别库投票定归属(并入已有应用 / 建该类应用),名字整词匹配兜底;跳过公司级大杂烩和广告隐私列表
- 自动登记的新应用无需重启生效
- 手动深色主题换成 17 色;操作日志脱敏 AdGuard 密码

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 02:27:57 +08:00
Su Yijun 636281f492 feat: 发布 0.6.6,识别库智能化:上游更新自动建规则库、自动重算历史;修复 AdGuard Home 读到 0 条(debug14)
- 修复 AdGuard Home 新版查询日志 API 返回 {"data": [...]} 导致 0.6.5 按旧版 entries 解析、应答恒为 0
- 上游(blackmatrix7/Hagezi/UT1)出现新目录或列表时自动登记成新应用:类别按名称猜测,存 data/lists/rules_auto.yaml,手工映射优先
- 重算历史分类对纯 IP 行反查 DNS 缓存拿域名再分类;缓存过期不把已归类的行搬回笼统分类(防倒退)
- 识别库更新 / DNS 映射积累后自动重算历史(内容指纹判断,跟随「自动更新」开关);「立即检查更新」后同样触发
2026-10-25 01:58:11 +08:00
Su Yijun ff5043bb8e feat: 发布 0.6.5,外部数据源接入 AdGuard Home、ASN 识别中国自营内容商、历史分类重算、DPI 配色 17 色去重(debug13)
- 外部数据源新增 AdGuard Home 查询日志源(双层 NAT 场景补全下级终端的域名),与 MosDNS 同管线,可同时启用
- apps.yaml 给抖音/B站/爱奇艺/米哈游/京东/淘宝/网易等中国自营内容商补 ASN 段,无域名流量按自营网段归类
- blackmatrix7 新增 GovCN(政务网站)、IPTVMainland(IPTV 电视)、EncoreTVB(TVB 频道)三个来源
- 识别规则页新增「重算历史分类」:规则升级后近 31 天历史流量按新规则重新归类(host_domain_day 重算 traffic_day)
- DPI 协议 17 个大类配色互异(等距色相+语义锚定,其他/未识别中性灰),替换 0.6.4 的 9 色循环
- 修复 ROS 轮询在设备上报 GBK 主机名时整个轮询失败(坏字节替换为 U+FFFD)
2026-10-25 01:24:47 +08:00
Su YijunandClaude Opus 5.5 53eafe8648 feat(0.6.4): DPI 协议配色照维盟(ECharts 默认 9 色循环),饼图按大类固定顺序排列
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 02:30:01 +08:00
Su YijunandClaude Opus 5.5 ad2b64b776 feat: 发布 0.6.4,识别库面板按识别层级分组,官方 IP 段合并成一行
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 02:23:43 +08:00
Su YijunandClaude Opus 5.5 0692a55b8c feat: 发布 0.6.3,应用大类改成维盟的 17 类,查看详情改为弹窗(debug12 第 8、9 条)
- apps.yaml 大类换成维盟 DPI 协议 17 类,小类 ID 不变;新增 HTTPS/QUIC、数据库、矿池、PCDN 小类与应用
- classify/migrate.py:分析设置“娱乐”展开旧大类、按大类的审计规则换成新大类(幂等,group_schema=2)
- 指标口径不变:游戏含手机游戏与加速器,视频含短视频与音乐
- 应用统计:页面列 17 个大类,查看详情弹出「DPI 协议详情」逐级下钻(DpiRows 组件共用)
- 配色:8 色相 + 灰阶,dataviz 校验;饼图扇区 2px 间隔

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 02:06:51 +08:00
Su YijunandClaude Opus 5.5 47674ecd3e feat: 接入 blackmatrix7 / Hagezi / UT1 识别库并定好顺序与权重,修复外部数据源未启用(debug12)
- lists.py:blackmatrix7(应用级,bm7_map.yaml 对应约 560 个目录)、Hagezi / UT1(分类级,
  64 位哈希表约 7MB),运行时下载,不进仓库和镜像;新分类“赌博博彩”与 gen_* 兜底应用
- 顺序:应用级域名(内置 / v2fly / bm7 最长后缀,平局按先后)→ 应用级 IP → 分类级(Hagezi > UT1)
  → 国内域名列表 → IP 段兜底;Tranco 前 1 万能认出类别 19.6% → 35.7%
- 修复:0.6.0 起主域名回填每次启动报错,导致外部数据源、自定义规则、LAN 设置都没加载;
  启动初始化各步互相独立

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 01:46:59 +08:00
Su YijunandClaude Opus 5.5 2585d15d53 feat: 发布 0.6.2,通知渠道照搬 EasySub、使用场景改为全局设置、识别顺序调整(debug12)
- 通知:14 种渠道与 EasySub 字段 / 实现一致(Telegram 代理与 getMe/getUpdates、飞书应用机器人、
  QQ 机器人、企业微信自建应用 + API 代理 + 检查应用、Webhook 超时与重试),旧配置自动迁移
- 场景:家庭 / 企业,企业称“员工 / 部门”;在 系统设置 → 场景与网络 全局切换,本地缓存避免菜单闪错
- 识别:国内域名列表先于官方 IP 段;IP 段重叠按最长前缀匹配;自动更新开关覆盖 ASN 与补充库

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 01:21:45 +08:00
Su Yijun 965ccc59fc fix: 修复 0.6.1 启动崩溃(main.py 里 sources 导入到模块而非单例,CI 真实 MySQL 测试拦截) 2026-10-24 00:51:30 +08:00
Su Yijun 8220d1150d feat: 发布 0.6.1,接入国内域名列表与官方 IP 段库提升识别率(debug12) 2026-10-24 00:47:02 +08:00
Su Yijun f93370a838 feat(classify): 新增国内域名列表与官方 IP 段兜底识别数据源,发布 0.7.0 2026-10-24 00:45:03 +08:00
Su Yijun 478754e8cf feat: 发布 0.6.0,落库重试、登录限速与权限失效、SQL 聚合提速、CI/容器加固 2026-10-24 00:07:20 +08:00
Su YijunandClaude Opus 5.5 053613412c v0.5.1:成员必须属于分组、可编辑删除;国家分布改为流向图(debug11)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 03:29:23 +08:00
Su YijunandClaude Opus 5.5 e3d6bc9d47 国家 / 地区分布改为流向图,域名国家持久化(debug11)
- 流向图:从本地(WAN 口公网 IP 所在国家,默认中国)飞向各国,线宽 / 气泡大小表示流量,前 5 名标名字和流量;窄屏标签放上方
- 右侧排行:名次、本地标记、条形占比,“无法定位”放最后并说明原因
- 地图数据:跨 180° 经线的环(俄罗斯远东、斐济)移到东侧,不再画出横线
- 新表 domain_geo:记录流量时存下域名连到的 IP 和国家,不再依赖会过期的 DNS 缓存
- README 截图与描述同步

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 03:26:10 +08:00
Su YijunandClaude Opus 5.5 f5d3112450 fix: 成员必须属于分组 / 部门,已有成员可编辑、删除(debug11)
- 后端:dept_id 必填且必须存在,同一分组不重名,分组下有成员时不能删除,部门改名不能重名
- 前端:列表每行编辑按钮,详情页编辑 / 删除;弹窗里分组必选,可就地新建分组;旧数据里没有分组的成员显示“未分组”
- 设备搜索框的提示文字改正

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 03:12:29 +08:00
Su YijunandClaude Opus 5.5 da1975bc92 docs: README / Docker Hub 说明更新到 0.5.0
- 功能列表按导航顺序重写:家庭成员 / 人员、使用场景、审计(外发、私接、13 种通知渠道)、管控命令、日志与留存、用户管理
- 改正过时的设置路径(接入与自检、网络与账号、运行状态里的 DNS 应答来源)
- 时间范围改为 今日 / 昨日 / 本周 / 本月;概览是饼图不是环图
- 识别库补上 MAC 厂商库,注明世界地图数据来源(Natural Earth)
- 忘记管理员密码的处理说明(现在有多个账号)
- 首次使用后的步骤:选场景、分配设备、配置通知
- 截图换成 0.5.0 界面,新增家庭成员页截图

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 03:03:07 +08:00
Su YijunandClaude Opus 5.5 49b379626a v0.5.0:审计参照深信服 AC、家用 / 企业场景、通知参照 EasySub(debug10)
人员与场景
- 人员 / 家庭成员、部门 / 分组,设备归属,按人统计流量、在线时长、常用应用
- 家用:屏幕时间、游戏、短视频上限,熬夜,不良内容,学习时间玩娱乐;企业:工作时间娱乐占比、求职倾向、上班炒股
- 行为洞察(最近 7 天标签附依据)、效率 / 时长排行
- 终端类型识别:主机名、IEEE OUI 厂商、用过的应用、随机 MAC;可手动指定

审计
- 访问日志、时间线、报表按人员 / 部门;规则范围可选人员、部门
- 新规则:大流量外发、私接路由(IP TTL);私接检测页
- RouterOS 管控命令生成(封禁应用、定时断网、限速,附撤销),不写路由器
- Syslog 外发(RFC 5424);网页设置留存天数,显示数据库占用

通知(参照 EasySub)
- 13 种渠道,磁贴选择,可用未保存配置测试,密钥遮盖,旧配置自动迁移
- 规则可选渠道;免打扰期间先记下,结束后汇总推送

界面
- 应用统计大类、小类固定列出,矩形树图;访问目标世界地图与国家分布
- 时间范围只保留 今日 / 昨日 / 本周 / 本月;上下行颜色全站统一

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 02:53:57 +08:00
Su YijunandClaude Opus 5.5 72ca6378f1 fix: 用户管理点「新建用户」无反应(debug10)
用户名规则的提示文案里有 @,vue-i18n 把它当链接消息语法,编译失败导致弹窗渲染中断。
字面量改写成 {'@'};check-i18n 构建前把所有文案编译一遍,同类错误在构建时就会报出。
输入框 pattern 末尾的 - 转义,Chrome 的 v 模式正则下原写法无效。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 02:00:01 +08:00
Su YijunandClaude Opus 5.5 bc10d9ceb7 v0.4.0:审计系统、用户权限、DPI 协议下钻,修复实时流量上下行一致
审计(debug8)
- 访问日志:按“访问”记录终端访问了什么,进行中的访问每分钟写入并更新,可筛选、导出 CSV,保留 30 天
- 终端详情新增访问日志、上网时间线
- 审计规则(大类 / 分类 / 应用 / 域名 / 流量 / 新设备,可限星期、时段、终端),5 个模板
- 通知推送:企业微信、钉钉、飞书、Bark、Telegram、Webhook;发送成功才标记已推送
- 日报、周报、操作日志

debug9
- 只看主路由表的默认路由,排除 DHCP 服务接口:策略路由表指向旁路由时 LAN 网桥被当成 WAN,上下行叠加成几乎一样
- 多条 WAN 合并成一张卡,全网状态始终一排
- 应用统计改成维盟式 DPI 协议三级下钻:大类 → 小类 → 应用,各列“数值 | 本级占比”,可排序、可停止刷新
- sing-box:按规则集 / 策略组名识别应用;实时连接显示策略组和出口节点;新增“代理分流”
- 访问目标显示国家 / 地区及分布
- 管理员与普通用户:普通用户只读,用户管理,删除后令牌立即失效
- 手机上饼图图例移到下方,访问日志表不再横向滑动

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 01:44:08 +08:00
Su YijunandClaude Opus 5.5 ace2eaa3a5 feat: debug7/8 接入 sing-box 与 MosDNS、ASN 识别、识别库自动更新、全站布局审计(v0.3.0)
识别准确度(debug7)
- 可选接入 sing-box Clash API:按来源终端 + 域名 + 字节记账,代理隧道与 FakeIP 流量不重复计算;未接入时代理机器流量标为旁路代理隧道
- 可选接入 MosDNS 审计日志:终端 + IP → 域名
- 地址与密钥由用户在 系统设置 → 外部数据源 填写(或环境变量),不填不启用
- IP→ASN 库(iptoasn.com,PDDL,运行时每天下载),无域名流量按归属识别;实时连接 / 访问目标显示归属与国家
- 健康指数新增旁路代理提示;概览应用数区分今日出现与规则库总数

识别库自动更新(debug8)
- 每天检查 v2fly 最新提交,下载转换后自检(抽样域名、应用数),通过后热加载,失败保留旧库
- 识别规则页新增识别库面板(来源、版本、规模、许可证、检查结果、自动更新开关)
- 转换逻辑移到 app/classify/v2fly.py,生成文件记录来源提交

布局审计
- 手机上表格隐藏次要列、名称下补充关键信息;子标签横向滑动;统计卡改为卡片样式;平板断点调整
- 系统设置拆为四个子标签;识别规则页整理;重复名称只显示一次;少量数据点的折线显示数据点
- 测试环境不启动后台定时任务,修复整点落库导致的偶发失败

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 00:47:35 +08:00
Su YijunandClaude Opus 5.5 1f0e43806a feat: debug5 图表对齐维盟、debug6 接入自检、流量流向改为实时连接与访问目标(v0.2.1)
- 流量构成改为实心饼图 + 可翻页图例;实时流量改为维盟式流量卡片(实时 / 历史 / 历史用户、单位与显示方式下拉、累计与实时速度)
- 所有折线图统一:上行钢蓝、下行青绿,正向双线,图例居中,纵轴紧凑单位;健康指数仪表盘标出差 / 中 / 良 / 优
- 配置 RouterOS API 时每 5 秒采样 WAN 口计数器,实时流量为秒级(ROS_RATE_SECONDS)
- 流量流向去掉桑基图,改为实时连接(按连接的终端、远端、应用、速率、识别依据)和访问目标排行(含只有 IP 的目标,可按主域名合并)
- 接入自检:只读读取 mangle 规则,检查 sniff-tzsp 的目标端口 / 地址 / 停用 / 命中数,生成修改命令;健康指数增加镜像规则一项

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 00:18:26 +08:00
Su YijunandClaude Opus 5.5 4c92db8042 feat: debug4 参考维盟 4.0 改版,新增健康指数、DHCP、WAN 状态等(v0.2.0)
界面
- 新 logo“七层”与 favicon;左侧图标菜单 + 顶栏面包屑 / 功能搜索;淡灰紫底色 + 白色圆角卡片
- 登录页、安装向导改为左侧等距插画 + 右侧圆角卡片
- 主机监控分为 在线终端 / 全部终端 / DHCP 租约 / 命名管理

新功能
- 全网概览仪表盘:路由器状态、网络健康指数(逐项扣分与建议)、在线终端、DHCP 地址池、WAN 线路状态、历史在线数
- 终端在线时长、连接数;DHCP 租约列表;应用实时速率;顶栏搜索;CSV 导出
- RouterOS 只读账号额外读取地址池、DHCP 服务器 / 客户端、PPPoE 客户端
- 启动时自动为旧库补新增的列

应用识别(原 0.1.5)
- 导入 v2fly/domain-list-community(MIT),约 2800 个应用、3.8 万条域名
- SNI 识别:TLS ClientHello 与 QUIC Initial(RFC 9001/9369)解析,按连接识别
- 域名查找改为 连接 SNI → 终端 DNS/SNI → 全网 IP 表

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 23:41:00 +08:00
Su YijunandClaude Opus 5.5 28135807bd feat: debug3 应用三级分类、图表重做、终端按 MAC/IP 命名(v0.1.4)
- 应用分类参照 Panabit 改为 应用大类 → 小类 → 应用:10 个大类、41 个小类、277 个应用;
  CNAME 指向 CDN 时归到 CDN 厂商;ICMP / GRE / ESP 按协议识别;已发布的应用和分类 ID 全部保留
- 图表重做:流量构成双层环图 + 排行表、按应用大类堆叠的趋势(可切换上下行)、
  带名次和占比的 Top 排行、桑基图中间列改为应用大类;配色按大类固定并通过色盲校验
- 终端命名:按 MAC 或按 IP,新增命名管理,可提前给未上线设备命名,旧备注名自动迁移
- DNS 嗅探卡片说明作用并显示应答来源;补充内网自建 DNS(AdGuard/Pi-hole)的说明

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 22:44:17 +08:00
Su YijunandClaude Opus 5.5 ab5c9f78e5 fix: 配置 ROS_URL 后概览页 500('Response' object has no attribute 'get')(v0.1.3)
httpx 的 raise_for_status() 成功时返回响应对象本身,原写法把响应对象当成 JSON 存进了路由器状态。
同时给出可操作的 RouterOS 连接错误提示,并新增模拟 REST 接口的测试。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 01:02:44 +08:00
Su YijunandClaude Opus 5.5 c8af9373ac fix: 自动建库时未去掉库名,导致仍报 Unknown database
SQLAlchemy 2.0 的 URL.set(database=None) 表示不修改,改用 _replace。由 CI 中的真实 MySQL 安装向导测试发现。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:49:07 +08:00
Su YijunandClaude Opus 5.5 578b65636f fix: MySQL 复合主键不自增;CI 把 MySQL 测试报错写入公开注释
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:46:34 +08:00
Su YijunandClaude Opus 5.5 1488ab667c feat: debug2 首次使用安装向导,在网页上填写 MySQL 信息(v0.1.2)
- 数据库连接改为运行时初始化:DATABASE_URL > data/db_config.json > 安装向导
- 新增 /api/setup/status|test|save 与安装向导页(连接数据库 → 设置管理员)
- 连接失败给出可操作的中文提示;有配置但暂时连不上时自动重试,不需要重填
- docker-compose.yml 不再包含数据库设置;README / DOCKERHUB.md 改为“建库 → 启动 → 网页填写”
- CI 增加真实 MySQL 8.4 上的安装向导测试

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:42:29 +08:00
Su YijunandClaude Opus 5.5 2391acd31b docs: debug2 默认连接已有 MySQL,README 指导建库建账号(v0.1.2)
- docker-compose.yml 只含 ros-dpi,DATABASE_URL 指向用户已有的 MySQL
- README / DOCKERHUB.md 新增“准备数据库”:SQL、图形界面操作、远程连接注意事项、常见错误
- 自带 MySQL 的部署方式改为 docker-compose.with-mysql.yml

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:35:01 +08:00
Su YijunandClaude Opus 5.5 75ec483768 ci: Docker Hub Overview 同步改用 peter-evans/dockerhub-description
旧脚本用已变更的 /v2/users/login + JWT 认证,同步一直失败。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:25:48 +08:00
Su YijunandClaude Opus 5.5 9626ab936b ci: 升级 actions 版本(Node.js 20 弃用)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:20:21 +08:00