Skip to content

Releases: hicocos/tg-vault

v2.4.3

Choose a tag to compare

@hicocos hicocos released this 06 Sep 12:18

更新内容

  • 简化部署与升级流程,统一使用 ./deploy/install.sh
  • 升级前自动检查 GitHub 更新,检测到本地修改或无法快进时安全停止
  • 更新前后端版本号至 v2.4.3

升级

cd /www/wwwroot/tg-vault
./deploy/install.sh

TG Vault v2.4.2

Choose a tag to compare

@hicocos hicocos released this 05 Sep 15:58

v2.4.2 更新日志

新增

  • Web 与 Telegram Bot 全面国际化基础设施,支持简体中文、English 和 Русский。
  • Web 端语言选择、地区化格式化、稳定 API 错误码本地化与翻译契约测试。
  • Telegram Bot 语言偏好持久化、/language / /lang 命令,以及中文、英文、俄文命令菜单。
  • Telegram 账号级下载器与频道订阅任务的运行边界、超时和生命周期安全增强。
  • 移动端 Web 布局、设置页、上传中心、任务中心和订阅中心体验优化。

变更

  • 移除 yt-dlp 视频链接下载功能及其 Web、Bot、配置、依赖、文档和遗留任务清理逻辑。
  • 新部署简化 .env 配置;Telegram 凭证与运行设置统一通过 Web 管理。
  • 增加 Telegram 用户语言与历史 yt-dlp 任务清理数据库迁移。
  • 加强存储账号生命周期锁、任务取消/清理确认、媒体预览错误处理和部署版本元数据。

验证

  • Backend tests: 477 passed, 0 failed
  • Frontend tests: 231 passed, 0 failed
  • Backend typecheck: passed
  • Backend build: passed
  • Frontend build: passed

TG Vault v2.4.1

Choose a tag to compare

@hicocos hicocos released this 01 Sep 09:24

更新日志

修复与改进

  • 强化 Telegram Bot 与用户账号运行时隔离:Bot 启动后先完成自身连接,再经过独立隔离窗口恢复已明确启用的用户账号与频道后台任务,降低同一时刻集中连接 Telegram 的风险。
  • Bot 凭证检测改用 Telegram HTTPS Bot API getMe,避免在正式启动前额外创建 MTProto Bot 会话;检测请求增加超时、不缓存与禁止重定向策略。
  • Bot 命令菜单改为后台按指纹同步,不再阻塞连接就绪;菜单未变化时不会重复注册。
  • 个人账号页面取消主动“权限检测”操作,仅展示已有权限汇总;登录提示进一步明确 Bot 与个人账号彼此独立。
  • 更换密码时,当前密码错误改为返回 403,避免前端误判有效登录会话已过期。
  • 孤儿文件自动清理增加启动调度保护,避免重复启动定时任务。

升级方法

使用官方安装脚本部署

cd /opt/tg-vault
sudo bash deploy/install.sh

使用 Git / Docker Compose 手动部署

cd /path/to/tg-vault
git fetch --tags origin
git checkout main
git pull --ff-only origin main
git checkout v2.4.1
version="v$(node -p "require('./backend/package.json').version")"
revision="$(git rev-parse HEAD)"
IMAGE_VERSION="$version" SOURCE_REVISION="$revision" SOURCE_VERSION="$version" docker compose build backend frontend
IMAGE_VERSION="$version" SOURCE_REVISION="$revision" SOURCE_VERSION="$version" docker compose up -d --no-build --no-deps backend frontend
  • 升级前建议备份 PostgreSQL 数据库和 .env
  • 本版本未新增数据库迁移。

验证

  • Backend:完整测试、TypeScript 类型检查及生产构建通过。
  • Frontend:完整测试、ESLint、TypeScript/Vite 生产构建通过。
  • 安装脚本测试通过。

TG Vault v2.4.0

Choose a tag to compare

@hicocos hicocos released this 01 Sep 05:27

