[prowlarr][radarr][sonarr][qBitorrent]套件打造家庭影音中心

打造家庭影音中心

集自动搜索种子索引、推送种子索引、自动跟踪剧集电影、自动下载、自动分类整理、提供播放服务的家庭影音中心

准备工作

你需要的硬件

一台可以跑起Ubuntu server的设备。 其它linux系统也行,能跑docker就行。

许多硬盘。 可以是sata可以是m.2也可以是移动硬盘。

连接他们

你可以用raid,可以直接把硬盘插上设备,反正连接起来就行。

然后开机。

确保你的硬盘挂载了

设置一个挂载点

bash 复制代码
mkdir /mnt/media

挂载你的硬盘

bash 复制代码
lsblk -o NAME,UUID   #这个命令可以查到你的硬盘的UUID,记住你的UUID
bash 复制代码
nano /etc/fstab  #这个文件决定了硬盘的挂载

/etc/fstab结构: <file system> <dir> <type> <options> <dump> <pass>

bash 复制代码
<file systems> - 要挂载的分区或存储设备.
<dir> - <file systems>的挂载位置。
<type> - 要挂载设备或是分区的文件系统类型,支持许多种不同的文件系统:  ext2, ext3, ext4, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap 及 auto。   设置成auto类型,mount 命令会猜测使用的文件系统类型,对 CDROM 和 DVD 等移动设备是非常有用的。
<options> - 挂载时使用的参数,注意有些mount 参数是特定文件系统才有的。一些比较常用的参数有:

auto - 在启动时或键入了 mount -a 命令时自动挂载。
noauto - 只在你的命令下被挂载。
exec - 允许执行此分区的二进制文件。
noexec - 不允许执行此文件系统上的二进制文件。
ro - 以只读模式挂载文件系统。
rw - 以读写模式挂载文件系统。
user - 允许任意用户挂载此文件系统,若无显示定义,隐含启用 noexec, nosuid, nodev 参数。
users - 允许所有 users 组中的用户挂载文件系统.
nouser - 只能被 root 挂载。
owner - 允许设备所有者挂载.
sync - I/O 同步进行。
async - I/O 异步进行。
dev - 解析文件系统上的块特殊设备。
nodev - 不解析文件系统上的块特殊设备。
suid - 允许 suid 操作和设定 sgid 位。这一参数通常用于一些特殊任务,使一般用户运行程序时临时提升权限。
nosuid - 禁止 suid 操作和设定 sgid 位。
noatime - 不更新文件系统上 inode 访问记录,可以提升性能(参见 atime 参数)。
nodiratime - 不更新文件系统上的目录 inode 访问记录,可以提升性能(参见 atime 参数)。
relatime - 实时更新 inode access 记录。只有在记录中的访问时间早于当前访问才会被更新。(与 noatime 相似,但不会打断如 mutt 或其它程序探测文件在上次访问后是否被修改的进程。),可以提升性能(参见 atime 参数)。
flush - vfat 的选项,更频繁的刷新数据,复制对话框或进度条在全部数据都写入后才消失。
defaults - 使用文件系统的默认挂载参数,例如 ext4 的默认参数为:rw, suid, dev, exec, auto, nouser, async.

 
<dump> dump 工具通过它决定何时作备份. dump 会检查其内容,并用数字来决定是否对这个文件系统进行备份。 允许的数字是 0 和 1 。0 表示忽略, 1 则进行备份。大部分的用户是没有安装 dump 的 ,对他们而言 <dump> 应设为 0。 
<pass> fsck 读取 <pass> 的数值来决定需要检查的文件系统的检查顺序。允许的数字是0, 1, 和2。 根目录应当获得最高的优先权 1, 其它所有需要被检查的设备设置为 2. 
     0 表示设备不会被 fsck 所检查。

在/etc/fstab最后面加一行,执行挂载:

bash 复制代码
UUID=你的UUID /mnt/media ntfs user 0 0  #你的硬盘如果不是ntfs就选择其它的比如ext4

启用挂载:

bash 复制代码
sudo mount -a

现在你的硬盘应该挂载好了

现在我们进入/mnt/media应该看得到你的硬盘内容了

bash 复制代码
cd /mnt/media
ls

现在我们在里面搞一些文件夹,用来装电影、电视剧和下载中转

bash 复制代码
mkdir movie
mkdir tv
mkdir downloads

非常好

安装全套软件链

prowlarr

prowlarr是一个种子索引聚合工具,可以用它搜索并推送 种子索引 给具体的管理软件,比如电视剧管理软件sonarr和电影管理软件radarr,管理软件拿到 种子索引 之后,可以根据用户需要从中搜索、跟踪电影电视剧,并且推送给下载软件如qBitorrent进行下载。

