往日微忆
文章目录

引言

博主以前在自己搭建的 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 搭建均同一台服务器。

  1. 假设本机IP为 192.168.0.10,则浏览器输入 192.168.0.10:56800 可进 AriaNg 图形下载界面进行设置,Aria2 RPC 地址 设为http://192.168.0.10:56801/jsonrpcAria2 RPC 密钥 设为上面设为的#abcd123456#。重新加载,即可发现Aria2状态显示已经连接。

  2. 浏览器输入 192.168.0.10:56244 可进 Alist 页面登录。管理员账号和密码,可在终端界面使用如下命令查询到:docker exec -it alist ./alist admin。 登录后,请自行修改用户名和密码。

  3. 进 Alist 管理界面添加挂载本地存储,其中: 挂载路径如设置为/locale1,则打开网站首页,下面显示为 locale1 的本地存储,只是一个显示名称而已,可以随意更改。 根文件夹路径应设置为虚拟系统内的文件夹路径,如上述的 /opt/alist/3tempdata,映射到物理磁盘目录。

  4. 进 Alist 管理界面设置Aria2地址http://192.168.0.10:56801/jsonrpcAria2密钥设为#abcd123456#,即可使用离线下载功能。打开其中一个本地存储目录,选择离线下载,粘贴下载地址,不一会儿,需要下载的文件将会下载到其中的目录。

其他更详细功能使用请参考官方文档。