Skip to content

Latest commit

 

History

History
89 lines (58 loc) · 4.08 KB

File metadata and controls

89 lines (58 loc) · 4.08 KB

Emby-In-One Update Plan

当前稳定版本:V1.4.0


V1.5 计划:待定

后续版本方向待确定。

可能方向包括但不限于:

  • TG操作面板?
  • 完善的使用文档?
  • 更完善的影视集成?
  • 更少量的Bug?
  • ……

✅ V1.4.0(已完成):多用户管理、独立观看历史与播放限制

目标

在 V1.3 Go 后端基础上交付完整的多用户管理功能、独立观看历史和播放并发限制,同时进行稳定性增强和运维工具改进。

已完成内容

  • 多用户管理:SQLite UserStore,admin/user 角色体系,三步认证链,管理面板/SSH/REST API 全面支持用户 CRUD
  • 独立观看历史:基于本地 SQLite 的 WatchStore,普通用户观看进度/已播放/收藏/Resume/NextUp 完全隔离,播放事件双写
  • 并发播放数限制:每台上游服务器可配置 maxConcurrent,PlaybackLimiter 内存跟踪,心跳超时自动释放,管理员豁免
  • 内容权限过滤:普通用户仅可访问被分配的服务器内容,覆盖所有内容路由
  • SSH 在线更新:自动架构检测,从 GitHub Releases 下载安装,版本对比,自动备份和回滚
  • 安全加固:参数化 SQL 查询、Token 内存清理、防御性权限检查、并发限制防绕过
  • 密码变更吊销 Token:面板/CLI 改密后自动吊销所有已发放 Token
  • Passthrough 延迟登录:passthrough 模式上游等待真实客户端连接后再认证,避免虚假设备记录
  • CLI 双模式部署:SSH 菜单自动检测 Binary/Docker 部署模式,分发到 systemd 或 Docker Compose 管理
  • CLI 自替换安全修复:使用原子 mv 替换运行中脚本,防止 bash 懒读取出错
  • 构建兼容性修复:Go 1.26 → 1.23(go.mod、Dockerfile),卸载保留 log/ 目录
  • 代理连通性测试优化:任何 HTTP 响应视为连通成功,避免 403 误报
  • UA 透传仅限管理员:普通用户登录不再捕获客户端 UA,防止覆盖管理员身份
  • Docker 自定义版本更新修复:拆分 Binary/Docker 双模式下载安装路径
  • Bug 修复:跨服务器播放记录不更新、前端管理面板交互失效等

已于 2026-04-13 发布。


✅ V1.3(已完成):后端重构为 Go

目标

将当前后端从 Node.js 重构为 Go,为后续的多用户管理、权限控制、播放前检查和更高并发场景打下性能基础。

版本定位

V1.3 的重点是 后端架构升级,不是直接交付多用户能力。
核心目标是先把后端性能、并发处理能力、可维护性和后续扩展空间提升起来。

已完成内容

  • 将主要后端服务迁移到 Go
  • 保持 Emby 客户端访问方式兼容
  • 保留多服务器聚合、搜索去重、播放代理、日志、管理面板等核心能力
  • 精简与整理 UA 伪装逻辑,统一行为和配置方式
  • 重新整理后端模块边界,为多用户管理预留结构
  • 为按用户维度做权限判断、服务器筛选、播放限制预检查做基础设施准备

成果

  • 获得性能更高、并发处理更稳定的 Go 后端版本、更完善的UA伪装体系
  • 为 V1.4 的多用户管理提供了合适的技术基础

已于 2026-03-30 发布 Pre-release 版本。


版本关系

  • V1.4.0:实现多用户管理、独立观看历史、并发播放数限制、管理面板版本号显示、Token 永不过期、上游认证自动恢复、密码变更吊销 Token、Passthrough 延迟登录、CLI 双模式部署、SSH 管理面板修复与安全加固
  • V1.3:完成 Go 后端重构,性能与并发处理能力大幅提升,为多用户能力做架构铺垫
  • V1.2:全面安全审计修复(API 脱敏、CORS 加固、输入校验、密码安全);Passthrough 透传修复(五级优先级链、客户端身份持久化、per-server headers);超时日志增强;管理员密码重置机制;上游 HTML 错误拦截;Graceful shutdown 资源清理

说明

这份文档仅用于说明版本更新规划,不展开具体代码实现方案与技术细节。