87 Commits

Author SHA1 Message Date
a155e8fcd9 feat: 更新项目服务、工具函数和模板 2026-06-25 12:11:16 +08:00
0c54af8d26 feat: Web服务和Docker监控区支持折叠/展开
- 所有分组标题(Web服务/自定义服务/归档服务等)可点击折叠
- Docker容器列表、镜像列表标题可点击折叠
- 点击标题切换 chevron 旋转动画(→↓)
- 折叠状态持久化到 localStorage,刷新保持
v3.7.5
2026-06-01 22:35:57 +08:00
f7722be539 fix: 系统资源面板未开实时监控时按页面刷新间隔自动更新
- 新增 systemRefreshTimer,切换至系统Tab时自动启动
- 未开实时监控 → 按页面「刷新间隔」秒数定时刷新系统资源
- 开启实时监控 → 按实时间隔秒数刷新(原有逻辑不变)
- 关闭实时监控 → 切回页面刷新间隔继续更新
- 修改页面刷新间隔 → 同步更新系统资源刷新频率
- 新增 watchdog.sh 守护脚本,端口掉线自动重启
v3.7.4
2026-06-01 20:35:07 +08:00
779f42c98c fix: 服务发现支持无权限查看的端口(Docker host网络等)
- ss -tlnp 输出中没有 pid= 的端口不再跳过
- pid 为 None 时显示「受权限限制」, 进程名标记「未知进程」
- 当前发现: 8088, 9119, 16031, 16067, 18789
v3.7.3
2026-06-01 18:32:10 +08:00
525620b0f8 fix: 自定义服务保存时添加port字段,修复发现扫描排除失效
之前 quickAddService 保存自定义服务时遗漏了 port 字段,
导致 scanServices 的 exclude_ports 取不到有效端口值
v3.7.2
2026-06-01 18:28:44 +08:00
ebc8d687d0 fix: 服务发现排除前端已注册的自定义服务
- API 新增 exclude_ports 查询参数,接受逗号分隔端口列表
- 前端 scanServices() 读取 localStorage 自定义服务端口传给后端
- 已添加的服务不再出现在扫描结果中
v3.7.1
2026-06-01 18:23:23 +08:00
294526b403 feat: 服务发现 - 自动扫描本机未注册的新服务
方案C: 端口扫描 + 进程信息增强

后端 /api/discovery/services:
- ss -tlnp 扫描所有TCP监听端口
- 自动排除已注册服务(projects.json) + Docker容器端口 + 系统端口(SSH等)
- 读取 /proc/<pid>/cmdline 获取进程命令行
- 读取 /proc/<pid>/cwd 获取工作目录
- 智能推测服务名(匹配python/node/java等框架特征)
- 智能推测服务类型(web/external)

前端 Web服务区底部:
- 发现未注册服务区块,点击「扫描」探测
- 每个未注册服务显示: 端口/PID/进程名/cmdline
- 一键添加按钮,自动预填弹框(名称/端口/URL/描述)
v3.7.0
2026-06-01 18:18:26 +08:00
78a4a3f1aa feat: Docker 监控面板
后端 API (routes_docker.py):
- /api/docker/containers - 容器列表(状态+资源stats: CPU/内存/网络I/O/磁盘I/O/进程数)
- /api/docker/container/<id>/stats - 单容器实时资源
- /api/docker/images - 镜像列表(大小/时间/悬空标记)
- /api/docker/system - 系统信息(版本/磁盘占用)
- /api/docker/container/<id>/start|stop|restart - 容器控制
- /api/docker/container/<id>/logs - 容器日志
- /api/docker/prune - 资源清理

