Skip to content

Latest commit

 

History

History
170 lines (131 loc) · 9.56 KB

README.CN.md

File metadata and controls

170 lines (131 loc) · 9.56 KB

Aria2 + AriaNg

English | 简体中文

🚨 注意:由于本人精力有限,现决定将主要精力放在更新功能,和英文版本文档。中文版本文档即日起暂停更新,欢迎志愿者对英文说明进行翻译或者赞助本项目,助力我投入更多时间。谢谢。(2022年4月19日)

Docker Pulls Github Build

Page Views Count

如果你喜欢这个项目,请考虑微信打赏,让我更有动力来不断更新,谢谢!

buy me a drink

本镜像包含 Aria2、AriaNg 和File Manager,主要方便那些用户期望只运行一个镜像就能实现图形化下载文件和在线播放文件。(类似离线下载的功能),只使用一个 Docker 镜像也方便用户在群晖NAS 中运行本程序。

AriaNG Screenshot

File Browser File Browser

功能特性

  • Aria2 文件下载工具(支持SSL )
  • AriaNg 通过 UI 来操作,下载文件
  • Rclone 同步文件到云盘
  • 自动 HTTPS (Let's Encrypt)
  • 支持绑定自定义用户ID,可以主机上的非root用户,也可以管理下载的文件
  • Basic Auth 用户认证
  • 文件管理和视频播放 (FileBrowser,注意默认情况下,只能访问和管理 /data 目录下的文件)
  • 支持ARM CPU 架构,因此可以在树莓派等设备上运行,

推荐使用的docker image tag

  • 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 .

开启所有功能

  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来将配置放在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 运行即可

支持的 Docker 环境变量

  • 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 加密 token
  • DOMAIN 绑定的域名, 当绑定的域名为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来禁用该功能。注意该功能启用下,依然需要手动更新镜像来完成升级。

支持的 Docker volume 属性

  • /data 用来放置所有下载的文件的目录
  • /app/conf/key 用户来放置 Aria2 SSL certificate证书和 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 镜像也不用担心之前的设置丢失。请确保在宿主机先创建一个空文件再使用。

自动 SSL

请在绑定域名前,设置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 .

Docker Hub

https://hub.docker.com/r/wahyd4/aria2-ui/

在 Kubernetes 里面运行 (我的最爱)

首先,在Kubernetes 里面运行本Docker 镜像比在Docker 里面更加复杂,需要更多的相关知识,但是也更加有意思,给你带来更多的折腾之后的满足。 你可以使用minikube,Docker 桌面应用自带Kubernetes 或者 使用kubeadm来安装Kubernetes,然后你需要根据自己的需要修改 k8s-manifest.yaml 来满足你的需要的需求。比如:

  • NFS PV provider(使用NAS 作为容器存储)
  • Ingress 访问, Oauth 登录灯其他访问控制
  • VPN (让数据访问更加安全)
  • 其他的一些 Sidecars

使用 Docker compose 来运行

请参考 https://github.com/wahyd4/aria2-ariang-x-docker-compose

常见问题

  1. 当你以非其他80 端口或以启用了HTTPS443端口运行程序时,会出现Aria2 状态 未连接的错误,这是因为在最新版本里面,我们去掉aria2的独立6800端口,转而使用和网站同一个端口。你可以设置ARIA2_EXTERNAL_PORT后重建你的容器。
  2. 下载的BT或者磁力完全没有速度怎么办? 建议先下载一个热门的BT种子文件,而不是磁力链接。这样可以帮助缓存DHT文件,渐渐地,速度就会起来了。比如试试下载树莓派操作系统的BT种子?前往下载
  3. 如果你遇到了和 setcap 相关的错误,很大程度说明你说运行的Linux不支持使用非root用户来运行本Docker 镜像,因此请显式地设置环境变量PUID PGID0 ,也就是使用root 来运行
  4. 如何配置Rclone? 如果你想连接Google Drive 类似的云存储平台,很遗憾你不能通过浏览器配置,因为网页版本Oauth 方式在这里是用不了的,你只能通过命令行的形式来配置,即rclone config. 详请请参考官网 Configuring rclone on a remote / headless machine 以及详细步骤请参考 issue