来尝试无限容量,可以webdav挂载的teldrive吧!
前言
两个月前偶然间看到telegram团队做了一个网盘叫teldrive
,据说是可以无限存储的网盘,且可以webdav
挂载到本地,于是部署到了服务器上,但当时没有写博客记录,最近空闲了决定补一下博客。
2025/01/07更新,由于teldrive已经全面重构,文档官方安装方法已经不使用teldrive了,建议跟随官方文档,官方文档点此
teldrive介绍
teldrive是一个通过telegram账号登陆后存储到私人账户空间的一个网盘空间,类似于google drive
和onedrive
特点如下
- 数据很安全,官方保证存储数据不会丢失
- 可以webdav挂载到本地
- 无限容量
- 上传下载速度取决于你的服务器链接至
telgram
服务器的速度
缺点是无法直链共享,共享需要走自己的服务器流量
这里可以看到这个url指向本地ip,需要公网环境才可以共享
部署teldrive
根据teldrive官方仓库的指引即可
本文采取docker-compose
部署的方式
填写配置信息
首先创建并填写config.toml
根据提示填写数据库地址
,secret
即可
数据库地址比较容易理解,secret
则是可以通过openssl rand -hex 64
生成,或者通过官方的vercel app链接一键获取
这里可能会比较疑惑的是app-id
和app-hash
其实app-id
和app-hash
是telegram的api相关密钥
根据英文指引即可获得,这里不再赘述
特别提示:如果你部署在国内本地服务器,那你需要在[tg]下添加proxy
选项
最终我的配置是这样的
[db] |
填写docker-compose
我的docker-compose.yml
仅供参考,官方docker-compose文件是不含postgre数据库部署的,若你使用官方的docker-compose请自行配置连接数据库的url即可
在同一文件夹下创建docker-compose.yml
vim docker-compose.yml |
填入如下内容
services: |
注意这里POSTGRES_DB
和POSTGRES_PASSWORD
环境信息需要修改为同刚才config.toml
相同的配置,如我的配置
[db] |
这里
postgres://
代表协议对接postgresql
数据库- 冒号前则是用户名
- 冒号后面的
xxx
则是密码 @
后面就是访问终结点,postgres_db
,可以看作是ip5432
则是端口,这里是默认没有改/teldrive
代表访问的数据库是teldrive
其实就是数据库的标准url访问i形式
<protocol>://<username>:<password>@<ip or domain or alias>:<port(optional)>/<database_name> |
顺带一提halo
博客用的springboot
,链接mysql
的话也一个格式
mysql://twoonefour:xxx@127.0.0.1/halo |
题外话扯远了,配置完docker-compose.yml
后,这里还需要一个session.db
文件,创建一下就可以开启容器了
touch session.db |
之后可以尝试访问
http://<teldrive部署地址>:8080
还需要把你的机器人拉入tg频道才能使用,如下图,访问http://<teldrive部署地址>:8080/settings/account
。在这里选择一个频道作为存放文件的位置
之后就能正常使用辣
对接rclone使用webdav
rclone
是一个开源的用于挂载盘到本地的一个开源软件
github仓库地址
但这里teldrive是不能使用开源的rclone的,坑死我了
teldrive需要使用telegram团队魔改的版本
直接从release下载下来即可使用
下载完以后创建文件配置,位于~/.config/rclone/rclone.conf
[teldrive] |
需要动脑筋的是access_token
,在teldrive
登陆以后,在控制台cookie中获取
复制这个值填上就可以了
其他的根据需要填写
填完以后就可以运行了,我的命令示例如下
rclone mount teldrive:/ /volume3 \ |
这里我是挂载到/volume3
下的
其他参数请看文档rclone文档
自动挂载请参照官方文档自动挂载 rclone-as-unix-mount-helper
我这里给出我的方案,我是使用的systemd
vim /usr/lib/systemd/system/rclone.service
填入以下内容
[Unit] |
接着素质二连即可启动
systemctl daemon-reload |
之后就能同普通文件夹一样,访问/volume3
就是访问远程,使用cp
命令,mv
命令都可以,看你的脑洞要如何运用了
顺带一提我的nas就是整个备份到了teldrive
里,可以看到我已经用了1T空间了
至此搭建结束,enjoy