admin
|
488b1581e9
|
perf: 优化dashboard API,41次查询12次
- 合并30次循环查询为1次(onlineTrend)
- 使用 GROUP BY DATE() 一次获取所有日期数据
- 在内存中填充缺失日期,避免 N+1 问题
- API 响应时间预计从 1-2s 降至 100-200ms
|
2026-05-06 07:55:36 +08:00 |
|
admin
|
3cf702d9b8
|
fix: 修复ECharts动态import方式
- import('echarts') 返回模块命名空间对象,不是 { default }
- 移除错误的解构语法
|
2026-05-06 07:50:47 +08:00 |
|
admin
|
92813fde49
|
fix: 修复Alpine上MIME类型检测失败
- fallbackMimeTypes 硬编码映射优先,不依赖系统 mime.types
- Docker 镜像安装 mailcap 包提供 /etc/mime.types
- 移除不可靠的 mime.AddExtensionType 方案
|
2026-05-05 19:58:56 +08:00 |
|
admin
|
041eeaf34b
|
ci: 优化构建速度
- 移除 arm64 平台(QEMU 模拟导致构建慢 10-20 倍)
- 移除 no-cache(启用 Docker 层缓存,依赖不变时复用)
- 预计构建时间从 10-30 分钟降至 2-3 分钟
|
2026-05-05 19:20:50 +08:00 |
|
admin
|
6c99256e71
|
fix: 修复gzip中间件ERR_INCOMPLETE_CHUNKED_ENCODING
- 首次Write时删除Content-Length头(压缩后大小不同)
- 非压缩类型直接透传,不经过gzip writer
- 移除有问题的noopWriter方案
|
2026-05-05 14:58:47 +08:00 |
|
admin
|
d584b578f1
|
perf: 优化前端加载速度
- 改用 mime 标准库替代硬编码 MIME 类型(更优雅)
- 全局 gzip 中间件替代手动压缩(覆盖所有响应)
- ECharts 改为动态 import,首屏不再加载 1.1MB
- manualChunks 拆分 vue-vendor/ui-vendor 减小主包
- 首屏 gzip 体积从 544KB 降至 236KB(减少 57%)
|
2026-05-05 13:18:40 +08:00 |
|
admin
|
bc30afe106
|
perf: 添加gzip压缩提升前端资源加载速度
- 对JS/CSS/HTML/JSON/SVG等文本资源启用gzip压缩
- 传输体积可减少70-80%,大幅提升页面加载速度
- 图片和字体等已压缩格式不重复压缩
|
2026-05-05 12:15:46 +08:00 |
|
admin
|
bb802e765c
|
fix: 用硬编码MIME映射替代mime.TypeByExtension
- Alpine镜像缺少/etc/mime.types导致TypeByExtension不可靠
- 使用getContentType函数硬编码常见Web文件MIME类型
- 不再依赖系统环境,确保所有平台行为一致
|
2026-05-05 04:12:12 +08:00 |
|
admin
|
a1e3306fc7
|
fix: 注册MIME类型解决Alpine镜像js文件返回octet-stream的问题
- mime.TypeByExtension在Alpine精简环境中缺少.js等MIME映射
- 使用mime.AddExtensionType在启动时注册常见Web文件类型
|
2026-05-05 03:28:23 +08:00 |
|
admin
|
9253cb23bf
|
fix: 从源头解决下划线文件名问题并优化代码
- Vite配置chunkFileNames去除开头的下划线,避免Go embed/http.FS过滤
- 使用mime.TypeByExtension自动推断Content-Type,替代手动映射
- 移除调试日志(文件列表、全局中间件打印)
|
2026-05-05 02:21:13 +08:00 |
|
admin
|
25fc6e89f7
|
fix: 修复http.FS过滤下划线开头文件导致404的问题
- 使用fs.ReadFile直接读取文件内容替代c.FileFromFS
- http.FileServer/http.FS默认过滤以_开头的文件
- 手动设置Content-Type确保正确的MIME类型
- 移除不再需要的net/http导入
|
2026-05-05 00:44:54 +08:00 |
|
admin
|
13472e56ef
|
debug: 添加嵌入文件系统调试日志
- 启动时列出所有嵌入的assets文件
- 请求assets文件时添加文件查找日志
|
2026-05-04 23:33:19 +08:00 |
|
admin
|
c543b80df1
|
fix: 修复Go embed排除下划线开头文件的问题
- 使用all:前缀确保嵌入所有文件,包括以_开头的文件
- Vite生成的chunk文件名如_id_-0eu8SYUT.js以_开头
- Go的embed指令默认排除_开头的文件,导致这些资源404
|
2026-05-04 21:14:21 +08:00 |
|
admin
|
a29ceb690d
|
fix: 禁用Docker构建缓存确保前端资源正确构建
- 移除GitHub Actions的Docker缓存配置
- 添加no-cache: true确保每次构建都是全新的
- 解决前端资源文件不更新的问题
|
2026-05-04 20:37:05 +08:00 |
|
admin
|
e229e31079
|
fix: 修复assets文件路径拼接错误
- Gin的*filepath参数包含开头的/,需要去除
- 修复路径拼接导致的双斜杠问题
- 移除自动刷新逻辑,这不是正确的解决方案
|
2026-05-04 16:23:26 +08:00 |
|
admin
|
337ddf6bb4
|
fix: URL解码处理和移除BOM字符
- 添加assets文件路径的URL解码处理,支持特殊字符
- 添加NoRoute处理器的URL解码
- 移除dashboard.go文件中的BOM字符
- 添加Vite构建配置确保文件名格式正确
|
2026-05-04 16:06:46 +08:00 |
|
admin
|
44d65f1fbc
|
fix: 修复assets文件路径错误
- 修复通配符参数filepath只包含assets/后面的部分的问题
- 正确拼接assets/前缀以查找嵌入的静态资源文件
|
2026-05-04 14:38:46 +08:00 |
|
admin
|
16af684a32
|
fix: 资源加载失败时自动刷新页面
- 添加路由错误处理,当动态导入模块失败时自动刷新页面
- 修复 assets 文件不存在时返回 404 错误
|
2026-05-04 10:54:31 +08:00 |
|
admin
|
9937fbbae2
|
fix: 安装完成后清除旧的token和user数据
- 修复安装完成后点击前往登录时,旧的token导致直接跳转到后台的问题
- 安装完成后清除localStorage中的token和user数据
- 移除调试日志
|
2026-05-04 09:43:03 +08:00 |
|
admin
|
eb6b7d84f9
|
debug: 添加JWT密钥调试日志
|
2026-05-04 09:40:18 +08:00 |
|
admin
|
7ab899b44f
|
fix: JWT密钥YAML格式和401错误处理
- 修复JWT密钥在YAML配置文件中未加引号导致解析错误的问题
- 添加dashboard页面401错误处理,自动清除token并跳转登录页
|
2026-05-04 09:12:50 +08:00 |
|
admin
|
9262d066bb
|
fix: JWT密钥同步、地图初始化时序、API中间件错误处理
- 修复安装完成后JWT密钥未同步到viper内存的问题
- 修复地图在loading状态时DOM元素不存在导致的初始化错误
- 修复AppCryptoMiddleware中数据库错误时未正确返回错误响应的问题
- 添加数据库未初始化检查
- 移除调试日志输出
|
2026-05-04 02:22:23 +08:00 |
|
admin
|
a950acb2d6
|
fix: index.html禁用缓存,assets启用长期缓存
- index.html: Cache-Control: no-cache,防止浏览器缓存旧版本
- assets: Cache-Control: max-age=31536000,1年强缓存
|
2026-05-03 20:16:11 +08:00 |
|
admin
|
9a6c1d5e3c
|
fix: 移除Clipboard API不支持时显示的错误文案
HTTP环境下Clipboard API不可用,隐藏复制按钮而不是显示错误提示
|
2026-05-03 20:14:58 +08:00 |
|
admin
|
a93bc7dfb7
|
refactor: 改用router.push并清除路由守卫缓存替代window.location.href
- 添加resetInstallCheck()清除安装状态缓存
- 安装完成后调用resetInstallCheck再router.push跳转
- 保持SPA无刷新体验
|
2026-05-03 19:51:31 +08:00 |
|
admin
|
fbc2e5ac91
|
fix: 移除所有硬编码的localhost:8080,使用相对路径
- 创建utils/config.ts集中管理API_BASE和文件URL
- 删除.env文件(VITE_SERVER_API_URL=http://localhost:8080)
- env.ts默认API前缀改为/api/v1匹配后端路由
- 替换16处硬编码的localhost:8080引用
|
2026-05-03 19:48:07 +08:00 |
|
admin
|
6d5d1922f5
|
fix: 安装完成后用window.location.href跳转登录页
使用router.push可能被路由守卫拦截或缓存影响,
改用window.location.href强制刷新页面,确保路由守卫
重新检查安装状态并正确加载登录页。
|
2026-05-03 19:39:05 +08:00 |
|
admin
|
4badc37f94
|
fix: 安装完成后跳转到/login(非/auth/login)
|
2026-05-03 19:09:57 +08:00 |
|
admin
|
512a6b4594
|
fix: 移除initTicketData中自动创建dev管理员账号
initTicketData()在安装前创建dev管理员账号,
导致checkAdminExists()返回true,安装向导无法提交。
改为在dev用户不存在时跳过工单初始化。
|
2026-05-03 19:08:54 +08:00 |
|
admin
|
866ade0813
|
fix: 移除initData自动创建默认用户,避免干扰安装流程
initData()启动时自动创建admin/dev/agent默认用户,
导致安装向导提交时checkAdminExists()返回true,返回400系统已安装。
移除自动创建逻辑,管理员由安装向导创建。
|
2026-05-03 18:35:15 +08:00 |
|
admin
|
055cb56e2d
|
fix: 限制Vite构建内存防止ARM64 QEMU OOM
ARM64交叉编译时QEMU模拟器内存不足导致Vite构建被杀死(SIGILL)。
设置NODE_OPTIONS=--max-old-space-size=2048限制Node.js堆内存。
|
2026-05-03 18:03:12 +08:00 |
|
admin
|
288f683c0a
|
refactor: 移除JWT自动生成复选框,输入框留空即自动生成
- 删除jwt_auto字段和相关逻辑
- placeholder提示已说明留空则自动生成
|
2026-05-03 17:46:04 +08:00 |
|
admin
|
ef41235b07
|
fix: 安装页面API路径重复问题
api.ts的BASE_URL=/api/v1,安装页面调用api.get('/api/install/status')
导致实际请求路径为/api/v1/api/install/status(404)。
改为fetch直接请求避免baseURL前缀叠加。
|
2026-05-03 17:44:17 +08:00 |
|
admin
|
3023b4f52e
|
chore: 删除error.txt
|
2026-05-03 17:25:31 +08:00 |
|
admin
|
8b9879816d
|
fix: 修复Gin通配符路由冲突导致panic
- 改用NoRoute替代通配符路由/*filepath
- NoRoute中先检查静态文件存在再返回SHTML
|
2026-05-03 17:25:23 +08:00 |
|
admin
|
20f1bfc32d
|
fix: 嵌入式前端正确服务world.json等静态文件
- 修复/install路由返回登录页问题
- checkConfigFile只检查数据目录
- setupEmbeddedFrontend正确响应项目目录下文件
|
2026-05-03 16:57:38 +08:00 |
|
admin
|
8e7848e573
|
fix: 移除Dockerfile中复制config.yaml
config.yaml被复制到镜像中,导致checkConfigFile()始终返回true。
安装向导应该自己创建配置文件,不依赖镜像内置的默认配置。
|
2026-05-03 16:49:30 +08:00 |
|
admin
|
6293b405ed
|
fix: 安装检测需要配置文件存在才认为已安装
initData()启动时自动创建默认管理员账号,导致安装检测误判。
改为同时检查配置文件和管理员存在,配置文件只有安装向导会创建。
|
2026-05-03 16:23:35 +08:00 |
|
admin
|
3153dd8838
|
fix: 添加安装路由,修复环境变量校验和路由守卫
- 注册/install路由,安装向导页面可访问
- env.ts: VITE_SERVER_API_URL默认空字符串(相对路径)
- 路由守卫: API失败时默认跳转安装页面
|
2026-05-03 15:40:23 +08:00 |
|
admin
|
802fd7319e
|
fix: 使用entrypoint脚本自动修复挂载目录权限
- 容器以root启动,自动修复权限后切换到appuser运行
- 既保证安全性,又简化部署流程
- 无需手动chown目录
|
2026-05-03 15:10:12 +08:00 |
|
admin
|
5682f6fbb0
|
fix: 临时使用root用户运行容器解决挂载目录权限问题
|
2026-05-03 15:07:24 +08:00 |
|
admin
|
29d4c7ec10
|
fix: Dockerfile中预先创建/app/data目录并授权给非root用户
|
2026-05-03 14:41:54 +08:00 |
|
admin
|
730ad0d126
|
fix: 确保数据目录和上传目录存在后再初始化数据库
|
2026-05-03 13:40:16 +08:00 |
|
admin
|
63b3f9efb3
|
chore: 改用目录映射替代数据卷,方便数据管理和备份
|
2026-05-03 12:14:15 +08:00 |
|
admin
|
d7170b45ac
|
feat: 添加管理员账号管理命令
- list-admin: 列出所有管理员账号
- reset-password: 重置指定管理员密码
- create-admin: 创建新管理员账号
用法:
docker exec verify-app ./main list-admin
docker exec verify-app ./main reset-password <用户名> [新密码]
docker exec verify-app ./main create-admin <用户名> <密码> [邮箱]
|
2026-05-03 12:10:31 +08:00 |
|
admin
|
67a67517b0
|
feat: 添加重置管理员密码命令
用法:
docker exec verify-app ./main reset-password admin # 随机生成密码
docker exec verify-app ./main reset-password admin newpass # 指定新密码
docker exec verify-app ./main help # 查看帮助
|
2026-05-03 12:08:32 +08:00 |
|
admin
|
b3599992f3
|
chore: 简化docker-compose配置,所有配置通过web安装向导完成
|
2026-05-03 12:05:28 +08:00 |
|
admin
|
f7f92c9853
|
fix: 数据持久化到/app/data目录,简化部署配置
- 配置文件和SQLite数据库存储在/app/data
- Docker volume持久化数据
- 无需预设环境变量,安装向导自动配置
|
2026-05-03 12:03:53 +08:00 |
|
admin
|
41fe48e128
|
feat: 添加安装向导功能
- 后端:安装状态检测API、数据库连接测试、配置文件生成
- 后端:支持SQLite/MySQL数据库选择
- 后端:JWT密钥自动生成或手动设置
- 前端:安装向导界面(数据库配置、安全配置、管理员账号)
- 前端:路由守卫检测安装状态,未安装自动跳转安装页面
|
2026-05-03 11:52:34 +08:00 |
|
admin
|
507e00df52
|
chore: 移除未使用的Redis依赖简化部署
|
2026-05-03 11:37:04 +08:00 |
|