项目地址:https://github.com/hicocos/tg-vault
大家好,最近把自己二开的一个项目整理开源了,叫 TG Vault。
它的定位比较明确:面向个人和小团队,把 Telegram 里的文件、频道/群组媒体、视频链接下载任务,统一转存到自己可控的私有云存储里,并提供一个 Web 文件管理界面。
如果你平时有这些需求,可能会比较适合:
- Telegram 里经常收文件,想顺手转存到自己的服务器或对象存储
- 频道/群组里有大量媒体,想按日期、标签或订阅方式归档
- 想要一个轻量的 Web 文件管理入口,而不是只靠命令行整理文件
- 想把本地盘、OneDrive、Google Drive、S3/WebDAV 等存储统一接入
它能做什么
| 模块 | 功能 |
|---|---|
| Web 文件管理 | 文件上传、分片大文件上传、文件夹、预览、删除、存储源管理 |
| 多存储源 | 本地、OneDrive、Google Drive、阿里云 OSS、S3 兼容存储、WebDAV |
| Telegram Bot | 私聊发文件转存、任务队列、存储统计、删除文件、yt-dlp 下载 |
| Telegram 账号级下载器 | 频道/群组按日期或标签批量抓取、订阅同步、大文件更稳定下载 |
| 自动归档 | 默认按来源/频道和文件类型保存,例如 telegram/channel/images/file.jpg |
| 安全相关 | 首次初始化管理员、HttpOnly Cookie、Origin 校验、签名 URL、TOTP 双重验证 |
Bot 和账号级下载器的区别
这里我特意把两层能力拆开了,避免为了用基础功能就必须登录 Telegram 用户账号。
| 能力 | 只启用 Bot | 启用账号级下载器 |
|---|---|---|
| 私聊发送文件给 Bot 转存 | 支持 | 支持 |
| 任务管理、存储统计、删除文件 | 支持 | 支持 |
/ytdlp 下载视频链接 |
支持 | 支持 |
| 频道/群组按日期或标签批量抓取 | 不支持 | 支持 |
| 频道/群组订阅自动同步 | 不支持 | 支持 |
| 超过 Bot 限制的大文件下载 | 可能失败 | 更稳定 |
也就是说,如果你只是想把发给 Bot 的文件转存、看看任务、跑 yt-dlp,不生成用户账号 session 也能用。只有频道/群组批量抓取、订阅同步、大文件下载这些场景,才需要额外启用账号级下载器。
快速部署
- 克隆仓库
git clone https://github.com/hicocos/tg-vault.git
cd tg-vault
- 配置环境变量
cp .env.example .env
vi .env
| 使用场景 | 需要填写/执行 |
|---|---|
| 基础 Web 部署 | DB_PASSWORD、VITE_API_URL、CORS_ORIGIN、DOMAIN |
| 启用 Telegram Bot 基础能力 | 额外填写 TELEGRAM_BOT_TOKEN、TELEGRAM_API_ID、TELEGRAM_API_HASH |
| 启用账号级 Telegram 下载器 | 在 Bot 基础配置之后,运行登录脚本生成 TELEGRAM_USER_SESSION_FILE |
- 构建前端
set -a
source .env
set +a
docker build \
--build-arg VITE_API_URL="${VITE_API_URL}" \
-t tg-vault-frontend:latest \
./frontend
- 构建后端
docker build -t tg-vault-backend:latest ./backend
- 生成用户账号 session(可选)
仅在需要账号级 Telegram 下载器时执行
docker compose run --rm --no-deps backend npm run login:telegram-user
- 启动服务
docker compose up -d
7.反代
| 访问域名 | 转发至宿主机 IP:端口 | 说明 |
|---|---|---|
cloud.example.com |
127.0.0.1:47832 |
强制https协议,前端 / 网页入口 |
api.example.com |
127.0.0.1:51947 |
强制https协议,后端 / API 接口 |
8.首次访问前端cloud.example.com 配置前端访问密码以及tgbot的验证密码(强制4位数字)
至此-完成部署
9.后续怎么更新同步上游
先cd到项目目录
git fetch origin
git pull --ff-only origin main
docker compose up -d --build
开源协议
项目基于 MIT License 开源。
GitHub 地址:
https://github.com/hicocos/tg-vault
如果这个项目刚好解决了你的需求,欢迎试用、提 issue,也欢迎顺手点个 Star。后面我也会继续根据自己的使用场景和评论区反馈慢慢补功能和修细节。
本项目基于 https://www.nodeseek.com/post-618525-1 深度二开
ps:部分功能预览放到评论区1f展示
大家有什么优化建议,新增功能,bug都欢迎在评论区留言!
更新日志简要说明
7月2日晚18点30分
7月3日19点20分
7月4日9点30分
7月5日14点50分
7月6日
7月11日
7月14日
7月17日
7月23日
8月26日
@致敬稻神袁隆平 #34
https://buy.aixou.top/
(pixel手机认证渠道)
@致敬稻神袁隆平 #54
目前的形式是:根据你们的反馈来修bug或者增加功能优化等。这种被动更新
我就暂时不主动想着更新了,目前在二开一个喜马拉雅下载器的工具,等搞的差不多了再说
@武则天 #88
收到收到
@武则天 #88

新版本已推送。
@武则天 #94
@武则天 #95
抱歉,昨晚蹬了一晚,对整个项目做了大量的修改优化增加功能等等。
没实际验收就推送到github了,我的锅
我等会把你这个问题修复了
频道订阅功能界面预览
频道按照日期/标签批量下载界面预览
telegram下载并发界面预览
自定义路径规则界面预览
文件级并发下载数界面预览
大佬啊
这个真需要,感谢大佬
看不懂,但是觉得牛
你的意思是说,我在tg看到的剧情演绎片可以保存到我的服务器上了?
是个好东西
看起来不错
@致敬稻神袁隆平 #5
对的,搭好之后,把文件转发给bot就行了。
@sakura-s #8 这真是一个伟大的发明
支持一下