sonarr和radarr

sonarr和radarr是电视剧管理软件和电影管理软件,他们会根据用户需求,从prowlarr拿到推送的 种子索引 去跟踪、整理电视剧和电影,并把具体的 种子 找出来推送给qBitorrent,让它去下载。

qBitorrent

qBitorrent是下载工具,换其它的也行,但这个还挺好用的,它的作用就是根据sonarr和radarr的指令去执行下载任务。

通过docker安装软件链

因为众所周知的原因,这里不讲docker的代理,具体需要可以自行咨询AI,设置很方便。

bash 复制代码
cd
mkdir toolchain #创建一个文件夹
cd toolchain
nano docker-compose.yml

将以下内容复制进去:

bash 复制代码
services:
  prowlarr:
    image: lscr.io/linuxserver/prowlarr:latest
    container_name: prowlarr
    restart: unless-stopped
    ports:
      - "9696:9696"
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
      # 代理设置
      - HTTP_PROXY=http://192.168.1.140:7890  # 请替换为您的代理地址
      - HTTPS_PROXY=http://192.168.1.140:7890
      - NO_PROXY=localhost,127.0.0.1,qbittorrent,radarr,sonarr #规定好不走代理的地址
    volumes:
      - ./appdata/prowlarr:/config

  qbittorrent:
    image: lscr.io/linuxserver/qbittorrent:latest
    container_name: qbittorrent
    restart: unless-stopped
    ports:
      - "8080:8080"  # Web UI 端口
      - "6881:6881"  # BT 连接端口
      - "6881:6881/udp"
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
      - WEBUI_PORT=8080
    volumes:
      - ./appdata/qbittorrent:/config
      - /mnt/media/downloads:/downloads  # 映射下载目录

  radarr:
    image: lscr.io/linuxserver/radarr:latest
    container_name: radarr
    restart: unless-stopped
    ports:
      - "7878:7878"
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
    volumes:
      - ./appdata/radarr:/config
      - /mnt/media/movie:/movies  # 映射电影媒体库
      - /mnt/media/downloads:/downloads  # 映射下载目录,以便Radarr处理已完成下载

  sonarr:
    image: lscr.io/linuxserver/sonarr:latest
    container_name: sonarr
    restart: unless-stopped
    ports:
      - "8989:8989"
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
    volumes:
      - ./appdata/sonarr:/config
      - /mnt/media/tv:/tv  # 映射电视剧媒体库
      - /mnt/media/downloads:/downloads  # 映射下载目录,以便Sonarr处理已完成下载

这里的PUID和PGID要换一下,避免发生权限问题,用以下命令来确认:

bash 复制代码
id $USER

你会看到输出类似:

bash 复制代码
uid=1000(your_username) gid=1000(your_username) groups=1000(your_username),4(adm),24(cdrom),27(sudo),...

在这里,uid=1000就是你的 PUIDgid=1000就是你的 PGID。请记下你自己的数值并替换docker-compose.yml里的。

编辑好docker-compose.yml之后,就可以拉起服务了。

bash 复制代码
docker compose up -d

注意 docker-compose.yml里面的映射文件夹,如果你没有创建过,不用担心,拉起服务的时候会自动创建。

注意 为什么docker-compose.yml中,只有prowlarr走代理?你不走代理也行,没有代理就不要设置代理相关的那几行,但是这是一个种子索引搜索器,可能需要不可描述的网络,如果你不走代理,可能会有某些意想不到的问题。

配置软件链

现在服务应该都拉起来了,我们进去试试

通过 http://设备ip:9696 进入prowlarr服务。

然后在左边找到"Indexers"(索引器),通过它搜到的公开和私人的索引器来添加。这样你就有索引器了。

通过 http://设备ip:8080 进入qbittorrent服务。

第一次进入qBittorrent,用户名是admin,密码要进日志看。

bash 复制代码
docker logs qbittorrent

仔细看,里面有密码。

第一次进去qBittorrent之后,马上去设置里改用户名密码。

通过 http://设备ip:7878 进入radarr服务。

去radarr的设置里面找下载器,添加下载器,把qBittorrent添加进去,会要到qBittorrent的账户密码。

通过 http://设备ip:8989 进入sonarr服务。

去sonarr的设置里面找下载器,添加下载器,把qBittorrent添加进去,会要到qBittorrent的账户密码。

进一步去http://设备ip:9696 进入prowlarr服务设置

