64 Commits
Author SHA1 Message Date
Su YijunandClaude Opus 5.5 fdc190abb6 feat: 发布 0.6.25,只读 API 令牌(系统设置 → 用户管理)与给 Home Assistant 的汇总接口 /api/ha/summary
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 21:44:35 +08:00
Su YijunandClaude Opus 5.5 d89200d76a docs: README 截图换成 0.6.24 界面(17 类配色),补流量流向和家庭成员截图
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 20:33:38 +08:00
Su YijunandClaude Opus 5.5 1ecd9ff308 docs: 重写 README——功能表格化、三步上手、部署方式对比、升级与安全建议、环境变量分组,英文部分同步到当前版本
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 20:19:56 +08:00
Su YijunandClaude Opus 5.5 5d277c1b88 feat: 发布 0.6.24,Linux 服务改为专用账号非 root 运行、审计规则累计与已提醒状态重启不丢、外部数据源页加载社区共享库状态、CI action 钉到 commit SHA
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:58:18 +08:00
Su YijunandClaude Opus 5.5 0019cfe3b6 feat: 发布 0.6.23,内置社区主站改为 VPS(rosdpi.vviip.dpdns.org:8443,有公网 IPv4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:00:05 +08:00
Su YijunandClaude Opus 5.5 d91c78b0ff fix: 全站审计第三批——通知密钥遮挡与脱敏、CSV 公式注入、首次设置安装码、删号旧 token、外部源地址脱敏、审计跨午夜时段、清理容错与索引、发版串行与 install.sh 配置迁移;发布 0.6.22
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 18:46:39 +08:00
Su YijunandClaude Opus 5.5 1ad7621e65 fix: 全站审计第二批——采集来源白名单、IPFIX 模板与 TLS 重组上限、DnsMap 加锁、ECH 外层名、CNAME 链、DNAT 端口、IPv6 扩展头、ASN 缓存失效
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 18:34:47 +08:00
Su YijunandClaude Opus 5.5 65c7eb61e9 fix: 全站审计第一批——落库容错与截断、增量重算、本地库不学笼统结论、管控脚本防注入、登录锁定、自更新校验、发版顺序与 arm64、install.sh 加固
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 18:31:02 +08:00
Su YijunandClaude Opus 5.5 53136e20b0 feat: 0.6.22 VPS 主站(Lucky+MySQL)模板、社区主站加固;修复 IPFIX 零长模板死循环
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 18:13:24 +08:00
Su YijunandClaude Opus 5.5 b505d854fb feat: 0.6.22 社区主站地址可在网页填写,新增 VPS 主站部署模板(debug23)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 18:03:25 +08:00
Su YijunandClaude Opus 5.5 2de45dabc7 feat: 发布 0.6.22,接入向导与文档补上 IPv6 嗅探和 FastTrack 命令;自检检查 IPv6 FastTrack
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 17:37:33 +08:00
Su YijunandClaude Opus 5.5 b0fcb7d20e feat: 发布 0.6.21,社区共享库改为项目自带社区主站,修复 0.6.20 共享不可用;自检补 IPv6 / FastTrack
- 社区主站(SHARE_HUB=true),默认地址 https://rosdpi.suyijun.top:8443;实例只需出站访问,不需要公网 IP
- 令牌注册、按来源网络(IPv4 /24、IPv6 /56 加盐哈希)计票,≥2 个网络一致且领先才发布
- ETag/304、本地缓存、限频、压缩炸弹防护;主站投票进程内计入,不再经 NAT 回环
- 修复 0.6.20:部署量接口 500、共享任务从未运行、开关保存不上;删除 WebDAV / 旧中转代码
- 接入自检:缺 IPv6 嗅探规则提示并给命令;FastTrack 已限定 connection-bytes 时不再误报
- 重算历史分类请求超时放宽到 10 分钟;新增 GET 接口烟雾测试与主站端到端测试

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 17:30:26 +08:00
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