安装alist和jellyfin
在Docker环境中让Jellyfin挂载AList中的夸克网盘,核心思路是让Jellyfin能够通过AList提供的WebDAV服务访问到夸克网盘里的文件。下面这张流程图清晰地展示了整个配置过程和组件间的协作关系,你可以先有个整体印象。接下来,我们分步详解这个过程。

🔧 前提条件与准备
- 确保服务已运行:确认你的AList和Jellyfin都已经通过Docker正常启动并运行。 AList的Web界面通常为
http://你的服务器IP:5244。 Jellyfin的Web界面通常为http://你的服务器IP:8096。 - 规划网络模式:为了确保Jellyfin容器能够访问到AList容器,最简便的方法是让它们处于同一个自定义Docker网络中。如果使用默认的bridge网络,你可能需要使用
--link参数或直接通过宿主机IP进行通信。
📥 在AList中挂载夸克网盘
这是最关键的一步,需要先在AList中正确添加夸克网盘存储。
- 登录AList管理后台:访问
http://你的服务器IP:5244/@manage,使用管理员账号密码登录。 - 添加存储: 点击左侧菜单的 “存储”。 点击 “添加存储”。 在驱动列表中选择 “夸克网盘”。
- 配置夸克网盘:你需要填写以下关键信息: 挂载路径:这是该存储将在AList中显示的路径,例如
/quark。 Cookie(关键):夸克网盘需要通过Cookie进行认证。 获取方法:先登录网页版夸克网盘,然后按F12打开开发者工具,在 “网络”(Network) 标签页中找到一个请求(如包含sort?pr),复制其请求头中的 **Cookie**字段的全部内容。 其他选项如根文件夹ID等,通常保持默认(如root)即可。 - 保存并测试:点击“添加”,如果状态显示为“work”或“存储添加成功”,则说明夸克网盘已经挂载成功。
- 添加用户 :为了安全添加有webdav访问权限的一个用户。
🔗 在Jellyfin中配置媒体库
现在,你需要告诉Jellyfin去哪里找AList里的夸克网盘文件。
- 登录Jellyfin:访问
http://你的服务器IP:8096。 - 添加媒体库: 以管理员身份登录后,进入 “控制台”。 点击 “媒体库”,然后点击 “添加媒体库”。
- 设置媒体库内容: 内容类型:根据你夸克网盘中的内容选择,如“电影”、“电视剧”等。 显示名称:为你这个库取个名字,例如“夸克电影”。
- 添加文件夹(核心步骤):在“文件夹”部分,点击“+”号,这里jellyfin只支持本地文件。使用 Rclone 挂载 WebDAV 在后面实现。
- 完成向导:继续完成后续设置,如元数据语言等,然后保存媒体库。Jellyfin就会开始扫描AList提供的路径,并刮削影片信息生成海报墙。
⚠️ 重要提示与故障排查
- 文件命名规范:确保你夸克网盘中的影视文件命名规范(如
电影名 (年份).mkv),这对于Jellyfin准确刮削元数据至关重要。 - 性能考虑:由于视频流需要经过AList中转,播放性能会受到你的网络带宽和服务器性能的影响。对于高清视频,确保网络畅通。
- 权限问题:如果连接失败,检查AList的WebDAV设置,确保没有开启需要额外认证的只读模式等权限限制。
- 路径验证:在Jellyfin中添加库前,可以先用支持WebDAV的客户端(如Windows的“映射网络驱动器”功能或RaiDrive)测试一下AList的WebDAV地址(
http://你的服务器IP:5244/dav)是否能正常访问和浏览文件。
docker Compose 配置
version: '3.8'
services:
# AList 服务 - 统一网盘管理
alist:
image: xhofe/alist:latest
container_name: alist
restart: unless-stopped
ports:
- "5244:5244" # AList Web界面访问端口
environment:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
volumes:
- ./alist/data:/opt/alist/data
- ./alist/config:/opt/alist/config
networks:
- media-network # 使用自定义网络
# Jellyfin 服务 - 媒体服务器
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
ports:
- "8096:8096" # Jellyfin Web界面访问端口
environment:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
- JELLYFIN_PublishedServerUrl=http://你的服务器IP:8096
volumes:
- ./jellyfin/config:/config
- ./jellyfin/cache:/cache
- ./jellyfin/media:/media
devices:
- /dev/dri:/dev/dri
networks:
- media-network # 使用相同的自定义网络
depends_on:
- alist
# 定义自定义网络
networks:
media-network:
driver: bridge
🚀 部署步骤
1. 停止并删除现有容器
# 进入docker-compose.yml所在目录
cd /path/to/your/docker-compose
# 停止并删除现有容器
docker-compose down
2. 重新启动服务
# 使用新配置启动
docker-compose up -d
Jellyfin 试图将 URL 路径当作本地文件系统路径处理,导致路径解析错误。根本原因是 Jellyfin 不支持直接使用 WebDAV URL 作为媒体库路径。
🔧 终极解决方案:使用 Rclone 挂载 WebDAV
这是最可靠的方法,将 WebDAV 挂载为本地文件系统路径:
步骤1:在宿主机安装并配置 Rclone
# 安装 Rclone
curl https://rclone.org/install.sh | sudo bash
# 创建配置文件
mkdir -p ~/.config/rclone
cat > ~/.config/rclone/rclone.conf <<EOF
[alist]
type = webdav
url = http://localhost:5244/dav/
vendor = other
user = jellyfin
pass = ****** #自己修改
EOF
# 测试连接
rclone ls alist:quark
事实上是不可以的,因为rclone密码需要加密,所以通过 rclone config配置:
1.生成加密密码
# 运行 rclone 配置命令
rclone config
# 选择 "n" 创建新配置
n
# 输入名称 "alist"
name> alist
# 选择存储类型 "webdav"
Storage> webdav
# 输入 URL
url> http://localhost:5244/dav/
# 选择供应商 "other"
vendor> other
# 输入用户名
user> jellyfin
# 对于密码,选择 "y" 进行加密
Password:
y) Yes type in my own password
# 输入您的密码 (不会显示)
Enter password:
Confirm password:
# 其他选项保持默认
2:查看生成的加密密码
# 查看配置文件
cat ~/.config/rclone/rclone.conf
您会看到类似这样的配置:
[alist]
type = webdav
url = http://localhost:5244/dav/
vendor = other
user = jellyfin #alist中添加的用户
pass = XG9iZGVkX2NX3dlX3RyeQ== #这个加密后的密码可以用在其他配置中
步骤2:创建挂载点并挂载
# 创建挂载目录
sudo mkdir -p /mnt/alist
# 挂载 WebDAV
rclone mount alist: /mnt/alist --daemon --vfs-cache-mode full
# 验证挂载
ls -l /mnt/alist/quark
步骤3:修改 Docker Compose 配置
services:
jellyfin:
# ... 其他配置不变
volumes:
- ./jellyfin/config:/config
- ./jellyfin/cache:/cache
- /mnt/alist:/media/alist:ro # 添加这行
步骤4:在 Jellyfin 中添加媒体库
使用本地路径而不是 URL:
/media/alist/quark/