rclone+rtorrent+aria2+BaiduPCS-GO server deploying script
1.2K
rclone+rtorrent+aria2+BaiduPCS-GO server deploying script
配置文件主要关注根目录下的
主要作用是设置子路径,如果你的Nginx Web Server有多个App在跑,那么为每个App设置一个子路径就尤为重要了
配置实例:
BASE_URL=/secret
例子设置子路径为/secret那么可以用http(s)://xxx:port/secret/secret_page来访问服务,当然你的Nginx需要自行配置Reverse proxy,上面例子用到的Nginx部分配置为:
location ^~ /secret/ {
proxy_redirect off;
proxy_pass http://127.0.0.1:27123;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
需要修改的部分为/secret/与端口
该配置文件为rclone config命令完成后产生的文件,路径为~/.config/rclone/rclone.conf,用于授权Google drive来上传文件,若失效请自行运行rclone config并拷贝到根目录
实例:
[gdrive]
type = drive
scope = drive
token = {"access_token":"ya29.a0Ae4lvC0CuB-i1sHovFxe-Qe_xIXnb2PDaCCUYXJiHxDODhI8ai4_aJI8ZPjbaOWw6fQQwFH_rMSw9jNkVQNuGeG8OWA8E533hbAygK7moK7aQodkTAfL7OlbBvxxmD88PosXKXK2opnvJlW1HqC2GpgBtzOTR6SnIoLJ","token_type":"Bearer","refresh_token":"1//0eUQuF6ko0VyXCgYIARAAGA4SNwF-L9Ir6xIl5OwXdOntBZPDV1OW54b2vhUAeTLKn2NaMgUhV97_1_mIREWeTj-H2em_sCKCoLw","expiry":"2020-05-08T20:14:46.257778204+08:00"}
team_drive = 0ABvVTBlOhQrYUk9PVA
请保证上面的gdrive不变
用于配置pixiv-worker,包括用于过登录验证的cookies,下载保存的路径,以及是否使用代理(支持socks5)
实例:
config = {
'cookies':
'first_visit_datetime_pc=2019-09-22+23%3A48%3A52; p_ab_id=0; p_ab_id_2=2; p_ab_d_id=543106197; privacy_policy_agreement=2; c_type=20; a_type=0; b_type=1; module_orders_mypage=%5B%7B%22name%22%3A%22sketch_live%22%2C%22visible%22%3Atrue%7D%2C%7B%22name%22%3A%22tag_follow%22%2C%22visible%22%3Atrue%7D%2C%7B%22name%22%3A%22recommended_illusts%22%2C%22visible%22%3Atrue%7D%2C%7B%22name%22%3A%22everyone_new_illusts%22%2C%22visible%22%3Atrue%7D%2C%7B%22name%22%3A%22following_new_illusts%22%2C%22visible%22%3Atrue%7D%2C%7B%22name%22%3A%22mypixiv_new_illusts%22%2C%22visible%22%3Atrue%7D%2C%7B%22name%22%3A%22spotlight%22%2C%22visible%22%3Atrue%7D%2C%7B%22name%22%3A%22fanbox%22%2C%22visible%22%3Atrue%7D%2C%7B%22name%22%3A%22featured_tags%22%2C%22visible%22%3Atrue%7D%2C%7B%22name%22%3A%22contests%22%2C%22visible%22%3Atrue%7D%2C%7B%22name%22%3A%22user_events%22%2C%22visible%22%3Atrue%7D%2C%7B%22name%22%3A%22sensei_courses%22%2C%22visible%22%3Atrue%7D%2C%7B%22name%22%3A%22booth_follow_items%22%2C%22visible%22%3Atrue%7D%5D; yuid_b=GHdZgzg; login_ever=yes; tag_view_ranking=LVSDGaCAdn~RcahSSzeRf~QKeXYK2oSR~RgJEiMBANx~rOpRniQ0iz~oeWxJy97tt; PHPSESSID=40593391_rvg5JKJ6t0zAl9aHfOwQWhyW7KJKALZW; __cfduid=d940fa6493ef3458cefc36180cb7fe9ba1588762389; is_sensei_service_user=1',
# or
#'username': '',
#'password': '',
'proxies': {
'http': '',
'https': ''
},
'save_dir': '$HOME/rtorrent/PixivImages'
}
目前尚不支持用户名密码登录,一般只需要修改cookies,建议使用Firefox来登录Pixiv并复制Cookies
该配置文件为百度网盘登录配置文件,百度网盘登录部分由BaiduPCS-Go负责(可能会被自己写的BDPanDownloader替换),通过BaiduPCS-Go login -bduss=BDUSS来生成,其中将BDUSS替换成你的
实例:
{
"baidu_active_uid": 222735826,
"baidu_user_list": [{
"uid": 222735826,
"name": "qq372505855",
"sex": "♂",
"age": 9.8,
"bduss": "NsUzc3NXB1UFhBb3FiQWZSd0pyV3pMcmE3U09zYlpVRkZJUDliREVxZzJFbVplSVFBQUFBJCQAAAAAAAAAAAEAAADSrUYNcXEzNzI1MDU4NTUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaFPl42hT5eMH",
"ptoken": "",
"stoken": "",
"workdir": "/"
}],
"appid": 266719,
"cache_size": 65536,
"max_parallel": 8,
"max_upload_parallel": 8,
"max_download_load": 1,
"max_download_rate": 0,
"max_upload_rate": 0,
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
"pcs_ua": "",
"pan_ua": "netdisk;2.2.51.6;netdisk;10.0.63;PC;android-android",
"savedir": "/root/Downloads",
"enable_https": true,
"proxy": "",
"local_addrs": ""
}
关于百度网盘路径填写可直接用/xxx/xxx也可以直接复制成>xxx>xxx
对于上面四个文件,如果不是Docker而是运行run.sh来部署,且需要重新更新配置,可以删除其中任意一个需要重新配置的配置文件,脚本检测不到配置文件会提示输入配置,按提示配置即可
如果是Docker部署,则上述文件都必须存在(config.env可以用-e选项来替代),请提前配置并复制覆盖需要更新的配置文件再运行镜像
项目有两者部署方式,一种是直接部署,另一种是Docker
直接部署后需要重启rtorrent(如果在配置过程中rtorrent在运行的话)
两者都需要根据BASE_URL来修改Nginx配置并重启Nginx,或者不用Nginx反代直接服务
Nginx部分配置如下:
location ^~ $BASE_URL/ {
proxy_http_version 1.1;
proxy_redirect off;
proxy_pass http://127.0.0.1:27123;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Script-Name $BASE_URL;
}
需要开两个端口,一个是50000用于peer与连接tracker,另一个是6881用于dht通信
依赖Python 3.7及以上版本,需要自行安装,依赖Systemd作为服务部署,执行run.sh即可,
配置文件(Rclone,百度盘与Pixiv授权)默认直接拷贝,
如不需要,请在执行前删除提供的config.py,pcs_config.json与rclone.conf文件,此时需要手动根据脚本提示配置,配置完成后需要将
部署脚本提供的配置写入到Nginx的配置中(部署过程中的Base url适用于有多个服务部署而不直接作为唯一服务部署在/上,比如Base url设置为/one
则访问路径变成/one/secret_page),并重启Nginx。也可以自行将新配置写入到上面的配置文件中(Pixiv Cookies从浏览器复制,rclone config
,BaiduPCS-Go login -bduss=xxx),免去输入
在此之前请保证pixiv-worker子模块的内容已经被Pull下来了
git submodule update --init --recursive
在目录下执行docker build -t myrclone:amd64 .即可生成镜像
docker tag myrclone:amd64 lelexia/myrclone:amd64为生成的镜像Tag
docker push lelexia/myrclone:amd64推送
推送之前可能需要登录
docker login
关于config.env文件请参考直接部署的Base url并按需求修改
新:关于Base url,目前已经不推荐利用环境变量来指定反代子路径了,建议直接在Nginx配置文件中使用Nginx的X-Script-Name(HTTP头部,反代标准子路径设定)来设定,具体见上面的配置文件,即BASE_URL在Nginx配置文件中,而不是环境变量中。
docker run -d -p <外部端口,请与Nginx反向代理一致>:80 -p <rtorrent外部端口>:50000 -p <rtorrent外部dht端口>:6881 -v <外部目录>:/data --env-file config.env lelexia/myrclone:amd64
也可以不用config.env而直接使用-e来设置环境变量:
如果执意要使用环境变量,而不是Nginx配置,则使用以下命令:
docker run -d -p <外部端口,请与Nginx反向代理一致>:80 -p <rtorrent外部端口>:50000 -p <rtorrent外部dht端口>:6881 -v <外部目录>:/data -e BASE_URL=/secret -e USERNAME=lelexia -e PASSWORD=lelexia lelexia/myrclone:amd64
按推荐,应使用不带BASE_URL环境变量的启动命令:
docker run -d -p <外部端口,请与Nginx反向代理一致>:80 -p <rtorrent外部端口>:50000 -p <rtorrent外部dht端口>:6881 -v <外部目录>:/data -e USERNAME=lelexia -e PASSWORD=lelexia lelexia/myrclone:amd64
部署完毕后访问http(s)://域名或IP(:端口)<BASE_URL>/hardhut,管理后台账号密码分别为设置的环境变量USERNAME与PASSWORD,默认都是lelexia
服务器输出与错误输出会重定向到/root/logs/logging.log中,其余的screen session的输出会重定向到logs/下对应的记录文件中,命名方式为任务类型_任务名_任务开始时间.log
Content type
Image
Digest
Size
626.6 MB
Last updated
over 5 years ago
docker pull lelexia/myrclone