• 2.3-Preview Stable

    lxh2875931338 released this 2026-07-28 23:30:22 +08:00 | 37 commits to main since this release

    2.3 技术预览版 (2026-07-28)(non-LTS)

    版本定位:2.3 是 frpc-console 在 LTS 2.0 基础上的技术预览版本,集成了 2.1 的可观测性能力与 2.2 的声明式迁移引擎,同时对部署流程与数据库持久化进行了全面重构。经过多轮边缘场景验证,本版本在基础设施层面已经达到稳定可用状态,建议用于测试环境验证。

    🚀 核心功能

    • Ping 延迟检测:顶部导航实时显示 frpc 到 frps 的延迟,状态图标 + ms 值,直观反映链路质量(2.1)
    • 用户配置页独立:账户管理与全局配置分离,密码修改移至独立 Tab(2.1)
    • 认证过期自动跳转:401 响应统一拦截,自动清除 token 并返回登录页(2.1)
    • 声明式数据库迁移引擎:版本驱动的增量迁移 + 自动备份 + 失败回滚,基于 db-history.go 的 Schema 声明对比(2.2)

    🗄️ 数据库与持久化(2.3 核心改进)

    • 数据库路径统一:数据库文件固定为 ./frpc-console.db(容器内 /app/frpc-console.db),挂载整个 /app 目录,所有运行时文件(.db.toml.log.pid)同时持久化
    • Dockerfile 优化:多阶段构建,自动降级 go.mod 版本(1.26 → 1.21)并执行 go mod tidy,移除宿主机 Go 依赖
    • 容器内工具补齐:安装 sqlite(Alpine 包),deploy.sh 可准确验证数据库状态
    • Schema 版本兜底写入InitDB() 末尾强制补写 schema_version,彻底解决“每次启动都重新注册”的问题

    🔧 部署与运维(deploy.sh 全面重构)

    • 部署流程重排:备份 → 拉代码 → 停容器 → 构建镜像 → 启动容器
    • 事务前钩子:自动备份数据库到 /tmp/frpc-console/db-backups/,检查有效性(users 表存在),无效则删除由容器全新初始化
    • 事务后钩子:验证容器内数据库可用性,提供明确的“可用/需注册”状态反馈
    • 移除宿主机编译:Docker 镜像内置编译,宿主机不再需要 Go 环境
    • 移除二进制复制:Docker 模式下不再向宿主机写入二进制文件,避免“文本文件忙”冲突
    • OpenSUSE 适配:使用 git-core 替代 git
    • 颜色检测:管道执行时自动禁用 ANSI 颜色代码

    🎨 前端与 UI(2.3 稳定性增强)

    • 加载状态管理:增加 authLoading 状态,首次访问时等待 API 响应后再渲染页面,消除刷新时的竞态条件
    • Token 验证流程优化loadAuthStatecheckUsers 逻辑解耦,登录/注册页切换稳定

    🐛 修复

    • 修复 ExportTomlHandler 模板渲染时缺少 WireProtocolLine 字段的问题
    • 修复 deploy.sh 在升级时用空文件覆盖旧数据库的问题
    • 修复 Docker 部署时数据库写入 /app/frpc-console.db 但挂载 /app/data 导致升级丢数据的问题
    • 修复前端刷新时页面状态错乱的问题
    • 修复容器内无 sqlite3 导致数据库验证误报的问题
    • 修复首次启动时 schema_version 未正确写入导致重复注册的问题

    📦 技术预览说明

    ⚠️ 2.3 是一个 技术预览版本,基于 LTS 核心(2.0)构建,集成了 2.1 和 2.2 的新特性。

    Docker 版用户请注意:此版本将挂载点从 /app/data 变更为 /app,升级前请确保 /opt/frpc-console 目录下没有残留旧二进制文件,避免 cp 冲突。

    建议在测试环境验证,生产环境使用需自行评估风险。

    🧩 已知限制

    • frps-console 配套工具仍在同步开发中,预计与 2.5 LTS 同步发布
    • 日志面板仍为 8 秒轮询,暂未支持 WebSocket 实时推送
    Downloads