Repository navigation
Releases: w32394045-dotcom/teldrive-portable
Release list
Teldrive Portable v2.5.1
Teldrive Portable v2.5.1 — 登录修复
解压即用:自带 PostgreSQL 和网页界面,不需要装 Go / Node / PostgreSQL,也不需要管理员权限。
这一版修了什么
v2.5.0 在浏览器里点「发送验证码」会报 request is invalid: Idempotency-Key: field required,完全无法登录。 这是网页客户端的一个 bug,不是账号或 Telegram 的问题,也不影响已经登录过的机器。
原因:openapi-fetch 先把请求组装成一个 Request(Content-Type、Idempotency-Key 等契约头都在这个对象上),再交给我们的 fetch 包装函数;包装函数为了附加「保持登录」等请求头,用新建的 Headers 覆盖了原请求,结果把 Content-Type 和 Idempotency-Key 一起丢了,服务端按契约拒绝。现在包装函数会先复制原请求的全部请求头再追加自己的,登录、验证码、二步验证、以及所有需要 Idempotency-Key 的写操作都恢复正常;并新增了一条回归测试,直接断言生成请求保留 Content-Type 与合法的 Idempotency-Key,防止再悄悄退化。
下载后怎么用
- 下载
teldrive-2-win64.zip并解压(不要放在C:\Program Files之类需要管理员权限的目录); - 双击
teldrive-gui.exe; - 首次启动约 1 分钟初始化数据库,之后约 5 秒;网页界面会以应用窗口自动打开。
已经解压过 2.5.0 的话,只需用新包里的 teldrive.exe / teldrive-gui.exe 覆盖旧的同名文件,data/ 目录和里面的登录状态、设置都保留。
之后程序待在右下角托盘:左键重开界面,右键可「打开界面 / 复制地址 / 退出 Teldrive」。退出时内置数据库会一起停掉。
teldrive-gui.exe 没有控制台,诊断信息在 data/teldrive-gui.log。想用控制台入口:teldrive.exe run -c config.toml(check / version 也可用)。
包里还有什么
- 原生壳
teldrive-gui.exe:双击打开网页界面的应用窗口(系统浏览器的应用模式,不是 WebView 套壳),后台只留托盘;有设备申请访问时弹气泡;开机自启时静默进托盘,不弹窗、不打开浏览器。 - 局域网伴侣访问:同一网络里的手机/平板打开地址即可申请,电脑端逐台批准后借用电脑的登录状态;可随时撤销,待批准列表实时可见。
- 设置加密:signing-key / data-key / 数据库地址 / 加密密钥用 AES-256-GCM + PBKDF2(SHA-256, 60 万次) 封在本地;口令可自设或随机生成(14–25 位),默认记住、也可改成每次启动手填。
- 备份与恢复:快照可选密码加密(同参数),内容可勾选(用户 / 加密密钥,金库密钥随包带走);恢复是手动按钮 + 输入确认,支持覆盖或合并。
- 保存到这台电脑:文件工具栏一键写进你选的目录(设置里可选目录、可勾「每次询问」),不再受浏览器下载目录限制。
- 保持登录:默认记住登录,可一键关掉。
- 端口不写死:默认 18787,被占用自动顺延,实际地址在窗口 / 设置页 / 托盘都可见。
- 还有 WebDAV、挂载网络盘、开机自启、五种界面语言(简中/繁中/英/日/韩)、深浅色主题,以及上传稳定性和首屏压缩(≈2 MB → ≈500 KB)。
包里不含任何运行数据或真实密钥:config.toml 里是占位符,首次启动自动生成你自己的随机密钥。
发布闸门 tools/verify_bundle.py 会检查必需文件齐全、无运行数据、无真实密钥、无 .bat 启动脚本——任何一项不满足都不会发出来。
详见 README。
Teldrive Portable v2.5.0
Teldrive Portable — Windows 便携包
解压即用:自带 PostgreSQL 和网页界面,不需要装 Go / Node / PostgreSQL,也不需要管理员权限。
下载后怎么用
- 下载
teldrive-2-win64.zip并解压(不要放在C:\Program Files之类需要管理员权限的目录); - 双击
teldrive-gui.exe; - 首次启动约 1 分钟初始化数据库,之后约 5 秒;网页界面会以应用窗口自动打开。
之后程序待在右下角托盘:左键重开界面,右键可「打开界面 / 复制地址 / 退出 Teldrive」。退出时内置数据库会一起停掉。
teldrive-gui.exe 没有控制台,诊断信息在 data/teldrive-gui.log。想用控制台入口:teldrive.exe run -c config.toml(check / version 也可用)。
这一版有什么
- 原生壳
teldrive-gui.exe:双击打开网页界面的应用窗口(用系统浏览器的应用模式,不是 WebView 套壳),后台只留托盘;有设备申请访问时弹气泡;开机自启时静默进托盘,不弹窗、不打开浏览器。 - 局域网伴侣访问:同一网络里的手机/平板打开地址即可申请,电脑端逐台批准后借用电脑的登录状态;可随时撤销,待批准列表实时可见。
- 设置加密:signing-key / data-key / 数据库地址 / 加密密钥用 AES-256-GCM + PBKDF2(SHA-256, 60 万次) 封在本地;口令可自设或随机生成(14–25 位),默认记住、也可改成每次启动手填。
- 备份与恢复:快照可选密码加密(同参数),内容可勾选(用户 / 加密密钥,金库密钥随包带走);恢复是手动按钮 + 输入确认,支持覆盖或合并。
- 保存到这台电脑:文件工具栏一键写进你选的目录(设置里可选目录、可勾「每次询问」),不再受浏览器下载目录限制。
- 保持登录:默认记住登录,可一键关掉。
- 端口不写死:默认 18787,被占用自动顺延,实际地址在窗口 / 设置页 / 托盘都可见。
- 还有 WebDAV、挂载网络盘、开机自启、五种界面语言(简中/繁中/英/日/韩)、深浅色主题,以及上传稳定性和首屏压缩(≈2 MB → ≈500 KB)。
包里不含任何运行数据或真实密钥:config.toml 里是占位符,首次启动自动生成你自己的随机密钥。
发布闸门 tools/verify_bundle.py 会检查必需文件齐全、无运行数据、无真实密钥、无 .bat 启动脚本——任何一项不满足都不会发出来。
详见 README。
teldrive 一键运行包 v2.2.0
CI 在 windows-latest 上从源码构建的 Windows 一键运行包。解压后双击 teldrive.exe(包里唯一的入口,没有 .bat 脚本):首次启动会自动生成随机密钥、初始化内置 PostgreSQL,并在端口就绪后打开浏览器;退出时会自己停掉内置数据库。详见仓库 README。
teldrive 一键运行包 v2.1.0
CI 在 windows-latest 上从源码构建的 Windows 一键运行包。解压后双击 teldrive.exe(包里唯一的入口,没有 .bat 脚本):首次启动会自动生成随机密钥、初始化内置 PostgreSQL,并在端口就绪后打开浏览器;退出时会自己停掉内置数据库。详见仓库 README。
teldrive 一键运行包 v2.0.3
CI 在 windows-latest 上从源码构建的 Windows 一键运行包。解压后双击 start.bat:首次启动会自动生成随机密钥、初始化内置 PostgreSQL,并在端口就绪后打开浏览器。详见仓库 README。
teldrive 一键运行包 v2.0.2
CI 在 windows-latest 上从源码构建的 Windows 一键运行包。解压后双击 start.bat:首次启动会自动生成随机密钥、初始化内置 PostgreSQL,并在端口就绪后打开浏览器。详见仓库 README。
teldrive 一键运行包 v2.0.1
CI 在 windows-latest 上从源码构建的 Windows 一键运行包。解压后双击 start.bat;首次启动会自动生成随机密钥、初始化内置 PostgreSQL 并打开浏览器。详见仓库 README。
v2.0.0-p4 — Windows 一键运行包 + 简繁中日韩 i18n
Windows 一键运行包 + 简繁中日韩 i18n。对应二进制 teldrive version 输出的 2.0.0-p4。
这个包能干什么
解压后双击 start.bat:首次自动 initdb 建库 → 启动内置便携 PostgreSQL 17 → 启动 teldrive → 端口就绪后自动打开浏览器。停止双击 stop.bat。不需要预先安装 Go / PostgreSQL / Node。
| 组件 | 说明 |
|---|---|
teldrive.exe |
服务主程序,React 前端已 embed 进二进制 |
pgsql/ |
便携 PostgreSQL 17.11,免安装,只听 127.0.0.1:5433 |
start.bat / stop.bat |
一键启停(GBK 编码,中文控制台直接可读) |
config.toml |
由 tools/make_bundle.py 生成,含随机 signing-key / data-key |
界面语言
English / 简体中文 / 繁體中文 / 日本語 / 한국어,各 735 条词条。
- 切换入口:登录页右上角 或 设置 → 外观 → Language
- 选择存 localStorage,首访按
navigator.language自动判断,切换时同步<html lang> - 以英文原文为 message key,缺译文回落到英文而不是显示裸 key
修复的上游问题
- 浏览器整页翻译导致 React 崩溃:Google 翻译重排 DOM 后,页面任意一次提交都会抛
Failed to execute 'insertBefore' on 'Node',按钮点不动。已在页面声明translate="no"+
<meta name="google" content="notranslate">(复现与验证脚本见tools/repro-translate.mjs、tools/verify-login.mjs)。 - 登录页手机号:自动去空格/横线/括号、
00前缀转+,格式不合法时内联提示并禁用按钮。 - 服务端 400 文案:schema 校验失败不再谎报
request could not be decoded,改为指出具体字段与原因。
构建
Go 1.27.1 + bun 1.4.2 构建前端,CGO 关闭编译服务端;数据库使用便携版 PostgreSQL 二进制。步骤见 README。
说明
本仓库只包含源码与打包脚本,不包含编译产物与运行数据;dist/、data/、config.toml 等已被 .gitignore 排除。
src/teldrive-2/ 为 tgdrive/teldrive 副本,遵循其 MIT 许可(见 LICENSE)。