搭建含 aria2 离线下载功能的 Alist 文件列表程序
引言
博主以前在自己搭建的 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方件内容如下:
| |
这里要提醒注意:上述映射目录/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 文件:
| |
这里要提醒注意:以上映射的本地目录:/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#,即可使用离线下载功能。打开其中一个本地存储目录,选择离线下载,粘贴下载地址,不一会儿,需要下载的文件将会下载到其中的目录。
其他更详细功能使用请参考官方文档。