Docker安装Aria2+AriaNG+Rclone(+FileBrowser)

继前几天把emby媒体库搬到onedrive后,发现漫画也可以扔上去。但漫画资源这种用qb就不太方便了,想起来之前用过的aria2,比较适合bt+直链下载都要兼容的需求。自从去年有了nas之后,我基本没用过onedrive了,但今年不在家时间比较多,朋友也想看,家宽水管就实在不够了,大盘鸡又有点贵,因此又用回了onedrive。


两天后更新添加:前两天写的时候脑子不清醒,操作到一半想起来,pt不能用aria2啊。所以还是用上面文章的方法,给qb种子加标签用来区分上传的onedrive和路径了。

实际运行又发现一个问题,onedrive下载太慢了。。漫画大多是cbz文件,得完整下载才能刮削和查看,这就很折磨了。所以漫画放在onedrive再挂载的体验极差,可能还是得放在本地。

另外,我用的这个镜像image: wahyd4/aria2-ui,也有些问题,比如要手动创建一些文件,自动上传脚本好像不能用 这类问题。我还没细看不能上传是哪里的问题,有机会再说吧。

这篇文章还保留是为了方便以后直接ctrlcv部署aria套装。


工作流程

Aria2是下载工具,AriaNG是webui管理前端,Rclone用于将下载的文件上传到网盘,FileBrowser用于便捷查看文件。

其中通过aria2.conf可以配置根据下载状态执行脚本,比如:

# 下载完成时触发
on-download-complete=/config/on-complete.sh

# 下载开始时触发
on-download-start=/config/on-start.sh

# 下载出错时触发
on-download-error=/config/on-error.sh

aria2可以传递参数给脚本,比如:

# 脚本接收的参数
$1 # GID (全局唯一标识符)
$2 # 文件数量
$3 # 文件路径(单文件时是文件路径,多文件时是目录路径)
$4 # 下载状态(仅部分事件会传递)

以此实现下载完成后执行脚本,使用rclone上传文件到网盘,然后删除本地文件。

docker安装应该会附带配置脚本。 并不会,得手动下载。

安装流程

安装docker compose环境

docker-compose.yml

services:
  aria2-ui:
    restart: unless-stopped
    image: wahyd4/aria2-ui:latest
    container_name: aria
    environment:
      - ENABLE_AUTH=true
      - ARIA2_USER=修改用户名
      - ARIA2_PWD=修改密码
      - DOMAIN=http://你的域名
      - ENABLE_FILEBROWSER=false  # 如果不需要filebrowser可以禁用
      - PUID=1000
      - PGID=1000
    volumes:
      - ./data:/data
      - ./config:/app/conf 
      - ./app/filebrowser.db:/app/filebrowser.db

networks:
  default:
    external: true
    name: dockernetwork

此配置文件默认不暴露端口,直接使用npm反代容器:80,我觉得这样比较安全方便。

创建必要的目录和文件:

# 创建目录
mkdir -p data config app

# 创建必要的文件
touch config/aria2.session
touch app/filebrowser.db
wget https://raw.githubusercontent.com/wahyd4/aria2-ariang-docker/master/conf/aria2.conf -O ./config/aria2.conf
wget https://raw.githubusercontent.com/wahyd4/aria2-ariang-docker/master/conf/auto-upload.sh -O ./config/auto-upload.sh
wget https://raw.githubusercontent.com/wahyd4/aria2-ariang-docker/master/conf/aria2-sample-hook.sh -O ./config/aria2-sample-hook.sh

# 设置正确的权限
sudo chown -R 1000:1000 data config app

启动容器:

docker compose up -d

在npm设置反代,记得要开启ws支持(aria2 RPC 需要)

图片[1]-Docker安装Aria2+AriaNG+Rclone(+FileBrowser)-THsInk

web配置

AriaNG

直接访问域名,使用你设置的ARIA2_USER和ARIA2_PWD登录。

如果你使用https,可能需要修改rpc端口以正确连接aria2

图片[2]-Docker安装Aria2+AriaNG+Rclone(+FileBrowser)-THsInk

此配置也可以在docker-compose.yml通过环境变量指定,我懒得改了 - ARIA2_EXTERNAL_PORT=443

FileBrowser

访问 你的域名/files,默认账号密码是admin/admin,登录修改。

Rclone webui

你的域名/rclone,账号密码是你设置的ARIA2_USER和ARIA2_PWD。

好像没什么用,作者在文档里说:

如何配置Rclone? 如果您想连接Google Drive类似的云存储平台,很遗憾您无法通过浏览器配置,因为网页版本Oauth方式在这里是用不了的,您只能通过命令行的形式来配置,即rclone config。 详请请参考官网在远程/无头机器上配置 rclone以及详细步骤请参考问题

你也可以查看这篇文章的前三节,里面详细写了从创建azure api到挂载rclone的流程。

配置Rclone

因为我的需求是下载漫画后上传到onedrive,但还要在本地挂载onedrive供komga读取。因此总是还要在外部配置rclone的。配置完成后可以直接把rclone的配置文件拿来给这个docker使用:

cp ~/.config/rclone/rclone.conf ./config/

之后重启容器,可以发现rclone已经正确获取了配置文件

图片[3]-Docker安装Aria2+AriaNG+Rclone(+FileBrowser)-THsInk

在本文安装流程部分已经下载了自动上传脚本:

有时间再改一下脚本,现在要用docker传入环境变量,也不能根据条件区分上传路径,还有优化空间。

参考

https://github.com/wahyd4/aria2-ariang-docker/blob/master/README.CN.md

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!无需注册,过短或乱码评论会被屏蔽。
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容