TG Vault v2.4.0

Important

严重安全优化:强烈建议所有用户尽快升级并使用 v2.4.0。

本版本重点收紧 Telegram Bot 凭证与账号运行时的生命周期边界,避免保存、迁移或更换 Bot 凭证时意外触发 Telegram 用户账号、订阅扫描、任务恢复或主动消息等自动化行为。

重要行为变化:这不是“零影响”升级。 为消除隐式自动化带来的安全风险,升级后 Telegram 订阅扫描、任务恢复和定期清理不再随 Bot 启动而自动运行;依赖这些自动化的用户会看到相关任务停止。请优先完成安全升级,并留意后续采用明确应用级编排的版本。

严重安全优化

  • 严格隔离 Telegram Bot 与用户账号运行时:保存、迁移、停用或删除 Bot 配置时,不再初始化、刷新或扫描 Telegram 用户账号。
  • Bot Token 更换不再复用旧会话:每次启动均从空 Bot Session 完成身份认证,避免旧 Session 与新 Token 混用。
  • 启动完整性校验:Bot 只有在认证、身份读取、命令菜单注册和事件处理器安装全部成功后才进入 ready 状态。
  • 失败即清理:Bot 启动失败会立即断开并销毁失败客户端,清除运行时引用,防止半初始化实例残留。
  • 失效凭证识别更准确ACCESS_TOKEN_EXPIREDACCESS_TOKEN_INVALID 等错误会明确归类为凭证失效,并提示在网页端更换 Token。
  • 用户账号改为显式激活:仅在“登录完成”或用户明确点击“启用”时连接对应账号;停用账号会立即关闭其运行时客户端。
  • 登录凭据作用域收紧:二维码/手机号登录流程携带本次显式凭据,只激活刚完成登录的账号,不再刷新整个账号池。
  • 杜绝隐式后台自动化:Bot 凭证绑定过程不再自动启动订阅扫描、任务恢复或定期清理任务。
  • 不再持久化 Bot Session:Bot 每次使用当前 Token 从空 Session 认证,不再将额外的 Bot Session 凭据写入磁盘。
  • 启动副作用延后提交:通知器和摘要定时器仅在 Bot 完整进入 ready 后安装;任何启动失败都会撤销相关运行时副作用。
  • 旧版手机号登录同样定向激活:旧版登录流程保存并传递本次 Telegram API 凭据,只连接刚刚完成登录的账号。

稳定性改进

  • Telegram Bot 连接与重连策略改为有界重试,关键启动步骤增加超时保护,降低网络异常时长期阻塞的风险。
  • 可选 Bot 启动失败时继续以 degraded 状态提供 Web 服务,同时保留可操作的错误原因;必需模式仍会阻止就绪。
  • 多账号适配器在应用启动时以无账号连接副作用的方式安装,账号连接只由明确操作触发。

升级方法

使用官方安装脚本部署

cd /opt/tg-vault
sudo bash deploy/install.sh

使用 Git / Docker Compose 手动部署

cd /path/to/tg-vault
git fetch --tags origin
git checkout main
git pull --ff-only origin main
git checkout v2.4.0
version="v$(node -p "require('./backend/package.json').version")"
revision="$(git rev-parse HEAD)"
IMAGE_VERSION="$version" SOURCE_REVISION="$revision" SOURCE_VERSION="$version" docker compose build backend frontend
IMAGE_VERSION="$version" SOURCE_REVISION="$revision" SOURCE_VERSION="$version" docker compose up -d --no-build --no-deps backend frontend
  • 升级前建议备份 PostgreSQL 数据库和 .env
  • 升级后请进入 Web 设置检查 Telegram Bot 状态;若提示 Token 失效,请更换 Bot Token。

