耗子
|
586c0df731
|
feat: 网站基本身份验证支持精确到目录
认证规则改为列表结构,每条规则可选择整站或指定目录生效,各自独立的
用户凭证与 htpasswd 文件。nginx 通过 http 上下文 map + auth_basic
变量实现,对静态、PHP、反向代理的所有 location 统一生效;Apache 使
用 Location 块。旧版整站配置读取时自动识别,保存后平滑迁移。
Closes #1767
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-27 16:51:41 +08:00 |
|
renovate[bot]
|
1df45f438b
|
chore(deps): Update non-major dependencies (#1750)
* chore(deps): Update non-major dependencies
* fix: 适配 libtnb validator v0.4.3 与 cron v0.5.4 新 API
- 自定义规则改经 WithRules/WithFallibleRules 注入,exists/not_exists 转为
FallibleRule 让数据库错误上抛而非静默失败
- openapi contrib 移除运行时 Op,端点文档改为 Document 闭包在定义处捕获类型
- SetDefault 已移除,Bind 校验器改由 service.SetValidator 注入
- cron.New 现在返回 error
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: 耗子 <haozi@loli.email>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-26 23:11:15 +08:00 |
|
耗子
|
7403acb521
|
feat: 数据表格支持表头排序
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-26 17:24:55 +08:00 |
|
耗子
|
1c8b08707f
|
fix: MySQL Top SQL 总耗时改用整除避免扫描类型不匹配
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-25 21:37:02 +08:00 |
|
耗子
|
f26cae527a
|
feat: 参数调优支持按服务器画像生成推荐配置
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-20 06:48:07 +08:00 |
|
耗子
|
bf9eb06955
|
feat: 表维护添加 VACUUM FULL 并支持多表批量操作
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-20 00:08:50 +08:00 |
|
耗子
|
3e453f4510
|
fix: 过滤 MEMORY DOCTOR 无诊断价值的彩蛋文案
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-19 22:48:17 +08:00 |
|
耗子
|
77aa2a3450
|
feat: Redis/Valkey 添加慢日志/客户端/内存诊断/大Key扫描
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-19 22:41:40 +08:00 |
|
耗子
|
0dfe577fc4
|
feat: Apache 添加参数调优
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-19 22:29:44 +08:00 |
|
耗子
|
af23f49811
|
feat: PHP 添加 FPM 进程/OPcache/Composer 管理
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-19 22:20:06 +08:00 |
|
耗子
|
d69caa6aed
|
feat: MySQL 添加进程/事务锁/TopSQL/表维护/binlog/复制运维功能
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-19 21:43:36 +08:00 |
|
耗子
|
ecd403a334
|
feat: PostgreSQL 添加会话/TopSQL/表膨胀/WAL 运维功能
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-19 21:12:44 +08:00 |
|
耗子
|
c5a3858601
|
feat: PostgreSQL 扩展列表新增 11 个常用扩展
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-19 18:55:43 +08:00 |
|
耗子
|
73bc213a0f
|
feat: PostgreSQL 添加扩展管理支持
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-19 18:39:34 +08:00 |
|
耗子
|
4e67b31d40
|
fix: 修复默认spa配置编号问题
|
2026-08-19 18:05:54 +08:00 |
|
耗子
|
5391911a97
|
fix: 修复日志查看器多处问题
- 首屏加载后不贴底:改由 useResizeObserver 把"跟随时保持贴底"维持成不变式,
覆盖弹窗入场、横向滚动条、字体度量、tab 由隐藏转可见等后续布局变化
- 向上翻页内容重复:文件日志改用首屏 size 作为反向分页锚点,
不再受跟踪期间写入的新日志影响
- 首屏到建连之间的日志丢失:follow 支持从锚点字节位置续读(tail -c +N),
重连仍只跟新增以免整段重放
- 断线重连残留的半行与新流拼接会拼出错行
- 点"跳到顶部"被翻页的位置补偿拽回原处
- 实时裁剪未退还翻页游标,导致下次上翻跳过被裁掉的那一段
- 搜索跳转改按相对位置计算,不再连带滚动外层页面
- 首屏日志不足一页时凭空出现"没有更多日志"
性能:
- ws 帧合并到 rAF 统一落盘,繁忙日志下渲染次数从帧数级降到 60/秒级
- 反向读取按字节切分,只把返回的那页转 string;首块按预估行长一次读足
- 日志行 markRaw 并移除小写副本字段
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-16 20:01:12 +08:00 |
|
耗子
|
d7fc81f550
|
fix: 日志不生效
|
2026-08-15 23:06:08 +08:00 |
|
耗子
|
e280b05891
|
feat: 优化
|
2026-08-15 22:46:22 +08:00 |
|
耗子
|
049d5c5343
|
feat: Fail2ban、Rsync、Supervisor 管理器优化
Fail2ban 规则改存 jail.d/*.local,Rsync 模块改存 rsyncd.d 并由主配置 &include 引入,
两者不再靠 # name-START/END 注释标记切主配置文件。
Fail2ban 补上修改与启用开关,顺带修掉规则列表缺字段时的 index panic;
Rsync 的只读改成真开关;Supervisor 进程编辑补上可视化表单。
同时清理两轮改动:手写循环改用 samber/lo 与 slices,去掉重复的 handler 与匿名结构体,
handler 定义顺序对齐路由注册顺序,删掉复述函数名的注释。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-15 22:27:15 +08:00 |
|
耗子
|
a6c2a60e55
|
feat: Frp 管理器支持可视化配置
frps/frpc 参数表单基于 confval 新增的 TOML 编解码就地改写主配置,保留注释与键顺序。
代理与访问者写入独立的 conf.d 目录,主配置只注入一行 includes,不接管其中手写的代理。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-15 21:45:30 +08:00 |
|
耗子
|
237b1bfcee
|
feat: 证书支持关联多个网站,close #1587
|
2026-08-15 20:54:45 +08:00 |
|
耗子
|
e8f7811aba
|
feat: 重构 CLI 命令并补全缺失功能
website create 未传网站类型导致必然失败,补全类型、代理地址、
数据库、备注等参数,并在进入 biz 层前统一走验证器校验。
新增命令:
- firewall status/on/off/list/port
- cert list/renew
- restore panel
- website cert/list,user create/delete
- backup list,app list,cron list/run/status
- database list-server
调整:
- 密码取值改为参数 > ACEPANEL_PASSWORD > 交互输入(不回显)
- 补 bind-domain/bind-ip/bind-ua 的 on 子命令
- 新增全局 --json,接入全部 list 命令
- port 支持 flag 写法,info 支持 -u 指定用户
- 位置参数命令补 ArgsUsage
修复:
- cutoff clear 清理远程日志时目录与上传路径不一致,导致远程切割
日志从未被清理,ClearStorageExpired 改为接收目标目录
- restore 缺少 panel 分支,从 FixPanel 抽出 restorePanel 复用
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-15 19:30:11 +08:00 |
|
耗子
|
b070d2d0d0
|
chore: 支持迁移用户
|
2026-08-15 10:02:37 +08:00 |
|
耗子
|
556dd6fb07
|
chore: 清理代码
|
2026-08-15 09:26:16 +08:00 |
|
耗子
|
a459c41b53
|
chore: 清理代码
|
2026-08-15 09:15:22 +08:00 |
|
耗子
|
2b97845b79
|
chore: 清理代码
|
2026-08-15 08:37:29 +08:00 |
|
耗子
|
00d3b72649
|
chore: 清理代码
|
2026-08-15 08:33:35 +08:00 |
|
耗子
|
e238422310
|
chore: 清理代码
|
2026-08-15 08:33:30 +08:00 |
|
耗子
|
dac99e9e00
|
chore: 清理代码
|
2026-08-15 07:58:26 +08:00 |
|
耗子
|
2bde7f7a73
|
chore: 清理代码
|
2026-08-15 07:30:59 +08:00 |
|
耗子
|
0fa22de098
|
feat: 添加容器数据库提醒
|
2026-08-15 07:07:52 +08:00 |
|
耗子
|
5fbd84b039
|
perf: 修复告警评估拖垮服务器负载
sshd 日志改为优先读 /var/log/auth.log 或 /var/log/secure,按字节偏移增量读取,
无文本日志时才回退 journald。journald 按单位过滤要沿匹配链遍历,实测一台
3.6G journal 的机器上取最后一条都超过 30 秒,游标方案因首次定位就超时而始终
建立不起来,每轮都退回全量扫描,iowait 长期 80% 以上;调度器的 SkipIfRunning
又会让整个告警评估随之停摆。同机对比,读文本日志耗时 0.1 秒。
其余:
- 采集前先判断事件是否已订阅且配好渠道,此前是扫完才发现没人接收
- 没有系统类规则时跳过 CurrentInfo,其内部两次 cpu.Percent 各阻塞 100ms
- 清理已消失目标的静默记录,此前只清命中计数,动态目标下会持续堆积
- disk.Usage 出错返回 nil 时直接解引用会 panic
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-15 07:02:17 +08:00 |
|
耗子
|
745e88df69
|
feat: 迁移补回传输进度日志并改进时间显示
- 传输层通过回调上报字节数,下载与上传共用一套节流与格式化,每秒最多一条;
首秒不打,秒传的小文件无需进度,耗时过短算出的速度也没有参考价值
- 运行中显示实时累计耗时,结束后显示时间区间与总耗时,此前结束时间为空
会渲染成两个横杠
- 步骤条末步按内容收缩,其没有连接线,再占等分宽度会在右侧留下空白
- 预检阶段提示目标缺少来源所用的 PHP 版本:宝塔从站点表的 php_version 取,
1Panel 网站列表只给运行环境名,从运行环境列表换取版本
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-15 07:02:04 +08:00 |
|
耗子
|
7f6b86b700
|
perf: SSH 日志扫描改为游标增量读取
journald 对游标是直接定位,而带 -u 过滤的 --since 需沿匹配链回溯,
sshd 日志量大时非常慢。首次用 -n 0 只定位游标不输出日志,后续各轮走游标
快路径,游标因日志轮转失效时回退一轮 --since。
同时只取 MESSAGE 字段改用 -o cat,省去 journald 侧序列化与这边的逐行
反序列化,并给单轮扫描加上超时与条数上限,避免拖垮整个告警评估。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-15 06:18:01 +08:00 |
|
耗子
|
8cfb409c2f
|
fix: 网站备份还原兼容其他面板的归档结构
还原:
- 新增 selectWebsiteBackup 逐层展开归档并定位网站文件根,用户上传宝塔或
1Panel 导出的备份可直接还原;1Panel 的包是「元数据 + 内层归档」,
内层再套一层站点名,其下的 index 才是文件根,PHP 站点还多一份运行环境归档
- 迁移的网站文件改走备份还原,不再自行解包,避免两处各写一套识别逻辑
1Panel 适配:
- 备份接口只是把任务丢进后台就返回,改为轮询记录状态直到写盘完成,
此前会下载到写了一半的归档,导入时报 gzip unexpected end of file
- 网站文件根是站点目录下的 index,siteDir 是相对它的运行目录,此前少了一层
- PHP 版本改读 params 中的 PHP_VERSION,version 字段可能只有主版本号
- 反代站点的根代理与代理列表重复时以列表为准,并补全代理目标的协议
- 面板地址去掉路径部分,安全入口只拦登录页,带着它会让所有接口 404
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-15 06:17:52 +08:00 |
|
耗子
|
e9df1f28f0
|
fix: 修复宝塔与 1Panel 迁移的多处问题
宝塔适配:
- 认证参数改走 query,此前按 req.Method 分流,而 resty 在签名时尚未确定方法,
导致下载备份的 GET 请求丢失认证,被面板以伪装 404 拒绝
- PHP 版本兼容 84 这类连写形式,此前解析为 0 使迁移后站点未绑定 PHP
- 反代站点改读代理模块接口,站点接口读不到新版反代规则
- 修正项目目录、启动命令与环境变量:其他项目的 project_exe 即项目目录,
Node.js 传统与 PM2 模式取 project_file,Python 按配置直接拼出
gunicorn/uwsgi 命令而非复用宝塔生成的配置文件
- 补齐各模块字段差异:运行用户 user、开机自启 auth、环境变量 env 与 env_list
- 站点停止时根目录被指向 /www/server/stop,改以 project_config 中保存的
原运行目录为准
1Panel 适配:
- 自动识别 v1 与 v2,按 v2 请求失败则回落 v1 并锁定版本
迁移通用:
- 目标缺少来源 PHP 版本时退到最接近的已装版本,都没有则不启用 PHP
- CopyTree 修正为 source+"/.",filepath.Join 会清理尾部的点,
导致临时目录被整个拷进目标
网站:
- 统计配置的 syslog tag 过滤全部非字母数字字符,站点名含点号时
nginx 拒绝加载配置
- 放开 PHP 版本的 required_if 校验,0 表示不使用 PHP
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-15 05:35:03 +08:00 |
|
耗子
|
adfc71e451
|
fix: 优化代码
|
2026-08-15 00:51:10 +08:00 |
|
耗子
|
a32ffbe6e0
|
fix: 优化代码
|
2026-08-15 00:37:01 +08:00 |
|
耗子
|
7f94f80256
|
fix: 优化代码
|
2026-08-15 00:24:14 +08:00 |
|
耗子
|
be71610215
|
fix: 优化数据库迁移
|
2026-08-14 23:55:44 +08:00 |
|
耗子
|
9dac05e25c
|
refactor: 重构网卡配置管理并加入变更确认
三个网络管理器改为 backend 接口实现,各自的辅助方法收进对应结构体,
不再由包级函数经 switch 分发;探测结果缓存,更新时只加载目标网卡。
新增两阶段提交:应用后校验配置是否真正生效,随后进入待确认状态,
30 秒内未确认则自动回滚,避免配错网卡导致远程失联无法恢复。
修复 NetworkManager 读写 MTU 未带设置名导致网卡全部不可编辑,
以及 netplan set 键含点号时 VLAN 网卡配置被写入错误层级。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-14 22:35:17 +08:00 |
|
耗子
|
b81b1ba727
|
fix: 修复迁移中的整数窄化转换
CodeQL 报告 uint64 转 uint 在 32 位平台可能截断,改用 cast.ToUint 直接解析。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-14 21:55:03 +08:00 |
|
耗子
|
2a63a022e0
|
refactor: 重写宝塔与 1Panel 迁移
对照宝塔 11.0 与 1Panel v2 源码核实全部接口与字段,删除凭空猜测的兼容分支:
status 别名表、key/Key/k 环境变量、msg/message 双兼容、字符串二次解析、
下载重试 180 次、归档 magic 校验、残留资源清单。
按分层重新组织:service 只处理 HTTP,编排与导入下沉到 biz,两个适配器共享
HTTP 客户端,助手函数与正则收进各自结构体。容器与 Compose 迁移不再支持。
顺带修复宝塔 GetSSL 在未开启 SSL 时被误判为接口失败,以及备份完成后才恢复
来源导致停机时间过长。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-14 21:26:16 +08:00 |
|
耗子
|
5b6f4e50ba
|
perf: 优化扫描数据库并修复 lint
|
2026-08-14 20:36:02 +08:00 |
|
耗子
|
255cb98d9d
|
perf: 优化监控与辅助数据库存储
|
2026-08-14 18:57:07 +08:00 |
|
耗子
|
b32cc9a6d6
|
fix: lint
|
2026-08-13 02:14:03 +08:00 |
|
耗子
|
5d48412f72
|
feat: 支持切换网站类型
|
2026-08-13 01:16:51 +08:00 |
|
耗子
|
5303979097
|
feat: 支持宝塔和 1Panel 迁移
|
2026-08-13 01:11:12 +08:00 |
|
耗子
|
2fed89539a
|
feat: 网站支持按设置监听 IPv6
|
2026-08-12 19:45:49 +08:00 |
|
耗子
|
8aa987f71b
|
feat: 支持网卡网络配置管理
|
2026-08-12 19:19:28 +08:00 |
|