Aria2 + AriaNg
English | 简体中文
🚨 注意:由于本人精力有限,现决定将主要精力放在更新功能,和英文版本文档。中文版本文档即日起暂停更新,欢迎志愿者对英文说明进行翻译或者赞助本项目,助力我投入更多时间。谢谢。(2022年4月19日)
如果你喜欢这个项目,请考虑微信打赏,让我更有动力来不断更新,谢谢!
本镜像包含 Aria2、AriaNg 和File Manager,主要方便那些用户期望只运行一个镜像就能实现图形化下载文件和在线播放文件。(类似离线下载的功能),只使用一个 Docker 镜像也方便用户在群晖NAS 中运行本程序。
- 功能特性
- 推荐使用的docker image tag
- 安装与运行
- 自动 SSL
- 自行构建镜像
- Docker Hub
- 在 Kubernetes 里面运行 (我的最爱)
- 使用 Docker compose 来运行
- 常见问题
- Aria2 文件下载工具(支持SSL )
- AriaNg 通过 UI 来操作,下载文件
- Rclone 同步文件到云盘
- 自动 HTTPS (Let's Encrypt)
- 支持绑定自定义用户ID,可以主机上的非
root
用户,也可以管理下载的文件 - Basic Auth 用户认证
- 文件管理和视频播放 (FileBrowser,注意默认情况下,只能访问和管理
/data
目录下的文件) - 支持ARM CPU 架构,因此可以在树莓派等设备上运行,
- wahyd4/aria2-ui:latest
Docker会为你自动选择对应CPU平台的image. e.g. arm64v8 或者 x86_64 平台
docker buildx build --platform linux/arm/v7,linux/arm64,linux/amd64 -t aria2-ui .
- Aria2: http://yourip
- Filebrowser: http://yourip/files
- Rclone: http://yourip/rclone
- 请使用 admin/admin 进行登录Filebrowser, 在如果没有修改
ARIA2_USER
,ARIA2_PWD
的情况下,请使用user
/password
登录Rclone
docker run -d --name ariang \
-p 80:80 \
-p 443:443 \
-e PUID=1000 \
-e PGID=1000 \
-e ENABLE_AUTH=true \
-e RPC_SECRET=Hello \
-e DOMAIN=https://example.com \
-e ARIA2_SSL=false \
-e ARIA2_USER=user \
-e ARIA2_PWD=pwd \
-e ARIA2_EXTERNAL_PORT=443 \
-v /yourdata:/data \
-v /app/a.db:/app/filebrowser.db \
-v /yoursslkeys/:/app/conf/key \
-v <conf files folder>:/app/conf \
wahyd4/aria2-ui
如果你不想记住那些命令行,你也可以使用docker-compose来将配置放在docker-compose.yaml
文件中
version: "3.5"
services:
aria2-ui:
restart: unless-stopped
image: wahyd4/aria2-ui:latest
environment:
- ENABLE_AUTH=true
- ARIA2_USER=hello
- ARIA2_PWD=world
- DOMAIN=http://toozhao.com
volumes:
- ./data:/data
然后使用 docker-compose up -d
运行即可
ENABLE_AUTH
启用 Basic auth(网页简单认证) 用户认证ENABLE_RCLONE
是否启用 RCLONE,由于Rclone 的初次运行需要从Github 下载文件,由于你懂的原因,可能文件下载失败,进而导致整个程序崩溃,这时你需要设置为false
ARIA2_USER
Basic Auth 用户认证用户名,Rclone也使用该参数ARIA2_PWD
Basic Auth 密码,Rclone也使用该参数ARIA2_EXTERNAL_PORT
从外部可以访问到的 Aria2 端口,默认为 HTTP 的80
PUID
需要绑定主机的Linux用户ID,可以通过cat /etc/passwd
查看用户列表, 默认UID 是1000
PGID
需要绑定的主机的Linux 用户组ID,默认GID 是1000
RPC_SECRET
Aria2 RPC 加密 tokenDOMAIN
绑定的域名, 当绑定的域名为HTTPS
时,即为启用HTTPS
, 例:DOMAIN=https://toozhao.com
RCLONE_CONFIG_BASE64
通过base64
字符串的形式配置rclone.conf。主要给在Heroku平台上运行时使用,请使用命令行cat /app/conf/rclone.conf | base64
或者其他任何在线base64在线工具 比如这个来把rclone.conf
的内容生成base64
字符串。在使用本环境变量的同时,请确保ENABLE_RCLONE
设置为true
。ENABLE_APP_CHECKER
,默认情况下本程序会每天向远程服务器发送一次GET请求,以检查是否有新版本的镜像。该功能可以让你及时获取新功能和相关安全隐患的修复的推送提醒。你也可以选择将该环境变量设置为false
来禁用该功能。注意该功能启用下,依然需要手动更新镜像来完成升级。
/data
用来放置所有下载的文件的目录/app/conf/key
用户来放置 Aria2 SSLcertificate
证书和key
文件.注意
: 证书的名字必须是aria2.crt
, Key 文件的名字必须是aria2.key
/app/conf
该目录下可以放置你的自定义aria2.conf
配置文件,aria2.session
,且必须包含这两个文件。第一次使用aria2.session
时,创建一个空文件即可,该文件会包含aria2当前的下载列表,这样即使容器被销毁也不用担心文件列表丢失了。你也可以直接拷贝当前项目下conf
目录中的两个文件并使用。如需映射rclone.conf到容器内,请将其就放置于该目录下。因此配置文件目录支持的所有配置文件为:- aria2.conf
- aria2.session
- rclone.conf
/app/filebrowser.db
File Browser 的内嵌数据库,升级Docker 镜像也不用担心之前的设置丢失。请确保在宿主机先创建一个空文件再使用。
请在绑定域名前,设置DNS
的一条A
记录,将运行docker的主机IP绑定到该域名。然后你仅仅需要在运行时添加e
设置即可。
docker run -d --name aria2-ui -p 80:80 -p 443:443 -e DOMAIN=https://toozhao.com wahyd4/aria2-ui
docker build -t aria2-ui .
https://hub.docker.com/r/wahyd4/aria2-ui/
首先,在Kubernetes 里面运行本Docker 镜像比在Docker 里面更加复杂,需要更多的相关知识,但是也更加有意思,给你带来更多的折腾之后的满足。
你可以使用minikube
,Docker 桌面应用自带Kubernetes 或者 使用kubeadm
来安装Kubernetes,然后你需要根据自己的需要修改 k8s-manifest.yaml 来满足你的需要的需求。比如:
- NFS PV provider(使用NAS 作为容器存储)
- Ingress 访问, Oauth 登录灯其他访问控制
- VPN (让数据访问更加安全)
- 其他的一些 Sidecars
请参考 https://github.com/wahyd4/aria2-ariang-x-docker-compose
- 当你以非其他
80
端口或以启用了HTTPS443
端口运行程序时,会出现Aria2 状态 未连接
的错误,这是因为在最新版本里面,我们去掉aria2的独立6800端口,转而使用和网站同一个端口。你可以设置ARIA2_EXTERNAL_PORT
后重建你的容器。 - 下载的BT或者磁力完全没有速度怎么办? 建议先下载一个热门的BT种子文件,而不是磁力链接。这样可以帮助缓存DHT文件,渐渐地,速度就会起来了。比如试试下载树莓派操作系统的BT种子?前往下载
- 如果你遇到了和
setcap
相关的错误,很大程度说明你说运行的Linux不支持使用非root
用户来运行本Docker 镜像,因此请显式地设置环境变量PUID
PGID
为0
,也就是使用root
来运行 - 如何配置
Rclone
? 如果你想连接Google Drive
类似的云存储平台,很遗憾你不能通过浏览器配置,因为网页版本Oauth
方式在这里是用不了的,你只能通过命令行的形式来配置,即rclone config
. 详请请参考官网 Configuring rclone on a remote / headless machine 以及详细步骤请参考 issue