利用宝塔面板+Onelist+Onedrive搭建在线网盘
Onelist是萌咖大佬开发的Onedrive的目录程序,轻量、简约,同时支持国际和国内(世纪互联)版的onedrive程序。
项目地址:https://github.com/MoeClub/OneList/tree/master/Rewrite
此教程用于指导如何在宝塔环境的vps上搭建onelist
1、安装宝塔(centOS7)
ssh登录VPS
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
登录宝塔,一键快速安装环境
2、安装Golang
在SSH输入以下命令
wget -O golang_install.sh https://lowvps.cn/wp-content/uploads/2019/05/golang_install.sh && sh golang_install.sh
安装完成后,执行
source /etc/profile
3、安装Onelist
在SSH输入以下命令
mkdir /opt/OneList && cd $_ wget https://raw.githubusercontent.com/MoeClub/OneList/master/Rewrite/amd64/linux/OneList chmod +x OneList
然后获取index.html,就是所谓的“皮”
Onelist项目里可以下载到index.html,且有大佬为onelist也开发了具有更多功能的魔改皮,推荐以下地址下载(V佬的)
https://raw.githubusercontent.com/jackjieYYY/yyy/master/index.html
可以使用wget命令,也可以用电脑下载index.html文件后,利用宝塔的文件管理功能,将index.html文件上传到“/opt/Onelist”文件夹里
4、配置Onelist
先获取API
在浏览器地址栏输入以下链接:
国际版、个人版(家庭版)
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=78d4dc35-7e46-42c6-9023-2d39314433a5&response_type=code&redirect_uri=http://localhost/onedrive-login&response_mode=query&scope=offline_access%20User.Read%20Files.ReadWrite.All
国内版(世纪互联)
https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize?client_id=dfe36e60-6133-48cf-869f-4d15b8354769&response_type=code&redirect_uri=http://localhost/onedrive-login&response_mode=query&scope=offline_access%20User.Read%20Files.ReadWrite.All
打开页面登录后,看到授权页面,点接受(如果不出现授权页面,而是打不开,地址栏出现error字样,说明你的Onedrive没有API权限,无法使用Onelist)
点完接受以后,页面会跳转到空白页,地址栏是ht tp://localhost开头的,复制整个地址栏的地址备用。
SSH输入以下代码生成配置文件(根据你的Onedrive类型选择相应代码,其中url替换为刚才复制下来的地址,包括http的完整地址):
# 国际版 OneList -a "" -s "/onedrive01" # 个人版(家庭版) OneList -ms -a "" -s "/onedrive02" # 中国版(世纪互联) OneList -cn -a "" -s "/onedrive03"
出现“Success! Add config. '/path/to/config.json'”,表示生成成功。
然后打开宝塔面板,进入文件管理,找到“config.json”文件,编辑
可以按照如下说明编辑config.json文件,如果挂载一个ondrive,只需将“Subpath”后的"/onedrive01”改成“/”即可,保存,关闭config.json
[ { // 如果是家庭版或者个人免费版, 此项应为 true. "MSAccount": false, // 如果是中国版(世纪互联), 此项应为 true. "MainLand": false, // 授权令牌 "RefreshToken": "无需修改", // (推荐只有一个盘位的时候使用根目录"/".) "SubPath": "/", // 读取OneDrive的某个目录作为根目录. (支持根目录"/") "RootPath": "/Test", // 隐藏OneDrive目录中的文件夹和文件, 条目间使用 "|" 分割. (跳过缓存设置的条目.) "HidePath": "/Test/Obj01|/Test/Obj02", // 使用用户名和密码加密OneDrive目录. 目录和用户名密码间使用 "?" 分割, 用户名密码使用 ":" 分割, 条目间使用 "|" 分割. 无效条目将跳过. "AuthPath": "/Test/Auth01?user01:pwd01|/Test/Auth02?user02:pwd02", // 缓存刷新间隔.(所有项目中的刷新时间取最小值为有效刷新间隔) "RefreshInterval": 900 } ]
这样就配置完成了。
先来启动试试,运行以下命令(其中0.0.0.0更换为你的公网IP,5288可以更换为你想指定的端口):
./OneList -bind 0.0.0.0 -port 5288
然后在浏览器输入你的公网IP:5288,看看能否打开。
5、设置开机启动
打开宝塔面板,进入文件管理,找到/etc/systemd/system文件夹
新建空白文件,命名为“onelist.service”
编辑该文件,输入以下代码(其中0.0.0.0改为你的公网IP):
[Unit] Description=onelist After=network.target [Service] Type=simple ExecStart=/opt/OneList/OneList -bind 0.0.0.0 -port 5288 Restart=on-failure [Install] WantedBy=multi-user.target
保存退出。
进入SSH,执行以下命令:
systemctl start onelist systemctl enable onelist
然后重启你的VPS。(reboot命令)
6、设置域名访问
先做好域名解析,再进入宝塔面板,创建网站,设置反向代理
然后就可以直接用域名访问网盘了。
