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  # 写入当前用户的 UID、GID

创建 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  # 查看最近 100 行日志

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

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  # 查看最近 100 行日志

安全注意事项 ​

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

参考 ​

基于 MIT 许可发布