您是否曾梦想拥有一个属于自己的“奈飞(Netflix)”?一个能自动搜集全球电影剧集、自动下载、自动整理、自动刮削海报简介形成精美详情页,并能在任何设备上随时播放的私人影音库?本教程将指导您如何利用一台Linux服务器和强大的Docker技术,从零开始搭建一套世界级的、全自动的家庭媒体中心。
我们将使用以下“黄金组合”软件,它们全部免费且开源:
-
Jellyfin: 优雅的媒体中心,负责播放与展示。
-
Radarr: 电影管家,负责自动化管理电影。
-
Sonarr: 剧集管家,负责自动化管理电视剧。
-
Prowlarr: 资源中介,统一管理所有资源索引站。
-
qBittorrent: 下载工具,负责执行下载任务。
-
ChineseSubFinder: 字幕专家,专为中文用户优化的字幕下载器。
在开始之前,您只需要一台拥有SSH权限的Linux服务器(ARM64架构也完全兼容)并已安装好Docker和Docker-Compose。【如果你有自己的nat硬盘机并且支持docker也适用】
架构总览图
下图清晰地展示了我们这套系统的全自动工作流程:
graph LR
subgraph "用户操作 (User Actions)"
A[您 Add Movie/TV] -- "添加想看的电影/剧集" --> B((Radarr / Sonarr));
end
subgraph "自动化后台 (Automated Backend)"
B -- "1. 请求资源" --> D((Prowlarr));
D -- "2. 搜索索引器" --> E{资源站 Indexers};
E -- "3. 返回种子" --> D;
D -- "4. 发送给下载器" --> F((qBittorrent));
F -- "5. 下载文件到临时目录" --> G[/downloads];
F -- "6. 通知下载完成" --> B;
B -- "7. 硬链接/移动并重命名" --> H[/media 最终目录];
end
subgraph "字幕与播放 (Subtitles & Playback)"
I((ChineseSubFinder)) -- "1. 扫描媒体库" --> H;
E -- "2. 搜索字幕" --> I;
I -- "3. 下载字幕到媒体文件夹" --> H;
H -- "媒体库" --> J((Jellyfin));
end
subgraph "观看 (Viewing)"
J -- "在任何设备上播放" --> K(您 Watch);
end
style A fill:#f9f,stroke:#333,stroke-width:2px
style K fill:#f9f,stroke:#333,stroke-width:2px
第一步:基础准备 – 规划目录结构
一个清晰的目录结构是成功的一半。通过SSH登录您的服务器,创建一个总的项目目录,并在其中规划好所有子目录。
# 创建总目录
mkdir -p /data/media-stack
# 进入总目录
cd /data/media-stack
# 创建子目录
mkdir -p config downloads media/movies media/tv
最终目录结构如下:
-
/data/media-stack/
: 我们所有配置和文件的根目录。 -
/data/media-stack/config/
: 存放所有服务的配置文件。 -
/data/media-stack/downloads/
: qBittorrent的临时下载目录。 -
/data/media-stack/media/movies/
: 整理好的电影最终存放目录。 -
/data/media-stack/media/tv/
: 整理好的剧集最终存放目录。
第二步:核心蓝图 – 编写 docker-compose.yml
在 /data/media-stack/
目录下,创建一个名为 docker-compose.yml
的文件,并将以下所有内容复制进去。这是我们整个媒体中心的“建筑蓝图”。
version: "3.8"
services:
# 媒体中心
jellyfin:
image: linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai # 请设置为您常用的时区
volumes:
- ./config/jellyfin:/config
- ./media:/media
ports:
- "8096:8096" # Web访问端口
restart: unless-stopped
# 下载工具
qbittorrent:
image: linuxserver/qbittorrent:latest
container_name: qbittorrent
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- WEBUI_PORT=8080
volumes:
- ./config/qbittorrent:/config
- ./downloads:/downloads
ports:
- "8080:8080"
- "6881:6881"
- "6881:6881/udp"
restart: unless-stopped
# 资源中介
prowlarr:
image: linuxserver/prowlarr:latest
container_name: prowlarr
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- ./config/prowlarr:/config
ports:
- "9696:9696"
restart: unless-stopped
# 剧集管家
sonarr:
image: linuxserver/sonarr:latest
container_name: sonarr
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- ./config/sonarr:/config
- ./downloads:/downloads
- ./media/tv:/tv
ports:
- "8989:8989"
restart: unless-stopped
# 电影管家
radarr:
image: linuxserver/radarr:latest
container_name: radarr
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- ./config/radarr:/config
- ./downloads:/downloads
- ./media/movies:/movies
ports:
- "7878:7878"
restart: unless-stopped
# 中文字幕下载器
chinesesubfinder:
image: allanpk716/chinesesubfinder:latest
container_name: chinesesubfinder
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- PERMS=true
- UMASK=022
volumes:
- ./config/chinesesubfinder:/config
- ./media:/media
ports:
- "19035:19035"
restart: unless-stopped
注意:所有容器中的PUID和PGID都替换成你的用户id,在ssh命令行输入 id 回车即可看到用户id;不要使用root用户,因为root用户可能存在读写权限错乱问题,导致各个模块同步出错。建议使用1000或1001,具体查看自己的系统用户id。
第三步:启动前的关键一步 – 用户ID与文件夹权限
为了避免所有服务之间的权限问题,我们需要统一文件所有者。
-
获取用户ID:在SSH中执行
id
命令。记下输出的uid
和gid
(通常都是1000
)。 -
修改
docker-compose.yml
:将文件中所有的PUID=1000
和PGID=1000
修改为您自己的uid
和gid
。 -
修正文件夹权限:执行以下命令,将整个项目文件夹的所有者变更为我们指定的用户。
# 将 1000:1000 替换为您自己的 PUID:PGID
chown -R 1000:1000 /data/media-stack/
chmod -R 775 /data/media-stack/
第四步:点火启动 – 部署与访问
万事俱备,现在我们来启动整个媒体帝国。
-
在SSH中,确保您位于
/data/media-stack/
目录下。 -
执行启动命令:
docker-compose up -d
-
Docker将自动下载镜像并启动所有容器。启动后,请确保在服务器的防火墙中为以下端口开放TCP访问:
- Jellyfin:
8096
- qBittorrent:
8080
,6881
(TCP/UDP) - Prowlarr:
9696
- Sonarr:
8989
- Radarr:
7878
- ChineseSubFinder:
19035
第五步:灵魂注入 – 串联服务(配置流程)
现在,您需要逐个登录每个服务的WebUI,将它们关联起来。
-
qBittorrent (
http://[服务器IP]:8080
):登录后修改默认密码,并将“下载”设置中的“Torrent管理模式”设为**“自动”**。 -
Prowlarr (
http://[服务器IP]:9696
):设置登录密码,添加您常用的资源索引站(Indexers),并添加qBittorrent作为下载客户端。 -
Sonarr/Radarr (
:8989
/:7878
):分别登录,在设置中连接Prowlarr和qBittorrent(主机名直接填写服务名,如qbittorrent
),并设置好媒体库的根目录(电影是/movies
,剧集是/tv
)。 -
ChineseSubFinder (
http://[服务器IP]:19035
):在设置中,分别连接到Sonarr, Radarr和Jellyfin的API。 -
Jellyfin (
http://[服务器IP]:8096
):设置管理员账户,然后添加两个媒体库:-
电影库:路径设置为
/media/movies
-
剧集库:路径设置为
/media/tv
-
结语
恭喜您!完成以上所有步骤后,您的全自动个人影音帝国就已经建成。现在,您只需要在Radarr或Sonarr中添加您想看的电影和剧集,剩下的就交给这套不知疲倦的自动化系统吧。稍后,您就可以在Jellyfin中欣赏到带有中文字幕的完美影音内容了。