docker全自动影视库
这段内容是关于如何搭建一个全自动影视库的指南,它使用了Docker容器技术来部署和管理不同的服务。以下是对这段内容的解释:
环境要求:
需要一台可以正常联网的计算机。
如果需要硬件解码(硬解),推荐使用8100t(性能满足个人需求很够用)。
硬盘配置根据个人需求,如果是单个12TB硬盘则推荐。
计算机最好能够科学上网,如果不能则需要自己更改加速站地址。
架构图:
使用Docker作为容器化平台。
部署了NAS-Tools,这是一个用于管理网络附加存储的工具。
Emby作为媒体服务器,可以通过Web UI访问。
qBittorrent用于BT下载。
其他支持组件,如Jackett等。
安装步骤:
在Linux系统上安装Docker。
安装NAS-Tools,这是一个用于管理媒体服务器的工具。
安装Emby,如果需要硬件解码,则安装开心版。
安装qBittorrent,用于下载媒体文件。
如果有PT(Private Tracker)站点,则不需要进行额外的步骤。
安装Jackett,这是一个索引器,用于帮助媒体服务器找到媒体文件的信息。
安装命令:
提供了Docker命令来安装和配置NAS-Tools、Emby、qBittorrent和Jackett。
这些命令包括了如何映射端口、挂载存储卷、设置环境变量等。
强调了安装命令需要根据实际情况进行配置,不能直接复制粘贴。
使用说明:
通过浏览器访问IP地址和端口(如IP:3000)来使用Web UI。
默认的用户名和密码通常是admin和password。
特别说明:
对于PUID/PGID的设置,需要确保与其他Docker镜像中的设置一致。
如果媒体文件的所有者不是root用户,不建议设置PUID和PGID为0(即root用户)。
其他服务:
还提到了flaresolverr的安装,这是一个用于解决某些类型的版权保护的服务。
整个指南是为了帮助用户通过Docker技术搭建一个全自动的影视库,包括媒体服务器、下载工具和其他支持服务。
全自动影视库架构图
+-------------------------------------------------+
| 全自动影视库 |
| |
| +------------------+ +----------------------+ |
| | Docker | | NAS-Tools | |
| | | | | |
| | +------------+ | | +----------------+ | |
| | | Emby | | | | Web UI | | |
| | +------------+ | | | (http://IP:3000)| |
| | | | +----------------+ | |
| | +------------+ | | | |
| | | qBittorrent | | +--------------------+ | |
| | +------------+ | | | |
| | | transmission | | +--------------------+ | |
| | +------------+ | | | |
| | | 其他支持组件 | | +--------------------+ | |
| | (如 Jackett, flaresolverr.) | | | |
| | +------------+ | | | |
| | | | ( IYUU ) | |
| +------------------+ +----------------------+ |
| |
+-------------------------------------------------+
1.在linux下安装好Docker
2.安装 nas-toos
3.安装 emby 如需硬解请安装开心版
4.安装 qBittorrent
5.安装transmission
6.安装 jackeet
7.安装flaresolverr
8.如有 pt 站不需要操作下面步骤
9.安装iyuu
10.iyuu辅种转种设置
nas-toos安装
安装命令
安装命令不可直接复制请按需配置
docker run -d \
--name nas-tools \
--hostname nas-tools \
-p 3000:3000 \
-v /opt/1panel/apps/nas-tools/config:/config \
-v /sata/media:/media `# 媒体目录,多个目录需要分别映射进来` \
-e PUID=0 \
-e PGID=0 \
-e UMASK=000 \
-e NASTOOL_AUTO_UPDATE=false \
-e NASTOOL_CN_UPDATE=false \
hsuyelin/nas-tools
安装命令解析
docker run -d \
--name nas-tools \
--hostname nas-tools \
-p 3000:3000 # 默认的webui控制端口 \
-v $(pwd)/config:/config # 冒号左边请修改为你想在主机上保存配置文件的路径 \
-v /你的媒体目录:/你想设置的容器内能见到的目录 # 媒体目录,多个目录需要分别映射进来 \
-e PUID=0 # 想切换为哪个用户来运行程序,该用户的uid,详见下方说明 \
-e PGID=0 # 想切换为哪个用户来运行程序,该用户的gid,详见下方说明 \
-e UMASK=000 # 掩码权限,默认000,可以考虑设置为022 \
-e NASTOOL_AUTO_UPDATE=false # 如需在启动容器时自动升级程程序请设置为true \
-e NASTOOL_CN_UPDATE=false # 如果开启了容器启动自动升级程序,并且网络不太友好时,可以设置为true,会使用国内源进行软件更新 \
hsuyelin/nas-tools
## 关于PUID/PGID的说明
- 如在使用诸如emby、jellyfin、plex、qbittorrent、transmission、deluge、jackett、sonarr、radarr等等的docker镜像,请保证创建本容器时的PUID/PGID和它们一样。
- 在docker宿主上,登陆媒体文件所有者的这个用户,然后分别输入`id -u`和`id -g`可获取到uid和gid,分别设置为PUID和PGID即可。
- `PUID=0` PGID=0指root用户,它拥有最高权限,若你的媒体文件的所有者不是root,不建议设置为`PUID=0` PGID=0。
使用说明
浏览器 你的ip:3000 或者你自定义端口 默认用户名 admin 密码 password
nas-tools基础设置
系统
更改用户名和密码
媒体
获取TMDBapi
进入设置查看api
获取tmdb api 填入
根据需求设置刮削
服务
基本保持默认即可特殊需求除外
安全
按需设置 无需求保持默认即可
CRO
按需设置 无需求保持默认即可
实验室
按需设置 无需求保持图片内容即可
用户管理
自行添加额外访问用户
媒体库
这个是媒体库访问目录填写整理后的links
目录
目录同步
下载文件和媒体库自动同步
源目录为分类下载目录
目的目录是媒体库目录
使用硬链接即可
消息通知
按需设置
过滤规则
日常规则够用
下载器
配置你的下载器 qb举例
新增
下载目录设置 和图片相同也可
媒体服务器
emby为例
根据说明填入地址
外部访问地址为你反代后的域名
安装CookieCloud(可选)
用于添加站点管理
如果手动在MoviePilot站点管理里添加,
也可以选择不装
安装地址
也可以在Chrome插件商店安装
界面
配置
服务器地址(自选1种)
使用公共CookieCloud远程服务器(默认):服务器地址为:https://movie-pilot.org/cookiecloud
使用MoviePilot内建的本地Cookie服务:在
设定
-站点
中打开启用本地CookieCloud服务器
后,将启用内建的CookieCloud提供服务,服务地址为:http://localhost:${NGINX_PORT}/cookiecloud/
, Cookie数据加密保存在配置文件目录下的cookies
文件中自建服务CookieCloud服务器:参考 CookieCloud 项目进行搭建,docker镜像请点击 这里。极空间的话直接搜索
easychen_cookiecloud
。
Key和密码生成后自己记住
域名一行一个
建议只配置PT站就行了,没必要把所有Cookie都同步上去,虽然理论上有KEY和密码加密。
docker run -d \
--name cookiecloud-app \
--restart always \
-e API_ROOT=/cookie \
-v /opt/1panel/apps/moviepilot/cookie:/data/api/data \
-p 8088:8088 \
easychen/cookiecloud:latest
MoviePilot安装
安装命令不可直接复制请按需配置
docker run -itd \
--name moviepilot \
--hostname moviepilot \
-p 30000:3000 \
-v /sata/media:/media \
-v /opt/1panel/apps/moviepilot/config:/config \
-v /opt/1panel/apps/moviepilot/core:/moviepilot/.cache/ms-playwright \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-e 'NGINX_PORT=30000' \
-e 'PORT=30001' \
-e 'PUID=0' \
-e 'PGID=0' \
-e 'UMASK=000' \
-e 'TZ=Asia/Shanghai' \
-e 'AUTH_SITE=iyuu' \
-e 'IYUU_SIGN=IYUUxxxxxxxxxxxxxxxxxxxxx' \
-e 'SUPERUSER=admin' \
-e 'API_TOKEN=api秘钥' \
-e 'BIG_MEMORY_MODE=false' \
--restart always \
jxxghp/moviepilot:latest
docker run -itd \
--name moviepilot \
--hostname moviepilot \
-p 30000:3000 \
-v /sata/media:/media \
-v /opt/1panel/apps/moviepilot/config:/config \
-v /opt/1panel/apps/moviepilot/core:/moviepilot/.cache/ms-playwright \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-e 'NGINX_PORT=30000' \
-e 'PORT=30001' \
-e 'PUID=0' \ # 设置为运行程序用户的 UID,通常是非 root 用户
-e 'PGID=0' \ # 设置为运行程序用户的 GID,通常是非 root 用户
-e 'UMASK=000' \ # 设置文件创建的权限掩码
-e 'TZ=Asia/Shanghai' \ # 设置时区
-e 'AUTH_SITE=iyuu,hhclub' \ # 设置多个认证站点,使用逗号分隔
-e 'IYUU_SIGN=your_iyuu_sign' \ # 替换为实际的 IYUU 登录令牌
-e 'HHCLUB_USERNAME=your_username' \ # 替换为 HHClub 用户名(如果使用 hhclub 作为认证站点)
-e 'HHCLUB_PASSKEY=your_passkey' \ # 替换为 HHClub 密钥(如果使用 hhclub 作为认证站点)
-e 'SUPERUSER=admin' \ # 超级管理员用户名
-e 'API_TOKEN=your_api_token' \ # 替换为复杂的 API 密钥
-e 'BIG_MEMORY_MODE=false' \ # 是否启用大内存模式
-e 'DOH_ENABLE=true' \ # 启用 DNS over HTTPS
-e 'GITHUB_TOKEN=your_github_token' \ # 替换为 GitHub token(用于提高 API 请求限流)
-e 'TMDB_API_DOMAIN=api.themoviedb.org' \ # TMDB API 地址
--restart always \
jxxghp/moviepilot:latest
懂得都懂验证
Emby安装
官方版
安装命令不可直接复制请按需配置
docker run -d \
--name emby \
-p 8096:8096 \
-p 8920:8920 \
-v /opt/1panel/apps/embyks:/config \
-v /sata/media:/media \
emby/embyserver
-d
:后台运行容器。--name emby
:容器名称为emby
。-p 8096:8096
:将主机的 8096 端口映射到容器的 8096 端口。-p 8920:8920
:将主机的 8920 端口映射到容器的 8920 端口。-v emby:/emby
:将名为emby
的数据卷挂载到容器的/emby
目录。emby/embyserver
:要运行的镜像名称。
开心版和官方版区别于开启硬解 不需要则直接使用官版
开心版
安装命令不可直接复制请按需配置
docker run -d \
-v /opt/1panel/apps/embyks:/config \
-v /sata/media:/media \
--net=bridge \
--restart=always \
--device=/dev/dri:/dev/dri \
--name Emby \
-p 8096:8096 \
-p 8920:8920 \
amilys/embyserver:4.8.0.56
说明
-v
:用于挂载卷(volume),用于指定主机目录与容器目录的映射。--net=bridge
:指定使用桥接网络。--restart=always
:如果容器停止,则总是重启容器。--device=/dev/dri:/dev/dri
:用于映射主机的显卡设备,以便进行硬件解码。--name Emby
:为容器指定一个名称。-p
:用于映射容器的端口到主机的端口。
开心版开启硬解
需要在终端运行一下命令
chmod 777 /dev/dri/render128
EMBY优化及美化
emby调用外部播放器用户脚本,只支持网页:
添加多种播放按钮
项目是这个 https://github.com/bpking1/embyExternalUrl,感谢bpking1大佬的付出。 成功后将有如下的排版显示:
先下载上面项目,解压后将其中embyWebAddExternalUrl
目录复制到emby安装目录的dashboard-ui
中。 再修改dashboard-ui/index.html
文件,在</head>
前添加:
<link rel="stylesheet" id="theme-css" href="embyWebAddExternalUrl/icons/ExternalPlayer.css" type="text/css" media="all" />
<script src="embyWebAddExternalUrl/embyLaunchPotplayer.js"></script>
如下:
此时保存后刷新页面就可以看到相关的图标了。
进阶
原作者的embyLaunchPotplayer.js
中引用了js cdn
的地址,有时候在某些环境下刷不出来,这里可以将其改为本地地址,具体来说就是编辑embyLaunchPotplayer.js
文件将
https://fastly.jsdelivr.net/gh/bpking1/embyExternalUrl@0.0.5/
找到类似替换即可。也即是这部分:
更改下面代码到这个部分即可
(function () {
'use strict';
const useRealFileName = false;
const iconConfig = {
iconOnly: false,
baseUrl: "embyWebAddExternalUrl/icons" // 本地图标路径
};
emby优化及美化
打开emby是不是感觉加载非常的慢,如果你的内存够用,可以在emby设置中找到数据库-数据库缓存,设置为2048即可,为什么设置成这个数字
接下来是美化教程,项目地址https://github.com/newday-life/emby-front-end-mod,也可以看下他的教程。执行以下脚本先安装插件,容器名字输入emby。然后重启emby容器。
wget -O script.sh --no-check-certificate https://raw.githubusercontent.com/Shurelol/Emby.CustomCssJS/main/src/script.sh && bash script.sh
添加自定义JavaScript,使用这个网站点击打开的内容。状态设置为强制使用,就能全部客户端生效了。另外一个自定义css用的这个网站点击打开的。强制刷新CRTL+F5就能看到效果了。
qBittorrent安装
安装命令不可直接复制请按需配置
改版镜像
docker run -d \
--name=qbittorrent \
-p 7881:7881 \
-p 7881:7881/udp \
-p 18080:18080 \
-v /opt/1panel/apps/qBittorrent/config:/etc/qBittorrent \
-v /opt/1panel/apps/qBittorrent/data:/data \
-v /sata/media/9kg:/9kg \
-v /sata/media/bok/bokh:/bokh \
-v /sata/media/bok/boks:/boks \
-v /sata/media/tv:/tv \
-v /sata/media/videotv:/videotv \
-v /sata/media/video:/video \
-v /sata/downloads:/downloads \
--restart unless-stopped \
helloz/qbittorrent
7881:用于传入连接的端口,TCP/UDP都需要映射,且主机端口和容器端口必须一致,否则无法下载和上传
18080:qBittorrentWEBUI访问端口,主机端口和容器端口必须一致,否则无法打开WEB界面
/data/qbittorrent/config:qbittorrent配置文件存储目录,可自行修改
/data/qbittorrent/downloads:下载目录,可自行修改
使用说明
运行成功后可通过http://IP:18080
进行访问,用户名为admin
,密码为adminadmin
,默认已经设置为了中文界面。
官方镜像
docker run -d \
--name=qbittorrent \
--network host \
-e PUID=0 \
-e PGID=0 \
-e TZ=Asia/Shanghai \
-e WEBUI_PORT=18080 \
-e TORRENTING_PORT=6881 \
-v /opt/1panel/apps/qBittorrent/config:/config \
-v /sata/downloads:/downloads \
-v /sata/media/9kg:/9kg \
-v /sata/media/bok/bokh:/bokh \
-v /sata/media/bok/boks:/boks \
-v /sata/media/tv:/tv \
-v /sata/media/videotv:/videotv \
-v /sata/media/video:/video \
--restart unless-stopped \
linuxserver/qbittorrent:latest
WEBUI_PORT=18080 根据自己需求更改 webui 访问端口
7881:用于传入连接的端口,TCP/UDP都需要映射,且主机端口和容器端口必须一致,否则无法下载和上传
18080:qBittorrentWEBUI访问端口,主机端口和容器端口必须一致,否则无法打开WEB界面
/data/qbittorrent/config:/config qbittorrent配置文件存储目录,可自行修改 : 左边的内容
/data/qbittorrent/downloads:/downloads 下载目录,可自行修改 : 左边的内容
使用说明
运行成功后可通过http://IP:18080
进行访问,用户名为admin
,密码查看容器日志
transmission安装
安装命令不可直接复制请按需配置
docker run -d \
--name=transmission \
--network=host \
-e PUID=0 \
-e PGID=0 \
-e TZ=Etc/UTC \
-e TRANSMISSION_WEB_HOME="/webui" \
-e USER="seven" \
-e PASS="sevenchen" \
-e PEERPORT="51419" \
-v /opt/1panel/apps/transmission/config:/config \
-v /sata/media/videotv:/videotv \
-v /sata/media/video:/video \
-v /sata/media/tv:/tv \
-v /sata/media/9kg:/9kg \
-v /sata/media/bok:/bok \
-v /opt/1panel/apps/transmission/webui:/webui \
--restart unless-stopped \
chisbread/transmission:latest
安装Transmission-Web-Control
运行完启动Docker容器的命令后就可以来安装WebUI了
下载压缩包:
你可以使用
wget
命令直接从GitHub下载压缩包。打开终端并运行以下命令:
wget https://github.com/ronggang/transmission-web-control/archive/refs/tags/v1.6.1-update1.zip -O /tmp/transmission-web-control.zip
解压缩文件:
下载完成后,将压缩包中的
src
文件夹内的内容解压到目标目录/opt/transmission/webui
。可以使用unzip
和mv
命令来完成此操作:
unzip /tmp/transmission-web-control.zip "transmission-web-control-1.6.1-update1/src/*" -d /tmp
sudo mv /tmp/transmission-web-control-1.6.1-update1/src/* /opt/transmission/webui
src内的全部文件
备用地址下载到本地自己上传 : 点击即可下载
或者另一个ui
项目地址: 点击打开
下载完成后直接解压到 /webui
目录中 记得清空 /webui
目录
UI展示
补充
1.Transmission-web-control卡顿解决
根据药丸论坛的教程,可以设置/个人空间/docker/tr/config/tr-web-control/config.js
下的pageSize
调整到50以下。然后重启容器,清除浏览器里Transmission页面的缓存。这样默认分页会从200变得小一点。
2.Transmission-web-control任务列表文件大小与PT站不一致
由于默认文件大小是按1000来计算的,所以可以修改源代码进行解决。
拉取代码
找到路径
src/lib/utils.ts
搜索
const k = 1000;
,改成1024
执行
npm install
、npm run build
打包打包出来的
dist
即/个人空间/docker/tr/web
有点麻烦,其实也没什么必要去改。
接下来访问IP:9091输入账号密码就可以正常使用transmission了
jackett安装
安装命令不可直接复制请按需配置
docker run -d \
--name=jackett \
-e PUID=0 \
-e PGID=0 \
-e TZ=Asia/Shanghai \
-p 9117:9117 \
-v /opt/1panel/apps/jackett/config:/config \
--restart unless-stopped \
linuxserver/jackett
命令解析:
docker run
: 这个命令用于创建并启动一个新的容器。-d
: 这个标志表示以分离模式(在后台)运行容器。--name=jackett
: 这个选项将容器的名称设置为 "jackett"。-e PUID=100
: 这个选项设置一个环境变量PUID
为100
,通常用于指定容器内应用程序运行的用户 ID。-e PGID=100
: 这个选项设置一个环境变量PGID
为100
,用于指定应用程序运行的组 ID。-e TZ=Asia/Shanghai
: 这个选项将容器的时区设置为 "Asia/Shanghai"。-p 9117:9117
: 这个选项将主机的9117
端口映射到容器的9117
端口,使你可以通过主机的 IP 地址在该端口访问 Jackett。-v /opt/1panel/apps/jackett/config:/config
: 这个选项挂载一个卷,意味着主机上的目录/opt/1panel/apps/jackett/config
将作为容器内 Jackett 的配置目录。这允许你在删除容器后保留配置数据。--restart unless-stopped
: 这个标志告诉 Docker 除非手动停止容器,否则会自动重启容器。这对于确保容器在重新启动或崩溃后保持运行非常有用。linuxserver/jackett
: 这个选项指定要使用的 Docker 镜像,即来自 Docker Hub 的官方 Jackett 镜像。
flaresolverr安装
安装命令不可直接复制请按需配置
docker run -d \
--name=flaresolverr \
-p 8191:8191 \
-e LOG_LEVEL=info \
-e TEST_URL=https://www.baidu.com \
--restart unless-stopped \
ghcr.io/flaresolverr/flaresolverr:latest
docker run -d
: 在后台启动一个新的容器。--name=flaresolverr
: 给这个容器命名为flaresolverr
。-p 8191:8191
: 将主机的8191
端口映射到容器的8191
端口,使你可以通过访问主机的8191
端口来访问容器内部的服务。-e LOG_LEVEL=info
: 设置环境变量LOG_LEVEL
为info
,这通常用于控制日志的详细程度。-e TEST_URL=https://www.baidu.com
: 设置环境变量TEST_URL
为https://www.baidu.com
,这可能用于配置flaresolverr
服务所需的 URL。--restart unless-stopped
: 设置容器的重启策略为“除非手动停止”,即容器在崩溃或主机重启后会自动重新启动。ghcr.io/flaresolverr/flaresolverr:latest
: 指定要使用的 Docker 镜像,这里是flaresolverr
的最新版本。
IYUU安装
安装命令不可直接复制请按需配置
docker run -itd \
-v /opt/1panel/apps/IYUU/iyuu:/iyuu \
-v /opt/1panel/apps/IYUU/data:/data \
-v /opt/1panel/apps/qBittorrent/config/qBittorrent/BT_backup:/qb \
-v /opt/1panel/apps/transmission/config/torrents:/tr \
-p 8780:8780 \
--name IYUUPlus \
--restart=always \
iyuucn/iyuuplus-dev:latest
关于 8780 端口
通过docker安装的用户只需要绑定一个 8780
端口
注:8780
是容器内nginx的监听端口,反向代理了 8787
、3131
注意
安装时需要挂载两个目录和一个端口;
容器内目录/iyuu
和/data
为固定值,他们是兄弟关系,不是父子关系,切勿套娃。
本地目录/root/iyuu
挂载到容器内/iyuu
(存放源码);
本地目录/root/data
挂载到容器内/data
(存放mysql数据库);
你可以自定义本地目录/root/iyuu
和/root/data
访问
您可以访问WEBUI安装界面,从而进行下一步;如您是在IP地址为192.168.1.11
的局域网机器,通过docker安装的IYUU,那么地址就是http://192.168.1.11:8780
在浏览器中访问 URL 以查看IYUU的运行情况吧!
本机IP地址127.0.0.1
如果您是通过本机的docker安装的,那么地址就是:
http://127.0.0.1:8780
或 http://localhost:8780
IYUU辅种转种
首先添加你的下载器
添加图中的内容 提示一下 tr 好像需要反代后才有用户名和密码
种子目录来源
qb安装目录 /opt/1panel/apps/qBittorrent/config/data/BT_backup:/qbzz
/qbzz 按你喜好修改
tr安装目录 /opt/1panel/apps/transmission/config/torrents:/trzz
/trzz 按你喜好修改
目录用于转种使用 因为我不需要转移下载的文件所以 qb 和 tr 都映射相同的路径 默认下载路径是必须要自己映射的 其它下载路径自定义
设置辅种和转种任务
先设置辅种
设置转种任务
先设置转种后暂停
检查任务成功否
查看日志先点左边然后再点右边
可以看到输出日志
再设置转种后开始任务并自动删源种
- 感谢你赐予我前进的力量