这里我们去找添加APP,把sonarr和radarr添加进去,用到的URL要用容器名,我们的容器名是prowlarr、radarr、sonarr这种,你添加URL就应该是http://prowlarr:9696http://sonarr:8989 http://radarr:7878 这样。

这里会需要到sonarr和radarr的API KEY 你可以去sonarr和radarr的设置-通用里面找到它

如此一来,prowlarr就可以把种子索引推送给radarr和sonarr了。

开始使用

我们进入sonarr或者radarr,你可以配置一下想要的质量、语言,然后直接搜索电影、电视剧,然后点上追踪,你再去 http://设备ip:8080 进入qbittorrent服务,你就会看见下载被提上了任务。

通过jellyfin观看影视

现在我们解决了自动搜索、自动下载、自动追剧的问题,要解决一下怎么观看的问题。

jellyfin是什么

jellyfin是一个影音中心,你可以把它看作视频、音乐网站,点开即看那种,它会从硬盘上扫描所有影音作品,通过在线观看、网络推流等方式服务用户。

jellyfin和前面几个软件关系不大,没有从属配置。

通过Docker安装jellyfin

先创建一个jellyfin的文件夹

bash 复制代码
cd
mkdir jellyfin
cd jellyfin

创建一个docker-compose.yml

bash 复制代码
nano docker-compose.yml

复制以下内容

bash 复制代码
services:
  jellyfin:
    image: jellyfin/jellyfin:latest  # 或使用 ghcr.io/jellyfin/jellyfin:latest
    container_name: jellyfin
    restart: unless-stopped
    network_mode: bridge  # 显式使用桥接模式,避免使用宿主网络
    ports:
      - "8096:8096"  # 主 Web UI 端口
      #- "8920:8920"  # 可选的 HTTPS 端口,若不需要可注释掉
    environment:
      - PUID=1000  # 请替换为您的实际 UID
      - PGID=1000  # 请替换为您的实际 GID
      - TZ=Asia/Shanghai
      # 注意:此处不设置任何代理相关的环境变量(如HTTP_PROXY),确保直连
      # - JELLYFIN_PublishedServerUrl=192.168.x.x  # 可选:如果需要自定义服务器发现地址
    volumes:
      # 配置和缓存数据持久化
      - ./config:/config
      - ./cache:/cache
      # 挂载您的媒体库目录
      - /mnt/media/movie:/media/movies:ro  # 只读挂载电影目录
      - /mnt/media/tv:/media/tvshows:ro    # 只读挂载电视剧目录
    # 可选:如果系统支持并需要硬件转码,取消注释下面的 devices 部分
    # devices:
    #   - /dev/dri:/dev/dri  # 对于 Intel 核显 (QuickSync) 或 AMD GPU
    # 对于 NVIDIA 显卡,通常需要设置 runtime 和环境变量,例如:
    # runtime: nvidia
    # environment:
    #   - NVIDIA_VISIBLE_DEVICES=all
    # 注意:使用硬件转码需要宿主机已安装相应的显卡驱动

# 无需定义额外的网络,使用默认的 bridge 即可
# 如果您的 radarr, sonarr 等也在同一台宿主机的 Docker 默认网络中,它们可以通过宿主机的内部 IP 和端口与 Jellyfin 通信

启动!

bash 复制代码
docker compose up -d

现在我们可以通过http://设备ip:8096 进入jellyfin,这个应用十分好懂,进去以后先去控制台扫一遍盘。

用上了

现在只需要通过http://设备ip:8096 进入jellyfin,你就会看到一个非常好用的,经过sonarr和radarr精心整理的,各种剧集点击就播的网站,你也可以选择获取网络流,用VLC之类的软件播放。

相关推荐
JavaGuide3 小时前
OPPO 后端校招面试,过于简单了!
java·后端
调试人生的显微镜3 小时前
如何查看手机使用记录?四种实用方法详解
后端
侯爵3 小时前
rabbitmq 如何保证消息顺序消费
后端
sualpha3 小时前
再见,StringManipulation!AI一键搞定字符串转换、JSON格式化与翻译
后端
quant_19863 小时前
【教程】使用加密货币行情接口 - 查询比特币实时价格
开发语言·后端·python·websocket·网络协议
得物技术3 小时前
得物管理类目配置线上化:从业务痛点到技术实现
后端·算法·数据分析
小虚竹3 小时前
Rust日志系统完全指南:从log门面库到env_logger实战
开发语言·后端·rust
今日说"法"4 小时前
Rust 日志级别与结构化日志:从调试到生产的日志策略
开发语言·后端·rust
-大头.4 小时前
Rust并发编程实战技巧
开发语言·后端·rust