Commit Graph
115 Commits
Author SHA1 Message Date
mrlee b9d43538b5 refactor: simplify public proxy traffic table
CI / verify (push) Canceled after 0s
2026-10-24 20:31:27 +08:00
mrlee 56f04ae12b feat: refresh dashboard layout and navigation
CI / verify (push) Canceled after 0s
2026-10-24 20:06:42 +08:00
mrleeandDevin 9d75fb1d3e fix: 收敛正确性缺口并补齐质量门禁
CI / verify (push) Canceled after 0s
备份、隧道生命周期、日志、会话与设置项存在一批「静默失效」问题,本次一并收敛。

正确性:
- 备份归档补上 session_secret 与 frp 配置。缺密钥时换机恢复后库里所有凭据都解不开,
  界面表现为「配置都在、一执行就报解密失败」;同时支持口令加密(scrypt + AES-256-GCM)。
- 修复「立即备份」必失败:tar 头用的是遍历时的文件尺寸,而 logs、frpc 配置在打包期间
  还在增长,读出的字节多于声明值导致 archive/tar 报错、整份备份作废。改为打开后重新
  取尺寸并用 LimitReader 兜住,被截短时补零保持条目结构完整。
- 数据库改用 VACUUM INTO 生成一致性快照。直接打包正在写入的 SQLite 文件可能得到
  结构完整但内容自相矛盾的副本,恢复后才暴露。
- Cloudflare 启动改用 StartAuto,Shutdown 显式 StopAll,子进程绑定应用 ctx。此前
  重启会把用户手动停掉的隧道重新拉起,退出也可能留下孤儿进程。
- Nginx 访问/错误日志加轮转(200MB 阈值、gzip 归档、USR1 重开),读取改为从文件尾
  分块倒读,并跨当日归档统计。此前日志只增不减,读接口每次全量扫描。
- 过期会话改由日任务清理;删除反代规则时同步清掉流量累计,避免同名规则重建继承旧读数。
- 启动加就绪门:Nginx bootstrap 完成后再放行 FRP 对账、Agent 隧道与 Cloudflare 自启。

设置项:
- 新增设置项注册表(internal/settings/registry.go),白名单与默认值从它派生,
  并记录每个键的消费者,防止再出现「界面能改、后端没人读」的黑洞设置。
- 接上三个此前不生效的设置项:timezone(启动与保存时应用到 time.Local)、
  theme(后端为权威源,挂载时覆盖本地偏好、顶栏切换回写)、log_retention_days
  (控制日志归档保留天数)。

工程质量:
- gofmt 全量格式化 23 个历史文件,CI 增加格式化门禁。
- 前端引入 ESLint(flat config)与 lint 脚本,CI 增加 lint 步骤;顺带修掉
  logDisplay 的 let→const 与 LogsView 模板内直接改 prop 两处问题。
- 删除无引用的 pnpm-lock.yaml,prototype/ 加入忽略列表。
- 打包版本对齐:Docker manifest 同步到 2.0.0,CI 校验 VERSION 与 package.json 一致。

验证:gofmt 0 文件、go vet、go test ./...、npm run lint/typecheck/test/build 全绿。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-24 16:30:00 +08:00
mrlee 6dd2136dd2 禁用暂不可用的穿透类型
CI / verify (push) Canceled after 0s
2026-10-24 09:29:52 +08:00
mrlee e4edbdcef0 tcp新增端口校验逻辑
CI / verify (push) Canceled after 0s
2026-10-19 15:53:59 +08:00
mrlee 5b9773b74a 修复列表错位
CI / verify (push) Canceled after 0s
2026-10-19 15:49:22 +08:00
mrlee 2c1cf1260b 修正frpc重启按钮的工作流程
CI / verify (push) Canceled after 0s
2026-10-19 13:50:05 +08:00
mrlee 211d8e66e0 添加自定义404页面
CI / verify (push) Canceled after 0s
2026-10-17 20:22:27 +08:00
mrlee 6b8ff0e5a3 WebSocket 把 proxy_http_version 1.1 + Upgrade/Connection 移进 location / 内部
CI / verify (push) Canceled after 0s
2026-10-17 11:58:43 +08:00
mrlee c1bcdd0b86 公网反代默认转发 WebSocket 升级头
CI / verify (push) Canceled after 0s
2026-10-17 10:21:24 +08:00
mrlee 302248a907 chore(release): 发布 v2.0.0
CI / verify (push) Canceled after 0s
- 内置 SSH 终端(/terminal):复用已保存的 SSH 密码/私钥与独立 known_hosts 校验
- 终端二次认证、会话审计(/terminal/audits)、录像审计与常用命令
- DDNS 服务商名称与自定义 IP,新增迁移 037/038/039
- CHANGELOG 与 VERSION 更新至 2.0.0
2026-10-16 20:18:04 +08:00
mrlee a0cc553d2d fix(native): updater Token 不再拖垮非 root 启动(飞牛原生版无法启用)
CI / verify (push) Canceled after 0s
原生版以非 root 的 havline 用户运行,而 app.New 会无条件调用 updater.EnsureToken,
去写默认的 /run/havline-updater/updater.token:MkdirAll 因权限不足失败 →
app.New 返回错误 → main 里 log.Fatalf → 进程秒退,飞牛应用中心报「本地应用启动失败」。
该逻辑由 v1.9.2 引入,v1.9.1 及之前不受影响。

