🍊 UglyOrange
📦 资源

Docker 一键搭建 qBittorrent + Jellyfin,打造私人家庭影院

frigidpluto Views: ...

最近体验了一下用 qBittorrent + Jellyfin 搭建家庭影院,效果还不错,特此记录一下。

My family movie theater

架构逻辑

qBittorrent 下载视频,jellyfin 播放,使用 docker 快速部署,方便迁移。

  1. 自动衔接:qBittorrent 下载完成后的文件,Jellyfin 自动扫库展示。
  2. 硬解加速:调用核显,手机/平板上也能流畅播放 4K 电影。
  3. 环境隔离:一键部署,不污染宿主机系统。
Diagram

对外服务端口:

  • qBittorrent WebUI: ip:8080 (下载管理)
  • Jellyfin Web: ip:8096 (观影体验)

目录结构准备

为了保证数据持久化,建议不要使用 /tmp 目录(防止重启丢失)。推荐在当前目录下创建数据文件夹:

.
├── docker-compose.yml
├── config/
   ├── qbittorrent/  # 存放 qB 配置
   └── jellyfin/     # 存放 Jellyfin 配置
└── media/            # 存放电影和剧集文件

Docker Compose 配置

这里使用了 linuxserver 的镜像,对权限管理(PUID/PGID)支持得非常好,避免后续权限困扰。

services:
  qbittorrent:
    image: lscr.io/linuxserver/qbittorrent:latest
    container_name: qbittorrent
    environment:
      - PUID=1000   # 建议通过 id 命令查看当前用户 ID
      - PGID=1000
      - TZ=Asia/Shanghai
      - WEBUI_PORT=8080
    volumes:
      - ./config/qbittorrent:/config
      - ./media:/downloads           # 映射到统一的媒体目录
    ports:
      - 8080:8080
      - 6881:6881
      - 6881:6881/udp
    restart: unless-stopped

  jellyfin:
    image: lscr.io/linuxserver/jellyfin:latest
    container_name: jellyfin
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
    volumes:
      - ./config/jellyfin:/config
      - ./media:/data/media          # 与 qB 指向同一个物理路径
    ports:
      - 8096:8096
    devices:
      - /dev/dri:/dev/dri            # 传递核显,开启硬件解码
    restart: unless-stopped

复制以上内容到服务器上的 docker-compose.yml 文件中,然后运行以下命令启动:

docker compose up -d

关键步骤说明

  1. qBittorrent 初始密码

由于 qB 最近版本的安全策略更新,默认密码不再是 admin/admin。 部署完成后,需要运行以下命令查看自动生成的临时密码:

docker logs qbittorrent

在日志中找到 The WebUI administrator password was set to: xxxxxx 即可登录,进入后再自行修改。

  1. Jellyfin 开启硬件加速
  • 进入 Jellyfin 后,依次点击:控制台 -> 播放 -> 转码。
  • 如果你是 Intel 核显,选择 Intel QuickSync。
  • 记得勾选底部的 “启用硬件解码”。
  1. 目录映射技巧

qBittorrent 下载设置中,将默认保存路径设置为 /downloads。这样下载完成后,文件会立即出现在 Jellyfin 挂载的 /data/media 中,无需手动移动。

结语

局域网下使用是非常流畅的,但如果需要公网访问,可以考虑 Cloudflare Tunnel。

如果需要更自动化的体验(如自动追剧、自动刮削),可以考虑进一步引入 Sonarr/Radarr 家族。