验证

  • Backend:470/470 项测试通过,TypeScript 类型检查通过,生产构建通过。
  • Frontend:203/203 项测试通过,ESLint 通过,生产构建通过。
  • 数据库 schema 一致性检查:通过。
  • 安装脚本测试:通过。
  • 新增安全回归覆盖:Bot/用户账号生命周期隔离、旧 Session 不复用、失败客户端清理、显式账号激活、失效 Token 分类。

TG Vault v2.3.1

Choose a tag to compare

@hicocos hicocos released this 31 Aug 09:18

更新日志

新增

  • 新增 Web「订阅中心」,集中查看启用中的 Telegram 频道订阅、同步状态和广告过滤统计。
  • 新增按订阅配置的广告过滤:支持关闭、保守和严格三种模式,并可添加关键词、域名、账号/机器人等允许或屏蔽规则。
  • 新增广告过滤记录与人工纠正:误判为广告的内容可标记为正常并重新加入下载队列;纠正结果可用于后续模板识别。
  • 新增高级设置「跳过频道普通图片」,适合频道同时发布预览图与原图文件、只需归档原图文件的场景。

修复与改进

  • 广告过滤按 Telegram 媒体组整体判定,避免同一组内容只过滤部分消息。
  • 恢复误拦截内容时增加幂等与并发保护,避免重复创建恢复任务。
  • 订阅中心的订阅和过滤记录支持分页,减少大量订阅时的单次查询和渲染负担。
  • 广告过滤默认关闭;升级后现有订阅继续按原方式下载,不会自动改变行为。
  • 「跳过频道普通图片」默认关闭,并在启用时增加风险确认,避免频道只发布普通图片时意外漏图。

升级方法

使用官方安装脚本部署

cd /opt/tg-vault
sudo bash deploy/install.sh

使用 Git / Docker Compose 手动部署

cd /path/to/tg-vault
git fetch --tags origin
git checkout main
git pull --ff-only origin main
git checkout v2.3.1
version="v$(node -p "require('./backend/package.json').version")"
revision="$(git rev-parse HEAD)"
IMAGE_VERSION="$version" SOURCE_REVISION="$revision" SOURCE_VERSION="$version" docker compose build backend frontend
IMAGE_VERSION="$version" SOURCE_REVISION="$revision" SOURCE_VERSION="$version" docker compose up -d --no-build --no-deps backend frontend
  • 启动后后端会自动应用本版本的数据库迁移;升级前仍建议先备份 PostgreSQL 数据库和 .env
  • 如需启用频道广告过滤,请升级后进入 Web「订阅中心」逐个订阅配置;现有订阅默认保持关闭。

验证

  • Backend:457/457 项测试通过,TypeScript 类型检查通过,生产构建通过。
  • Frontend:203/203 项测试通过,生产构建通过。
  • 安装脚本测试:通过。

TG Vault v2.3.0

Choose a tag to compare

@hicocos hicocos released this 29 Aug 14:53

更新日志

新增

  • Telegram 用户账号支持二维码/手机号登录,可管理多个账号并按来源进行调度。
  • 新增 Telegram 账号健康状态、来源权限检查、冷却与访问审计。
  • 新增可恢复的媒体缩略图/预览生成队列,并持久化衍生任务状态。
  • 新增增量数据库迁移台账、迁移校验和启动时安全恢复。
  • 新增文件名/文件夹三元组搜索索引。
  • Web 任务中心、Telegram Bot 面板与中英文界面继续完善。

修复与改进

  • 上传后的媒体衍生处理从请求链路移出,降低大文件上传延迟并支持失败恢复。
  • 改进本地文件存储、孤儿文件清理、媒体代理与云存储错误处理。
  • 强化 Telegram Bot 认证、2FA 二维码临时文件清理、任务与订阅交互安全。
  • 统一前端 HTTP/API 错误处理、会话失效处理、加载状态和移动端交互。
  • 更新部署构建与数据库 schema 同步流程,保留锁定依赖和镜像可追溯元数据。

验证

  • Backend: 438 tests passed,typecheck、schema check、dist schema check passed。
  • Frontend: 201 tests passed,lint and production build passed。
  • Installer syntax/contract checks passed。