- 新增 updater.EnsureTokenIfEnabled:updater 未启用(socket 为空)时直接返回,
  完全不触碰 Token 文件
- app.New 改用该函数,只有真正启用一键升级 sidecar 时才准备共享 Token
- 补充回归测试:socket 为空不创建文件、socket 非空照旧创建
2026-10-11 15:59:03 +08:00
mrlee 2856040883 chore(release): 发布 v1.9.3
CI / verify (push) Canceled after 0s
Docker Release / build-and-push (amd64, linux/amd64) (push) Canceled after 0s
Docker Release / build-and-push (arm64, linux/arm64) (push) Canceled after 0s
GitHub Release / release (push) Canceled after 0s
Docker Release / create-manifest (push) Canceled after 0s
- VERSION 与 web/package.json、package-lock 提升到 1.9.3
- README 版本徽章与飞牛安装包名同步到 1.9.3
- CHANGELOG 的 [Unreleased] 段落转为 [v1.9.3] - 2026-10-11
v1.9.3
2026-10-11 15:18:32 +08:00
mrlee 0f68101503 feat(frp): frps vhost 回源端口支持 80/443,公网反代在该配置下不再适用
- 服务端表单不再硬性拒绝 vhostHTTPPort=80 / vhostHTTPSPort=443,改为保存时弹窗二次确认;
  确认后请求携带 allow_privileged_vhost_ports 提交并由后端校验放行,未携带标记的请求(含直接调 API)仍被拒绝
- frps.toml 生成改为写入风险注释、不再报错;各规则的公网反代回源地址随 80/443 自动跟随
- 「公网反代」页检测到 80/443 后显示说明卡片并隐藏统计/Nginx/规则台账/漂移区块,
  同时跳过 agent 的路由、漂移与健康请求