前端 Docker 监控 Tab:
- 统计卡片: 总容器/运行中/已停止/镜像数/磁盘占用/可回收
- 容器列表: 状态灯+CPU/内存/NET IO/磁盘IO/端口/运行时间
- 操作按钮: 启动/停止/重启/查看日志
- 镜像列表: 有效镜像+悬空镜像分区显示
- 清理: 容器/镜像/全部一键清理
v3.6.0
2026-06-01 18:01:17 +08:00
27a84de317 feat: 邮件规则新增服务下线监控
- 监控资源新增「服务下线监控」复选框
- 勾选后出现服务选择器,列出所有Web服务
- 阈值单位为分钟(默认5分钟),范围1~1440
- 触发类型自动锁定为duration,简化配置
- checkEmailRules支持null参数,仅检查服务下线
- loadProjects同步调用,服务状态刷新即时检测
- 离线计时:服务下线时记录时间戳,恢复时自动重置
- 规则列表特殊显示:🔴 服务名 下线 ≥ X分钟
v3.5.0
2026-06-01 17:50:02 +08:00
89b5a69325 fix: 添加邮件请求日志,便于排查发送问题 v3.4.7 2026-06-01 17:44:39 +08:00
23810cf180 fix: 邮件发送改为 sendmail + Date头,对齐已验证脚本
- send_message() → sendmail()(与 send_email.py 一致)
- 新增 Date 头(部分SMTP服务器缺少会拦截)
- 增加发送前/后详细日志
v3.4.6
2026-06-01 17:37:39 +08:00
16400b0359 fix: 修复邮件发送通道
- 发件账号改为 hz4th_coder@tphai.com(替换无效的 favor@tphai.com)
- 发件人名称: 黄庄4号程序员
- 连接前添加 server.ehlo() 调用(对齐 send_email.py 工作脚本)
- 无SSL/无STARTTLS 模式
v3.4.5
2026-06-01 17:28:31 +08:00
df319b9c4a feat: 邮件通知规则三大增强
1. 新增CPU温度监控资源 - 取双CPU较高温度值判断
2. 支持多资源随机组合监控 - 复选框替代单选,任一资源超标即触发
3. 新增测试发送按钮 - 可输入收件邮箱即时测试邮件通道
- 旧版单resource字段兼容: resources数组优先,无则回退resource
- checkEmailRules重构: 逐资源独立计算触发状态,分别统计连续次数/持续时间/平均值
v3.4.4
2026-06-01 17:22:44 +08:00
ecbba836d9 feat: 监控阈值设置新增CPU温度项
- 默认阈值: 80°C (范围 30-120°C)
- 同时监控 CPU0 和 CPU1 (双路服务器)
- 超温时弹窗警告 + 桌面通知
v3.4.3
2026-06-01 17:13:06 +08:00
bb19141edc fix: 修复Web服务监控区域状态显示问题
后端 status 字段从字符串改为结构化对象 {status, ports: {port: {running}}}
前端期望的是 p.status.status 和 p.status.ports[port].running,之前的字符串格式导致:
- 所有服务状态始终显示「未知」
- 所有端口始终显示红色(已停止)
v3.4.2
2026-06-01 17:08:09 +08:00
c960048042 fix: 重写routes_system.py修复API错误
完整重写系统监控API,确保:
- 正确的数据结构匹配JavaScript期待
- system.uptime/system.boot_time/system.process_count
- cpu.count/cpu.logical
- disk.free_gb
- network.sent_mb/recv_mb/sent_speed/recv_speed
- 所有异常处理和日志记录

修复500错误,现在系统监控应该正常显示
2026-06-01 16:19:59 +08:00
51f7ee9ad0 fix: 修正系统监控API返回数据结构
匹配JavaScript期待的数据结构:
- system.uptime(系统运行时间)
- system.boot_time(启动时间)
- system.process_count(进程数)
- cpu.count/cpu.logical(CPU核心数)
- disk.free_gb(磁盘剩余空间)
- network.sent_mb/recv_mb(累计流量)
- network.sent_speed/recv_speed(实时网速)

确保前端能正确显示所有系统资源信息
2026-06-01 16:17:47 +08:00
ea904fb2b2 fix: 清理templates_full.txt开头的Python代码
移除模板文件开头的Python代码片段:
- '# ==================== HTML 模板 ===================='
- 'HTML_TEMPLATE = '''

确保templates_full.txt是纯粹的HTML模板,从<!DOCTYPE html>开始