TG Vault v2.2.1

Choose a tag to compare

@hicocos hicocos released this 27 Aug 16:59

TG Vault v2.2.1

本版本集中修复 HTTP 部署、分片续传、Web 密码变更与安装脚本兼容性问题。

修复与改进

  • 修复 HTTP 来源不提供 Web Crypto subtle 时,分片上传无法计算 SHA-256、导致上传或续传失败的问题;新增纯前端 SHA-256 回退实现,并保留 HTTPS 环境下的原生 Web Crypto 路径。
  • 加强分片续传身份校验:恢复上传前逐块核对已上传内容哈希,避免同名同大小但内容不同的文件错误复用旧会话。
  • 修复启用加密设置存储后修改 Web 管理密码失败的问题;密码读取和写入现在均正确经过加解密,并在事务中撤销现有 Web 会话。
  • 改进安装脚本对受限环境的兼容性,不再依赖 nodeopenssl,统一使用 Python 读取版本和生成安全随机密钥。
  • 补充正式部署的 Cookie 安全开关及回归测试,避免遗留环境变量意外削弱 HTTPS Cookie 策略。

升级

git fetch origin
git pull --ff-only origin main
./deploy/install.sh

升级前建议备份 PostgreSQL 和完整 file-storage 卷。

完整变更

v2.2.0...v2.2.1

TG Vault v2.2.0

Choose a tag to compare

@hicocos hicocos released this 27 Aug 13:21

TG Vault v2.2.0

本版本新增 OpenList 原生存储接入与版本更新提醒,并集中修复文件浏览、存储切换、OAuth、任务中心和移动端交互中的一致性问题。

新功能

  • 新增 OpenList 原生存储提供商:可在 TG Vault 内配置地址、根目录、用户名和密码,支持连接测试、上传、下载、预览、范围请求和删除。
  • 新增版本检查:设置页可手动检查 GitHub 最新稳定版,检测到新版本时在 Web 端展示提醒,并向符合条件的已认证 Telegram 用户发送一次通知。
  • 存储账户能力现在可准确控制上传、分享和删除等界面操作,避免对只读存储显示不可执行动作。

修复与改进

  • 修复文件排序与游标分页不一致、加载更多竞态、搜索快照过期、收藏夹过滤和手动刷新残留旧状态等问题。
  • 修复文件夹重命名/移动后的 URL 路由同步,以及文件移动完成后列表未按服务端状态刷新的问题。
  • 修复切换存储账户时配置与容量统计不同步,并在上传前锁定目标账户,避免传到错误存储。
  • 修复 OAuth 弹窗关闭、超时和消息校验流程;加强公网请求的 DNS、重定向和 SSRF 防护。
  • 改进任务轮询串行化、任务快速筛选及按账户清理任务的准确性。
  • 改进移动端和键盘操作、对话框异步失败反馈、上传失败原因展示及中英文界面一致性。
  • 修复构建产物数据库 schema 同步,确保源码、初始化脚本与发布镜像一致。
  • .env.example 不再包含 IMAGE_VERSIONSOURCE_VERSIONSOURCE_REVISION。应用版本统一从 backend/package.json 读取,Git 修订号在部署时读取,构建元数据只临时传给 Docker,不再持久化到 .env
  • deploy/install.sh 升级旧部署时会清理遗留版本字段,避免旧 .env 覆盖新版本;同时只重建和替换前后端,不重建 PostgreSQL。

升级

git fetch origin
git pull --ff-only origin main
./deploy/install.sh

升级前建议备份 PostgreSQL 和完整 file-storage 卷。

完整变更

v2.1.1...v2.2.0

TG Vault v2.1.1

Choose a tag to compare

@hicocos hicocos released this 26 Aug 16:03

TG Vault v2.1.1

本版本集中修复 Web 上传、存储账户删除和任务中心的关键逻辑问题。

