Skip to content

AList

介绍

AList 是一个支持多种存储的文件列表程序,可统一浏览和管理本地存储、网盘及对象存储,并提供文件预览、上传、下载和 WebDAV 等功能。

Docker Compose

创建部署目录,并将当前用户的 UID、GID 写入 .env

bash
mkdir -p ~/apps/alist/data
cd ~/apps/alist
printf 'PUID=%s\nPGID=%s\n' "$(id -u)" "$(id -g)" > .env

创建 compose.yml

yaml
services:
  alist:
    image: xhofe/alist:latest
    container_name: alist
    restart: unless-stopped
    ports:
      - '5244:5244'
    environment:
      PUID: '${PUID}'
      PGID: '${PGID}'
      UMASK: '022'
      TZ: Asia/Shanghai
    volumes:
      - ./data:/opt/alist/data

./data 保存数据库、配置和日志等运行数据,重建或更新容器时必须保留。

启动服务:

bash
docker compose up -d
docker compose logs --tail 100 alist

首次使用时随机生成管理员密码:

bash
docker compose exec alist ./alist admin random

访问 http://<服务器地址>:5244,使用 admin 和命令输出的密码登录,随后修改为自己的密码。

挂载本地目录

使用本地存储驱动时,需要将宿主机目录挂载到容器中。例如,将 /data/share 挂载为容器内的 /mnt/share

yaml
services:
  alist:
    volumes:
      - ./data:/opt/alist/data
      - /data/share:/mnt/share

随后在 AList 中添加本地存储,并将根文件夹路径设置为 /mnt/share。如果只允许浏览和下载,可以使用 /data/share:/mnt/share:ro

更新

更新前应备份 ./data。生产环境建议使用经过验证的固定版本标签,避免不可控升级。

bash
docker compose pull
docker compose up -d
docker compose logs --tail 100 alist

安全注意事项

  • ./data 包含数据库、配置及存储凭据,不应提交到公开仓库。
  • 本地存储驱动可以访问已挂载目录,只挂载确实需要管理的路径,不要挂载宿主机根目录或其他敏感目录。
  • 对公网提供服务时,应启用管理员密码,并通过反向代理配置 HTTPS 和必要的访问控制。
  • 添加网盘或对象存储时,优先使用权限最小化的独立凭据,并注意对应服务商的接口调用及账户限制。

参考

基于 MIT 许可发布