Sign inSign up

lelexia/myrclone

By lelexia

•Updated over 5 years ago

rclone+rtorrent+aria2+BaiduPCS-GO server deploying script

Image
0

1.2K

lelexia/myrclone repository overview

⁠myrclone

rclone+rtorrent+aria2+BaiduPCS-GO server deploying script

⁠配置

配置文件主要关注根目录下的

⁠config.env

主要作用是设置子路径,如果你的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.conf

该配置文件为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不变

⁠config.py

用于配置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

⁠pcs_config.json

该配置文件为百度网盘登录配置文件,百度网盘登录部分由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),免去输入

⁠Docker部署

⁠Docker镜像生成与推送到私有仓库

在此之前请保证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

Tag summary

Content type

Image

Digest

Size

626.6 MB

Last updated

over 5 years ago

docker pull lelexia/myrclone