修复

  • 修复所有存储提供商上传时误把展示名称当作 provider ID 的问题,覆盖本地、OneDrive、Google Drive、阿里云 OSS、S3 和 WebDAV。
  • 修复存储账户删除预览中的 PostgreSQL text = uuid 类型冲突,避免“无法创建删除确认”和后端进程退出。
  • 删除确认失败现在返回结构化错误,不再因未捕获的异步异常导致服务重启。
  • 修复简单上传丢失后端错误正文的问题,并统一处理 401/428 会话失效状态。
  • 修复文件删除和存储账户删除未一致处理失效会话的问题。
  • 任务中心新增按存储账户的服务端过滤,避免较旧的阻塞任务被全局 300 条限制截断。
  • 修正删除确认 expiresAt 的前后端类型契约。

验证

  • 后端测试:361/361 通过。
  • 前端测试:144/144 通过。
  • 后端类型检查、构建通过;前端 ESLint、TypeScript 和生产构建通过。
  • WebDAV 上传/下载/删除链路和存储账户删除完整流程已验证。

升级

git fetch origin
git pull --ff-only origin main
./deploy/install.sh

升级前建议备份 PostgreSQL 和完整 file-storage 卷。

完整变更

v2.1.0...v2.1.1

TG Vault v2.1.0

Choose a tag to compare

@hicocos hicocos released this 26 Aug 14:21

TG Vault v2.1.0

本版本重点完善 Telegram 网页配置、账号级下载、yt-dlp Web 任务和低维护部署体验,并移除已经废弃的 AI/pgvector 依赖。

新功能

  • Telegram Bot 网页管理
    • 在“设置 → Telegram”中测试、保存、启用、停用或删除 Bot 配置。
    • Bot Token、API ID 和 API Hash 使用 AES-256-GCM 加密保存,页面和查询接口不回显明文。
    • 支持从旧 .env 配置迁移到网页管理。
  • Telegram 用户账号网页登录
    • 支持手机号、验证码和可选两步验证密码登录。
    • 用户 session 加密保存在服务端;可停用并保留登录,也可解除绑定。
    • 兼容旧版明文 session 文件迁移。
  • Web 创建 yt-dlp 任务
    • 可从文件页粘贴单个媒体链接,选择最佳视频或 MP3。
    • 任务进入持久化任务中心,并沿用当前存储目标快照和 URL 安全检查。
  • 下载明细保留策略
    • 默认仅保留错误明细,减少长期数据库占用。
    • 可切换为保留全部,满足完整审计需求。

部署与基础设施

  • 新增交互式安装向导:自动检测 Docker Engine、Docker Compose、Python 3 和 Git,并由用户决定是否补全缺失环境。
  • 一次运行完成 Web/API URL 输入、.env 创建、密钥生成、版本写入、构建和启动。
  • 支持 --non-interactive 自动化部署模式。
  • 移除 OpenSSL 前置依赖;密钥改由 Python 安全随机数生成。
  • PostgreSQL 镜像切换为固定 digest 的标准 PostgreSQL 16,移除已废弃 AI 功能遗留的 pgvector 镜像依赖。

体验与安全改进

  • 首次初始化根据 Bot 是否已配置决定是否要求 Bot PIN。
  • Telegram Bot 生命周期操作串行化,并在失败时回滚配置。
  • 用户账号 session、Bot 配置和允许用户管理进一步收紧明文暴露边界。
  • 上传中心、移动端布局、弹层层级、批量删除和任务反馈体验优化。
  • 更新后端依赖锁,修复 urllib 高危跨域重定向凭据泄漏问题。

升级

git fetch origin
git status --short
git pull --ff-only origin main
./deploy/install.sh

已有部署在安装向导中直接按三次 Enter,即可保留 Web/API 地址并完成升级。升级前请备份 PostgreSQL 和完整 file-storage 卷。

完整变更

v2.0.5...v2.1.0