- 后端 DeployAgentRoute 与 RedeployAllRoutes(含漂移一键修复)拒绝下发,自动下发路径 syncAgentRoute 跳过
- 新增 internal/frp/vhost_port_test.go:校验、二次确认、frps.toml 生成、反代回源跟随与守卫对照
2026-10-11 15:18:32 +08:00
mrlee 50b8cc1351 Update README.md 2026-10-11 13:58:57 +08:00
mrlee d1c498a286 chore: 停止跟踪 docs/ 并移除 README 中的文档链接
CI / verify (push) Canceled after 0s
- docs/ 只保留在本地,加入 .gitignore(85 个文件移出版本库,工作区文件不受影响)
- README 删除截图画廊与 docs/user-guide.md 引用,并从项目结构表中移除 docs 行
2026-10-11 13:51:35 +08:00
mrlee 9c77d23078 Delete docs directory 2026-10-11 13:32:37 +08:00
mrlee fb57b2aef8 chore: 同步版本号到 1.9.2、整理 CHANGELOG 并移除误提交的 exe
- README 版本徽章与飞牛安装包名对齐到 1.9.2
- web/package-lock.json 根版本与 web/package.json 保持一致(原为 1.9.0)
- CHANGELOG 合并整理 1.1.0 起的相近补丁版本并重新编排版本号
- 取消跟踪 Windows 构建产物 havline-agent.exe,并加入 .gitignore
2026-10-11 13:23:56 +08:00
mrlee 2a0740a60f chore(release): 发布 v1.9.2
CI / verify (push) Canceled after 0s
Docker Release / build-and-push (amd64, linux/amd64) (push) Canceled after 0s
Docker Release / build-and-push (arm64, linux/arm64) (push) Canceled after 0s
GitHub Release / release (push) Canceled after 0s
Docker Release / create-manifest (push) Canceled after 0s
- 「公网服务端」新增 Nginx 启停控制(Agent 0.15.2,停止带二次确认)
- frps 启动失败不再误报成功,并增强启动诊断
- frps vhost 端口禁止 80/443,避免与 VPS 上 Nginx 冲突
- 旧服务端配置的 tcp_mux / login_fail_exit 默认值补齐
- 新增安全审查、页面布局方案与场景操作文档
v1.9.2
2026-10-07 19:26:02 +08:00
mrlee a7d71752e3 feat(updater): generate shared token without init container 2026-10-05 19:11:05 +08:00
mrlee 9aaefa3b77 fix: surface frps startup failures and avoid nginx port conflicts 2026-10-05 13:07:56 +08:00
mrlee 7d8a327533 docs: add dialog screenshots and step-by-step operations
CI / verify (push) Canceled after 0s
2026-10-02 17:07:23 +08:00
mrlee 5a36ae243c docs: add illustrated user guide for all Havline pages
CI / verify (push) Canceled after 0s
2026-10-02 16:54:21 +08:00
mrlee a7e47e950a Revert "feat: add native fnOS gateway socket and base path support"
CI / verify (push) Canceled after 0s
This reverts commit 419c205103.
2026-10-02 15:17:05 +08:00
mrlee 419c205103 feat: add native fnOS gateway socket and base path support
CI / verify (push) Canceled after 0s
2026-10-02 14:59:57 +08:00
mrlee c5502b0f95 docs: add fnOS native application plan
CI / verify (push) Canceled after 0s
2026-10-02 14:47:26 +08:00
mrlee a14d92ccbb docs: add fnOS unified gateway plan
CI / verify (push) Canceled after 0s
2026-10-02 14:38:00 +08:00
mrlee 9ca5da4523 docs: document Gitea registry OAuth fix and add manual OCI pusher
CI / verify (push) Canceled after 0s
2026-10-02 13:26:27 +08:00
mrlee 244297f96c fix: update repository URL to jayhub.top
CI / verify (push) Canceled after 0s
2026-10-02 13:01:03 +08:00
mrlee ea5fd1b934 refactor(fnos): move packaging workspace outside main repository
CI / verify (push) Canceled after 0s
2026-10-01 18:58:28 +08:00
mrlee ac56394dce feat(fnos): scaffold Havline fnOS application package
CI / verify (push) Canceled after 0s
2026-10-01 18:49:08 +08:00
mrlee 1f33c7d9a7 docs: add official fnOS packaging research
CI / verify (push) Canceled after 0s
2026-10-01 18:36:08 +08:00
mrlee 90b7a9af6e docs: rewrite README for Havline project
CI / verify (push) Canceled after 0s
2026-10-01 18:06:15 +08:00
mrlee 31a5abe539 feat(web): enrich about page project story and layout
CI / verify (push) Canceled after 0s
2026-10-01 17:28:35 +08:00
mrlee fafde0f709 feat(web): replace example page with about project page
CI / verify (push) Canceled after 0s
2026-10-01 17:20:06 +08:00
mrlee c6f96ffc0f fix: link repository footer to upstream Fonu project
CI / verify (push) Canceled after 0s
2026-10-01 17:14:02 +08:00
mrlee 8fa5d922ac feat: rename project from Fonu to Havline
CI / verify (push) Canceled after 0s
2026-10-01 16:54:35 +08:00
mrlee c377405696 chore(release): 发布 v1.9.0 并更新 Cloudflare 文档 2026-10-01 13:12:37 +08:00
mrlee 83cc9d504b feat(cloudflare): 完成隧道接入、运维与 P0 体验优化 2026-10-01 11:32:54 +08:00
mrlee 36d8b1e464 docs: 按 Fonu 定位输出 Cloudflare 隧道适配版功能计划 2026-09-30 13:16:35 +08:00
mrlee dd40008be8 docs: 基于官方文档与参考项目输出 Cloudflare 隧道全功能规划 2026-09-30 12:04:07 +08:00
mrlee 2d0f63517b feat(cloudflare): 新增全局托管开关并发布 v1.8.0 2026-09-30 11:56:56 +08:00
mrlee 1434cfd72b feat(cloudflare): 自动创建隧道 DNS 记录并发布 v1.7.0 2026-09-28 18:47:37 +08:00
mrlee af07ebd462 fix(cloudflare): 测试连接使用当前输入的 Account ID 并发布 v1.6.9 2026-09-28 18:30:34 +08:00
mrlee 8f78aad19b feat(cloudflare): 改用 Account ID + API Token 创建管理隧道并发布 v1.6.8 2026-09-28 18:23:38 +08:00
mrlee 7acf13583b feat(cloudflare): 支持 API Token 连接验证并发布 v1.6.7 2026-09-28 17:53:45 +08:00
mrlee 26dd84abaa fix(cloudflare): Token 解码兼容 URL-safe base64 并发布 v1.6.6 2026-09-28 17:48:09 +08:00
mrlee 3caff9fd8e feat(cloudflare): Token 配置新增测试连接与获取入口并发布 v1.6.5 2026-09-28 17:32:06 +08:00
mrlee be35fbf546 fix(cloudflare): 隧道弹窗去除与应用配置重复字段并发布 v1.6.4 2026-09-28 17:27:15 +08:00
mrlee 5e995dee28 feat(cloudflare): 应用配置支持程序安装与默认 Token 并发布 v1.6.3 2026-09-28 16:59:30 +08:00