搭建含 aria2 离线下载功能的 Alist 文件列表程序
By 辞峡烟斜
引言
博主以前在自己搭建的 NAS 里用的是 Nextcloud 作为文件列表和管理程序,开源,也能将近着用,但是感觉有点拥肿,很多功能其实都不想用或者用不上,很多地方也不尽如人意。直到碰上 Alist ,让我产生了让 Nextcloud 下岗的想法。
AList ,一个支持多种存储的文件列表程序,使用 Gin 和 Solidjs。使用简单,从一开始就设计为易于安装,并且可以在所有平台上使用。支持多种存储,包括本地存储、阿里云盘、OneDrive、Google Drive 等,且易于拓展。详细见官方网站(https://alist.nn.ci/)和(https://github.com/alist-org/alist)。官方文档有详细安装使用说明,本文不赘述。博主本人喜欢采用 docker 方式安装,以下均以 docker 方式讲解为主。
我比较看重它的离线下载功能。官方也提供带 aria2 镜像(https://hub.docker.com/r/xhofe/alist-aria2),但经试用,可能目前还不太完善,有 Bug (也有可能是我电脑设置配置的问题),就是不能启用内置的 aria2。进入容器查看,启动命令的确有,但是没成功,还得再手动执行一下 aria2c
命令才行。不想折腾改进,弃用。
想着另搭建 aria2 ,配合 Alist 一起使用,双方独立,平时还可以单独使用 aria2。于是付诸实践,对此,搜索了一下,目前官方和网界暂无可借鉴的真正切实能用的文档作参考,可能作者有所保留,没有点出其中的关键点,导致不能使用离线下载功能。经过自己的一番折腾,终于成功。以下为过程记录:
搭建 aria2pro
请参考P3TERX大侠的文章(https://p3terx.com/archives/docker-aria2-pro.html),具体是直接参考(https://github.com/P3TERX/Aria2-Pro-Docker/blob/master/docker-compose.yml)新建 docker-compose.yml
方件,并作适当修改,主要是修改端口和映射目录。我的docker-compose.yml
方件内容如下:
version: "3.8"
services:
Aria2-Pro:
container_name: aria2-pro
image: p3terx/aria2-pro
environment:
- PUID=1001
- PGID=1001
- UMASK_SET=022
- RPC_SECRET=#abcd123456#
- RPC_PORT=56801
- LISTEN_PORT=56802
- DISK_CACHE=64M
- IPV6_MODE=false
- UPDATE_TRACKERS=true
- CUSTOM_TRACKER_URL=
- TZ=Asia/Shanghai
volumes:
- ./aria2-config:/config
- /home/litad/ltdZiao/3tempData/Aria2Down:/downloads
- /home/litad/ltdZiao/3tempData/Aria2Down:/opt/alist/data/temp/aria2
#这里是配合 alist 设置的需要,如果不设置,采用alist aria2 离线下载时会不成功。同样如采用 qBittorrent 离线下载也应同样设置目录映射。
# - /home/litad/ltdZiao/3tempData/Aria2Down:/opt/alist/data/temp/qbittorrent
# If you use host network mode, then no port mapping is required.
# This is the easiest way to use IPv6 networks.
network_mode: host
# network_mode: bridge
# ports:
# - 6800:6800
# - 6888:6888
# - 6888:6888/udp
restart: unless-stopped
# Since Aria2 will continue to generate logs, limit the log size to 1M to prevent your hard disk from running out of space.
logging:
driver: json-file
options:
max-size: 1m
# AriaNg is just a static web page, usually you only need to deploy on a single host.
AriaNg:
container_name: ariang
image: p3terx/ariang
command: --port 56800 --ipv6
network_mode: host
# network_mode: bridge
# ports:
# - 6880:6880
restart: unless-stopped
logging:
driver: json-file
options:
max-size: 1m
这里要提醒注意:上述映射目录/home/litad/ltdZiao/3tempData/Aria2Down:/opt/alist/data/temp/aria2
是配合 Alist aria2 离线下载设置的需要,如果不设置,采用 Alist aria2 离线下载时会不成功,/home/litad/ltdZiao/3tempData/Aria2Down
文件夹所有者也需设为上述相应设为的 1001(你要使用的普通用户)。
完成后,直接 docker compose up -d
启动。
搭建 Alist
部署 Alist 只需依官方文档建立 docker-compose.yml
文件:
version: '3.3'
services:
alist:
restart: always
volumes:
- ./alistdata:/opt/alist/data
- /home/litad/ltdZiao/3tempData:/opt/alist/3tempdata
- /home/litad/ltdZiao/3tempData/Aria2Down:/opt/alist/data/temp/aria2
# - /home/litad/ltdZiao/3tempData/Aria2Down:/opt/alist/data/temp/qbittorrent
ports:
- '56244:5244'
environment:
- PUID=1001
- PGID=1001
- UMASK=022
container_name: alist
image: 'xhofe/alist:latest'
这里要提醒注意:以上映射的本地目录:/home/litad/ltdZiao/3tempData
是为了之后设置挂载本地存储而设,/home/litad/ltdZiao/3tempData/Aria2Down
为 aria2 的下载目录,与 aria2 pro 里一致。
完成后,直接 docker compose up -d
启动。
使用说明
提醒注意:上述 aria2pro 、Alist 搭建均同一台服务器。
-
假设本机IP为
192.168.0.10
,则浏览器输入192.168.0.10:56800
可进 AriaNg 图形下载界面进行设置,Aria2 RPC 地址
设为http://192.168.0.10:56801/jsonrpc
,Aria2 RPC 密钥
设为上面设为的#abcd123456#
。重新加载,即可发现Aria2状态显示已经连接。 -
浏览器输入
192.168.0.10:56244
可进 Alist 页面登录。管理员账号和密码,可在终端界面使用如下命令查询到:docker exec -it alist ./alist admin
。 登录后,请自行修改用户名和密码。 -
进 Alist 管理界面添加挂载本地存储,其中:
挂载路径
如设置为/locale1
,则打开网站首页,下面显示为locale1
的本地存储,只是一个显示名称而已,可以随意更改。根文件夹路径
应设置为虚拟系统内的文件夹路径,如上述的/opt/alist/3tempdata
,映射到物理磁盘目录。 -
进 Alist 管理界面设置
Aria2地址
为http://192.168.0.10:56801/jsonrpc
,Aria2密钥
设为#abcd123456#
,即可使用离线下载功能。打开其中一个本地存储目录,选择离线下载,粘贴下载地址,不一会儿,需要下载的文件将会下载到其中的目录。
其他更详细功能使用请参考官方文档。