这是导致浏览器console报错的根本原因:
- Python代码片段会被浏览器当作JavaScript解析
- 导致JavaScript执行失败,函数未定义
- closeEmailRuleModal等函数无法正常工作
2026-06-01 16:12:37 +08:00
21240dc108 fix: 替换模板中的默认IP地址为121.40.164.32
修复JavaScript代码中的默认IP值:
- localStorage.getItem('externalIp') || '192.168.2.17'
- 改为:|| '121.40.164.32'

确保所有默认值统一为正确的对外IP地址
2026-06-01 16:11:19 +08:00
1d7f4c2bed fix: 清理模板文件末尾的多余代码
移除 templates_full.txt 末尾不应该存在的Python代码片段:
- 移除 ''' 字符串结束标记
- 移除 if __name__ == '__main__' 部分
- 确保HTML模板在 </html> 处正确结束

这个问题可能导致页面加载异常
2026-06-01 16:02:59 +08:00
88c11277cf fix: 修正版本号为 v3.4.1 2026-06-01 15:56:47 +08:00
e5ae822ed2 docs: 更新版本号为 v3.4.1 2026-06-01 15:55:19 +08:00
50341749b6 fix: 使用完整模板,保留所有网页功能
 包含所有原有功能:
- 阈值设置(CPU/内存/磁盘/间隔)
- 邮件规则管理
- 自定义链接添加
- 进程列表显示
- Docker容器监控
- Cron任务管理
- 系统资源实时监控
- 配置导入导出

📝 templates_full.txt: 从v3.3.5提取的完整HTML模板(2366行)
📝 templates.py: 动态加载完整模板并替换版本号
v3.4.1
2026-06-01 15:54:45 +08:00
7904117b1d fix: 添加 cron_expression_to_human 函数到 utils.py 2026-06-01 12:31:38 +08:00
69edd1c63e refactor: 模块化重构 v3.4.0
🎯 重构目标:
- 将 3700+ 行单文件拆分为多个模块
- 清晰的职责分离,便于维护和扩展

📁 模块结构:
- config.py: 配置常量和路径
- database.py: 数据库操作
- utils.py: 工具函数(日志、进程、cron等)
- routes_cron.py: Cron管理API
- routes_system.py: 系统监控API
- routes_config.py: 配置管理API
- routes_email.py: 邮件通知API
- routes_project.py: 项目管理API
- templates.py: HTML模板
- app.py: 主入口文件

 优势:
- 易于维护:每个模块职责明确
- 易于扩展:新增功能只需添加对应模块
- 易于测试:模块独立,便于单元测试
- 易于理解:新人能快速上手

📝 更新 README.md,详细说明项目结构和API接口
v3.4.0
2026-06-01 12:30:24 +08:00
6d1cd478be merge: 合并远程更新,保留配置管理功能 2026-06-01 12:13:23 +08:00
0085c70266 feat: 统一配置文件管理 + Cron任务同步优化
- 新增配置导出/导入功能,支持一键下载和上传配置文件
- 配置文件包含:项目配置、外部服务、预警阈值、网页设置(对外IP、刷新间隔)
- 预警阈值和网页设置保存到服务器端,不再使用localStorage
- Cron任务同步改为清空旧任务,只同步当前账号实际存在的任务
- 新增API: /api/config/export, /api/config/import
- 新增API: /api/web-settings, /api/alerts (增强版)
- 优化前端:自动加载和保存网页设置
v3.3.5
2026-06-01 12:12:35 +08:00
ccc84e4d36 fix: 修正 JavaScript 字符串转义问题(使用双反斜杠)
问题分析:
- Flask render_template_string 会解析字符串中的转义序列
- Python 字符串 '\n' 在渲染后变成真实的换行符
- 导致 JavaScript 语法错误

修复方案:
- 使用双反斜杠 '\\n'
- 渲染后得到正确的 JavaScript 字符串 '\n'
- 避免换行符直接出现在 JavaScript 代码中
2026-06-01 11:47:01 +08:00
1fdb00a1ec fix: 修复 JavaScript 字符串转义错误
修复内容:
- 修正 sendDesktopNotification 函数中的字符串转义
- warnings.join('\n') 改为 warnings.join('\n')
- 解决浏览器控制台 SyntaxError 错误
2026-06-01 11:41:19 +08:00
248c951a96 fix: 将对外 IP 固定为 121.40.164.32
修改内容:
- 移除 IP 输入框,改为静态显示
- 固定 externalIp 为 121.40.164.32
- 移除 saveExternalIp() 函数
- 所有 localhost 链接将自动替换为对外 IP
2026-06-01 11:37:07 +08:00
761edef6fe feat: 增加 Docker 监控功能 v3.0.0
新增功能:
- Docker 容器监控(CPU、内存、网络I/O、磁盘I/O)
- 容器控制(启动、停止、重启)
- 容器日志查看
- 镜像列表管理
- Docker 系统信息
- 一键清理未使用资源

API 接口:
- /api/docker/containers - 容器列表
- /api/docker/container/<id>/stats - 容器资源统计
- /api/docker/images - 镜像列表
- /api/docker/system - Docker 系统信息
- /api/docker/container/<id>/start|stop|restart - 容器控制
- /api/docker/container/<id>/logs - 容器日志
- /api/docker/prune - 资源清理

前端:
- 新增 Docker 监控 Tab
- 容器卡片展示(状态、资源使用)
- 镜像列表展示
- 操作按钮(刷新、清理)
v3.0.0
2026-06-01 11:30:15 +08:00
5f9439c8a9 chore: 更新仓库地址到hz4th_coder账号下 v3.3.4 2026-06-01 11:15:24 +08:00
0d0354ac4e feat: CPU温度监控 + 端口统一调整为16022
- 添加双CPU Package温度显示 (CPU0/CPU1)
- 端口从19013改为16022
- projects.json精简配置,适配hz1服务器
- Git仓库地址更新为新地址
2026-06-01 11:08:08 +08:00
47a38032a6 fix: AI Chat App启动路径修正,directory改为backend目录 2026-04-29 16:22:37 +08:00
b59931f357 feat: 添加AI Chat App项目配置 2026-04-29 16:18:28 +08:00
1420b08a43 fix: 完全修复内存图标 - ri-database-2-line v3.3.3 2026-04-24 10:48:30 +08:00
cd5bdb5938 fix: 修复内存使用率图标不显示问题
- ri-memory-card-line 不是有效的 Remix Icon
- 替换为 ri-database-2-line 图标
v3.3.2
2026-04-24 10:42:29 +08:00
69ade8dcbb feat: 进程列表显示开关(默认不显示) 2026-04-24 00:20:20 +08:00
7926a5b51f feat: 实时监控显示CPU占用最高的进程列表 v3.3.0 2026-04-23 23:58:38 +08:00
26e0ed26e1 fix: renderEmailRules函数语法错误修复 2026-04-23 23:40:55 +08:00
edbaa9a257 feat: 邮件通知规则多种触发机制 v3.2.0 2026-04-23 23:33:35 +08:00
b2a0b66492 feat: 邮件通知规则添加静默时间区间 v3.1.0 2026-04-23 23:26:36 +08:00
9202e4c202 feat: 邮件通知规则功能 2026-04-23 23:04:24 +08:00
38db7b0606 fix: JavaScript换行符转义问题 2026-04-23 18:31:07 +08:00
6e5b963b3f fix: 修复desktopNotifyEnabled变量重复声明 2026-04-23 18:27:08 +08:00
a201b0356a fix: JavaScript变量声明顺序修复 2026-04-23 18:08:57 +08:00
71dd1d3aff feat: 系统桌面通知功能 v2.9.0 2026-04-23 17:54:02 +08:00
55cc408881 feat: 系统资源阈值监控和弹窗警告 v2.8.0 2026-04-23 17:48:31 +08:00
ca7527918d feat: 实时监控频率可调节 v2.7.0 2026-04-23 17:35:59 +08:00
7f7f71a286 feat: 系统资源实时监控和网速显示 v2.6.0 2026-04-23 17:28:49 +08:00