IDC计划

参考链接:IDC计划 | Wiki - Vertex 适用于 PT 玩家的管理工具

Plex (qq.com)

0.0 想法

选用Docker为底层环境,选用Alist为云盘综合管理。
选用WebDAV为通信传输,选用Emby媒体服务端。
已通过 CloudCone DediPath Oracle RackNerd 虚拟专用服务器测试。

若是能访问外面,网盘先获取一些资源。
阿里云盘发布频道-1阿里云盘发布频道-2夸克云盘盘夸克云盘发布频道
霸王龙影咖 网站 频道 双云盘发布

主机配置:

评价 核心 运存 硬盘 带宽 其它
尚可 1C 1G 20GB 100Mbps io 200MB/s
较好 2C 2G 80GB 500Mbps io 500MB/s SSD Cached Storage
极佳 4C 4G+ 200GB+ 1000Mbps io 800MB/s SSD/NVME

项目清单:

项目名称 功能介绍 访问页面 官方发布 安装方案 Docker启动开关 重启机制 备注
Fastdocker 简单的容器WEB页面管理 IP地址:8081 https://hub.docker.com/r/wangbinxingkong/fast Docker安装,写入系统级文件夹 –restart always 保持重启自动启动
Speedtest-X 简单的测速WEB页面 IP地址:80 https://hub.docker.com/r/stilleshan/speedtest-x Docker安装,写入系统级文件夹 –restart unless-stopped 手动开关使用 重启前是什么运行状态,开机就保持什么状态。
Alist 将多款网盘挂载成为webdav传输 IP地址:5244 https://hub.docker.com/r/xhofe/alist Docker安装,写入/root文件夹公开使用 –restart always 保持重启自动启动 Webdav传输一直有效
Rclone 将多款网盘挂载成为虚拟目录 / https://rclone.org/install/#script-installation linux源码安装,系统级文件夹 / 未设置开机命令自动挂载 重启就会丢失挂载信息,需要SSH再次输入挂载命令。
Emby 媒体服务器 IP地址:8096 https://hub.docker.com/r/emby/embyserver Docker安装,写入/root文件夹公开使用 –restart no 或者留空此开关不设置 未设置自动重启 开机后手动启动容器
Jelly 媒体服务器 IP地址:8096 https://hub.docker.com/r/jellyfin/jellyfin/ Docker安装,写入/root文件夹公开使用 –restart no 或者留空此开关不设置 未设置自动重启 开机后手动启动容器
Plex 媒体服务器 IP地址:32400 https://hub.docker.com/r/plexinc/pms-docker Docker安装,写入/root文件夹公开使用 –restart no 或者留空此开关不设置 未设置自动重启 开机后手动启动容器
qbittorrent Torrent文件下载器 IP地址:8080 https://hub.docker.com/r/linuxserver/qbittorrent Docker安装,写入/root文件夹公开使用 –restart always 保持重启自动启动
homepage 多功能导航页面 IP地址:3000 https://gethomepage.dev/en/installation/docker/ Docker安装,写入/root文件夹公开使用 –restart always 保持重启自动启动

0.1 基础

推荐Debian11全新纯净系统;SSH登录主机,root用户。

1
2
# 检查双栈网络10次
ping -c 10 ipv4.google.com && ping -c 10 ipv6.google.com

一键完成命令创建基础环境:
自动识别主机架构 x86_64 / AMD64 / ARM64,系统环境 Debian / Ubuntu。
&& 多命令连接执行,前一条执行成功再继续执行下一条命令。
-y 询问是否,自动确认 Y。
查找系统更新 &&安装系统更新 &&安装Curl工具 &&Docker官网稳定版脚本 && Docker 官方安装参考执行安装脚本sh &&修改时区 &&生成并赋权media公共媒体挂载目录 &&生成并赋权emby需要的三个目录 &&生成并赋权jelly需要的两个目录 &&生成并赋权plex需要的三个目录 &&安装fastdocker面板 && fastdocker docker发布页安装speedtest测速 && speedtest-x docker发布页生成并赋权alist目录 &&安装alist && alist docker发布页安装sudo组件 &&安装fuse3组件 &&安装rclone rclone 官方安装参考
VPS演示主机参考:甲骨文-东京-ARM 2c 12g 50Gb 2Gbps 耗时90秒
Bridge 桥接网络

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
apt update -y &&
apt upgrade -y &&
apt install curl -y &&
curl -fsSL https://get.docker.com -o get-docker.sh &&
sh get-docker.sh &&
timedatectl set-timezone Asia/Shanghai &&
mkdir -p /root/media &&
mkdir -p /root/emby/{config,transcode,data} &&
mkdir -p /root/jelly/{config,cache} &&
mkdir -p /root/plex/{config,transcode,data} &&
chmod 777 -R /root/media &&
chmod 777 -R /root/emby &&
chmod 777 -R /root/jelly &&
chmod 777 -R /root/plex &&
docker run -d --name fastdocker --restart always -p 8081:8081 -p 8082:8082 -e TZ=Asia/Shanghai -v /var/run/docker.sock:/var/run/docker.sock -v /etc/docker/:/etc/docker/ wangbinxingkong/fast:8.10 &&
docker run -d --name speedtest --restart unless-stopped -p 12345:80 stilleshan/speedtest-x:latest &&
mkdir -p /root/alist &&
chmod 777 /root/alist &&
docker run -d --name alist --restart always -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 -v /root/alist:/opt/alist/data xhofe/alist:latest &&
apt install sudo -y &&
apt install fuse3 -y &&
sudo -v ; curl https://rclone.org/install.sh | sudo bash

Host 主机网络

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
apt update -y &&
apt upgrade -y &&
apt install curl -y &&
curl -fsSL https://get.docker.com -o get-docker.sh &&
sh get-docker.sh &&
timedatectl set-timezone Asia/Shanghai &&
mkdir -p /root/media &&
mkdir -p /root/emby/{config,transcode,data} &&
mkdir -p /root/jelly/{config,cache} &&
mkdir -p /root/plex/{config,transcode,data} &&
chmod 777 -R /root/media &&
chmod 777 -R /root/emby &&
chmod 777 -R /root/jelly &&
chmod 777 -R /root/plex &&
docker run -d --name fastdocker --restart always --network host -e TZ=Asia/Shanghai -v /var/run/docker.sock:/var/run/docker.sock -v /etc/docker/:/etc/docker/ wangbinxingkong/fast:8.10 &&
docker run -d --name speedtest --restart unless-stopped --network host stilleshan/speedtest-x:latest &&
mkdir -p /root/alist &&
chmod 777 /root/alist &&
docker run -d --name alist --restart always --network host -e PUID=0 -e PGID=0 -e UMASK=022 -v /root/alist:/opt/alist/data xhofe/alist:latest &&
apt install sudo -y &&
apt install fuse3 -y &&
sudo -v ; curl https://rclone.org/install.sh | sudo bash

Speedtest-X面板 桥接网络IP地址:12345 主机网络IP地址:80 直接输入纯IP也行
代码跑完之后,自己先打开测速面板试试。
把地址也发给你的好友。电脑/手机都试试,网络环境好才能流畅玩耍。
不要开梯,就是要测试真实网络连接性。
测速完毕后可以关闭容器,减轻VPS负载。

pScFt6f.png

重点注意

教程写到这里,突然声明一些关键词/知识点。
基础环境一键创建是很简单的,接下来的开始有难度了。
现在不理解没关系,当做预习。重点阶段还会有附图演示。


在云盘内建立文件夹尽量名称简单一点,层级少一点。
movie 电影 tvshow 剧集 music 音乐 animation 动画
在这些文件夹之下就是资源本身,或者是资源文件夹。
在VPS内处理信息会变得简单,各个项目之间处理资源变得简单,Emby建立媒体库变得简单。


各种名称建议采用字母数字简单命名,方便记忆和代码布置对应关系。
字母的大小写会产生效果,输错就会执行失败。
Alist配置阿里云盘举例命名三组 /aliyun * /mydisk * /ALYP4T 是访问目录也是文件夹的意思。
Alist配置夸克网盘举例命名三组 /kuakeyun * /kkdisk * /KKYP6T 是访问目录也是文件夹的意思。
Rclone配置WebDAV举例命名四组 /alist * /alist6d * /aliwd * /4DISK 是项目名称用来远程访问。
玩法提示:
用一个Rclone名称访问Alist全局内各种品牌网盘,
用三个Rclone名称配置三个Alist全局访问,
用五个Rclone名称将一个阿里云盘里面的五个文件夹挂载出来。


如果:有很多个VPS,很多个网盘,很多个Emby媒体服务器,很多个播放终端。
但Alist使用了token码/cookies登录云盘,最好只使用一个VPS安装,Alist添加网盘使用本地模式。
然后手机/电脑/电视播放终端使用IP:5244/dav进行远程WebDAV请求。从VPS转发数据过来。
这样阿里云会视为稳定账户,避免被判定为多地登录多处滥用账户。
Win系统PotPlayer 安卓系统nPlayer 苹果系统infuse等等其它软件,本身就支持WebDAV直接访问,添加地址/账密就已经完成远程播放需求了。
但是Emby/Plex没有直接访问WebDAV的功能。所以使用Rclone挂载命令,把WebDAV得到的资源信息虚拟成为文件夹,用来搭建媒体库。


Emby/Plex启动播放视频的请求,查找VPS内虚拟出来的文件夹资源,Rclone使用WebDAV传输向阿里云盘请求视频文件。
视频文件下载到VPS缓存文件夹,Emby/Plex媒体服务器进行数据处理,直推数据给你自己的客户端进行播放。


设计思路:
基础环境的Docker项目,自动跟随系统启动。
云盘Rclone存储挂载,Emby/Plex媒体服务器需要人工开启。
如果VPS遇到故障导致重启,或者人工强制重启VPS。
系统开机是低负载,各项目对云盘无读写操作。
便于维护主机,修复故障。

0.2 布置

Fastdocker面板 IP地址:8081
注册账户密码可能有bug,多试几次。
简单快速的处理容器,启动/停止/重启/删除/修改。
点击容器名字查看详细信息。
点击端口号访问容器页面。
镜像页面删除无效镜像。
pSA9LV0.png


Alist面板 IP地址:5244
初次登录需要使用 admin 默认密码
两种方法:

  1. Fastdocker面板 点击alist后面的日志按钮,日志栏查看密码。
    Successfully created the admin user and the initial password is: ********
  2. SSH打印容器日志内的密码命令
1
docker exec -it alist ./alist password

进入页面后,下方的管理按钮进入后台进行相关配置。
首先修改用户名及密码,使用WebDAV访问也是此账密。
https://alist.nn.ci/zh/guide Alist官方教程页面
查看Alist官方教程页面添加存储,查看阿里云配置方案,点击 获取 Token,手机APP扫码。
WebDAV 策略:
302传输 数据不走VPS,直接连阿里云盘传输,适合独立程序纯粹使用WebDAV访问阿里云。
(Win系统PotPlayer 安卓系统nPlayer 苹果系统infuse等等其它软件)
本地代理 数据先下载到VPS内的存储硬盘,再转发给有需要的程序。
演示
pSA3400.png
保存成功后,点击左边的主页。
刚才后台配置的”挂载路径*”,就是现在的主目录文件夹。阿里云盘之下的所有内容都展示出来。
WebDAV搭建成功。

Rclone
配置命令

1
rclone config

代码呈现演示 (不做为执行命令)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#                              注:配置文件存放的位置
2023/01/07 12:03:11 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
No remotes found, make a new one?
n) New remote 注:创建一个新的远程访问
s) Set configuration password
q) Quit config 注:退出配置环节
n/s/q>n 注:输入 n 回车进入配置环节

Enter name for new remote.
name> alist 注:取名回车 简单好记的英文名

出现50个选项
其中大厂品牌支持直接密钥token直接访问
Google Drive
Microsoft OneDrive
本次使用WebDAV传输调用Alist搭建好的环境
******************************************
45 / ********
\ ********
46 / WebDAV
\ (webdav)
47 / ********
\ ********
48 / ********
\ ********
49 / ********
\ ********
50 / ********
\ ********
Storage> 46 注:现在Rclone的WebDAV是46号,以前的旧版和未来的新版、看菜单再选择。

Option url.
URL of http host to connect to.
E.g. https://example.com.
Enter a value.
url> http://localhost:5244/dav 注:输入此地址表示访问本机的5244端口/dav是alist默认的全局访问
注:其它地方搭建的WebDAV填入对应的访问地址
注:http://666.777.888.999:5244/dav
注:http://www.mystoragecloud.com:5244/dav

Option vendor.
Name of the WebDAV site/service/software you are using.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
1 / Nextcloud
\ (nextcloud)
2 / Owncloud
\ (owncloud)
3 / Sharepoint Online, authenticated by Microsoft account
\ (sharepoint)
4 / Sharepoint with NTLM authentication, usually self-hosted or on-premises
\ (sharepoint-ntlm)
5 / Other site/service or software
\ (other)
vendor> 5 注:5 其它

Option user.
User name.
In case NTLM authentication is used, the username should be in the format 'Domain\User'.
Enter a value. Press Enter to leave empty.
user> admin 注:输入Alist访问用户名

Option pass.
Password.
Choose an alternative below. Press Enter for the default (n).
y) Yes, type in my own password
g) Generate random password
n) No, leave this optional password blank (default)
y/g/n> y 注:使用密码访问
Enter the password:
password: 注:输入Alist访问密码 不显示内容的
Confirm the password:
password: 注:第二次输入Alist访问密码 不显示内容的

Option bearer_token. 注:不配置令牌
Bearer token instead of user/pass (e.g. a Macaroon).
Enter a value. Press Enter to leave empty.
bearer_token> 注:不输入任何内容直接回车下一步

Edit advanced config? 注:编辑高级配置
y) Yes
n) No (default)
y/n> n 注:直接回车默认,或者输入N拒绝

Configuration complete. 注:配置完成 是否确认或再次修改
Options:
- type: webdav
- url: http://localhost:5244/dav
- vendor: other
- user: admin
- pass: *** ENCRYPTED ***
Keep this "alist" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y 注:y 确认保存

Current remotes:

Name Type
==== ====
alist webdav 注:已经配置成功的远程访问

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q 注:q 退出配置

首次远程访问测试
Rclone功能 ls列出目录所含子目录及文件 alist搭建的远程访问项目名称 :根目录开始全局输出

1
rclone ls alist:

代码呈现演示 (不做为执行命令)

1
2
3
4
5
6
7
8
9
10
11
root@debian:~# rclone ls alist:
27209866479 aliyun/电影/信条.Tenet.2020.IMAX.BluRay.2160p.x265.10bit.HDR.2Audio.mkv
22902582900 aliyun/电影/安德的游戏.Enders.Game.2013.BluRay.2160p.x265.10bit.HDR.3Audio.mkv
24335239052 aliyun/电影/敦刻尔克.Dunkirk.2017.BluRay.2160p.x265.10bit.4Audio.mkv
26876953318 aliyun/电影/极速车王.Ford.v.Ferrari.2019.BluRay.2160p.x265.10bit.HDR.2Audio.mkv
34059310442 aliyun/电影/盗梦空间.Inception.2010.BluRay.2160p.x265.10bit.4Audio.mkv
18790404507 aliyun/电影/遗落战境.Oblivion.2013.BluRay.2160p.x265.10bit.4Audio.mkv
1397911731 aliyun/剧集/灌篮高手 (1993) 国粤日配/灌篮高手 S01E01 - 1080p 国粤日配.mkv
1250044350 aliyun/剧集/灌篮高手 (1993) 国粤日配/灌篮高手 S01E02 - 1080p 国粤日配.mkv
1426875240 aliyun/剧集/灌篮高手 (1993) 国粤日配/灌篮高手 S01E03 - 1080p 国粤日配.mkv
1217716723 aliyun/剧集/灌篮高手 (1993) 国粤日配/灌篮高手 S01E04 - 1080p 国粤日配.mkv

增强:
如果Alist里面添加了很多品牌的网盘。
如果某个网盘有很多文件夹。
列出不同目录下的资源。
代码呈现演示 (不做为执行命令)

1
2
3
4
5
6
7
8
9
10
rclone ls alist:                    #Alist之下的全部网盘
rclone ls alist:115 #Alist之下的115网盘
rclone ls alist:115/4K #Alist之下的115网盘指定4K文件夹
rclone ls alist:aliyun #Alist之下的阿里云盘
rclone ls alist:aliyun/Movie #Alist之下的阿里云盘指定Movie文件夹
rclone ls alist:aliyun/Tvshow #(剩下的相同意思)
rclone ls alist:kuake/电影
rclone ls alist:kuake/电视
rclone ls alist:tianyi/西部世界
rclone ls alist:tianyi/动漫

挂载
默认选择Alist全局挂载,如需要指定目录可以自己编写。
Rclone功能 mount挂载命令 alist远程访问项目名称 VPS内的公共文件夹

以下可用 但不可靠 需要重新设计 进行参数修改 高强度测试

1
rclone mount alist: /root/media --cache-dir /tmp --allow-other --attr-timeout 5m --vfs-cache-mode full --vfs-cache-max-age 24h --vfs-cache-max-size 10G --vfs-read-chunk-size-limit 100M --buffer-size 100M &
1
rclone mount alist: /root/media --cache-dir /tmp --allow-other --attr-timeout 10m --vfs-cache-mode full --vfs-cache-max-age 24h --vfs-cache-max-size 20G --vfs-read-chunk-size-limit 200M --buffer-size 400M &
1
rclone mount alist: /root/media --cache-dir /tmp --allow-other --attr-timeout 20m --vfs-cache-mode full --vfs-cache-max-age 24h --vfs-cache-max-size 20G --vfs-read-chunk-size-limit 400M --buffer-size 600M &

网络摘抄:
–allow-other:允许非当前Rclone用户外的用户进行访问
–attr-timeout 5m:文件属性缓存,(大小,修改时间等)的时间。如果小鸡配置比较低,建议适当提高这个值,避免过多的和内核交互,占用资源。
–vfs-cache-mode full:开启VFS文件缓存,这样可减少Rclone与API交互,同时可提高文件读写效率。
–vfs-cache-max-age 24h:VFS文件缓存时间,这里设置的24小时,如果文件很少更改,建议设置更长的时间。
–vfs-cache-max-size 10G:VFS文件缓存上限大小,建议不超过当前空余磁盘的50%。
–vfs-read-chunk-size-limit 100M:分块读取大小,这里设置的是100M,可提高文件读的效率,比如1G的文件,大致分为10个块进行读取,但与此同时API请求次数也会增多。
–buffer-size 100M:内存缓存,如果您内存比较小,可降低此值,如果内存比较大,可适当提高。
演示
输出一个随机编号表示成功,刷新一下media文件夹可以看见内容。
pSITnpV.png
Rclone更多命令的使用查看官网 https://rclone.org/commands/

0.3 搭建

Emby服务器

IP地址:8096 embyserver docker发布页
在FinalShell中使用鼠标粘贴代码;或者键盘Ctrl+Shift+V粘贴代码,回车运行代码。
安装完成后访问Emby配置页面,设定相关参数,开始使用Emby。
媒体库位置选择 /mnt/share1
Bridge 桥接网络

1
2
3
4
5
6
7
8
9
10
docker run -d \
--name emby \
-p 8096:8096 \
-p 8920:8920 \
-e UID=1000 \
-e GID=100 \
-e GIDLIST=100 \
-v /root/emby/config:/config \
-v /root/media:/mnt/share1 \
emby/embyserver:latest

Host 主机网络

1
2
3
4
5
6
7
8
9
docker run -d \
--name emby \
--network host \
-e UID=1000 \
-e GID=100 \
-e GIDLIST=100 \
-v /root/emby/config:/config \
-v /root/media:/mnt/share1 \
emby/embyserver:latest

如果是ARM主机 用下面的代码替换掉上面的

1
emby/embyserver_arm64v8:latest

演示
pSelsU0.png

pSelBbn.png

pSelrEq.png


jellyfin 服务器

待定
容器端口冲突需要修改


Plex服务器

IP地址:32400 pms-docker docker发布页
在FinalShell中使用鼠标粘贴代码;或者键盘Ctrl+Shift+V粘贴代码,回车运行代码。
媒体库位置选择 /data
注:ARM架构Plex需要命令行手动编译镜像,具体请查看Docker发布页。

访问https://www.plex.tv/claim 获得4分钟有效期的令牌然后启动docker,可以跳过下面的隧道访问

Bridge 桥接网络

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
docker run -d \
--name plex \
-p 32400:32400/tcp \
-p 3005:3005/tcp \
-p 8324:8324/tcp \
-p 32469:32469/tcp \
-p 1900:1900/udp \
-p 32410:32410/udp \
-p 32412:32412/udp \
-p 32413:32413/udp \
-p 32414:32414/udp \
-e TZ=Asia/Shanghai \
-e PLEX_CLAIM="令牌" \
-v /root/plex/config:/config \
-v /root/plex/transcode:/transcode \
-v /root/media:/data \
plexinc/pms-docker:latest

Host 主机网络

1
2
3
4
5
6
7
8
docker run -d \
--name plex \
--network host \
-e TZ=Asia/Shanghai \
-v /root/plex/config:/config \
-v /root/plex/transcode:/transcode \
-v /root/media:/data \
plexinc/pms-docker:latest

pSuF08s.png
隧道访问(可选)
远程Plex搭建最难的就是初次访问后台,创建全新服务器。
FinalShell鼠标右键,编辑VPS的信息,添加隧道。
保存隧道信息,断开VPS再重新登录VPS
浏览器输入http://localhost:32400/web
登录认证Plex账户。出现正确页面才是后台服务器创建。

遇到访问等待太久,建立服务器失败。就清空数据库再来一遍。
停止容器 &&删除用户数据库 &&启动容器

1
2
3
docker stop plex &&
rm -rf /root/plex/config/Library &&
docker start plex

参考隧道配置

1
2
3
4
5
方向:本地(拨出)
源主机:localhost
侦听端口:32400
目标主机:vps服务器ip
目标端口:32400

pSukqO0.png

pSuFDvq.png

Jav插件:JPmag.net

0.4 注意

再来复习一下工作流程:

  1. Docker环境正常:打开Fastdocker面板 IP地址:8081 OK!
  2. Internet环境正常:打开Speedtest-X面板 IP地址:12345 测速 OK!
  3. Alist容器运行正常:打开Alist面板 IP地址:5244 看见网盘文件夹 OK!
  4. WebDAV传输运行正常:独立APP使用WebDAV读取资源播放 OK!
    (走到这一步,独立APP使用WebDAV已经成功)
  5. Rclone运行正常:Rclone ls Alist: 打印资源列表正常。 OK!
    (选一个东西少一点的文件夹,十几个文件就行。几万个文件打印列表很久的)
  6. mount挂载正常:FinalShell刷新文件夹看得见资源。 OK!
    (本教程的挂载是每次重启都会丢失,需要再次输入mount挂载组合命令)
    (走到这一步,Emby/Plex才能启动容器,正确读取虚拟文件夹的资源)
  7. VPS云媒体库至此搭建成功。可以正常看片了。

为了锻炼自己的能力,此刻立即reboot重启VPS,按照工作流程检查云媒体环境。
出现错误维护一下。
修复不了错误就重装系统再来一遍。

为了写这篇教程,历时2个月,反复构思流程。装机几十次。总结经验。
分享给群友一起装机测试,收集问题,调试细节。

0.5 备份 待测试


折腾到了一个稳定的阶段,养成备份的好习惯。
容器更新版本是可以继续使用数据库的。
VPS重装系统,迁移更换VPS。可以使用备份进行恢复。


Alist自带备份与恢复
两个默认用户是无法恢复的
pSHDrs1.png


媒体库的备份与恢复
停止容器生成并赋权backups公共备份目录 &&打包容器数据库 &&上传云盘指定文件夹
tar开关注释
z压缩包 c创建包 x解压包 t查看包 v打印信息 f指定名称

单封装

1
2
3
4
docker stop emby &&
mkdir -p -m 777 /root/backups &&
tar -zcvf /root/backups/emby-backups-$(date +%Y%m%d-%H%M%S).tar.gz -C/root/ emby &&
rclone copy -P /root/backups alist:aliyun/vpsmediabackups

单封装

1
2
3
4
docker stop plex &&
mkdir -p -m 777 /root/backups &&
tar -zcvf /root/backups/plex-backups-$(date +%Y%m%d-%H%M%S).tar.gz -C/root/ plex &&
rclone copy -P /root/backups alist:aliyun/vpsmediabackups

双封装

1
2
3
4
5
docker stop emby plex &&
mkdir -p -m 777 /root/backups &&
tar -zcvf /root/backups/emby-backups-$(date +%Y%m%d-%H%M%S).tar.gz -C/root/ emby &&
tar -zcvf /root/backups/plex-backups-$(date +%Y%m%d-%H%M%S).tar.gz -C/root/ plex &&
rclone copy -P /root/backups alist:aliyun/vpsmediabackups

检查压缩包

1
tar -ztvf /root/backups/*.gz

启动容器 单启动 双启动

1
docker start emby
1
docker start plex
1
docker start emby plex

云上传
备份包恢复的Emby 立即展开使用 会触发直接转码播放
修复方案一 直接重启容器 或者VPS 重新加载Emby设定文件
修复方案二 浏览全部设置页面,检查各项设定,转码功能选择关闭

0.6 恢复 待测试

1
2
3
rclone copy -P alist:aliyun/vpsmediabackups /root/backups
tar -zxvf /root/backups/embybackups时间戳.tar.gz
tar -zxvf /root/backups/plexbackups时间戳.tar.gz

0.7 增强

已成功 待优化
写入Docker IPV6 配置参数
https://imciel.com/2021/03/31/config-docker-ipv6/

1
2
3
4
5
6
7
8
cat > /etc/docker/daemon.json <<EOF
{
"ipv6": true,
"fixed-cidr-v6": "fd00::/80",
"ip6tables": true,
"experimental": true
}
EOF

检查Docker网络

1
2
systemctl restart  docker
docker network inspect bridge

测试V6联通

1
docker run --network=bridge --rm -it busybox ping -6 -c4 google.com

特定情况下有个讨厌的合集媒体库 删除
/root/emby/config/root/default/合集

0.8 更新

docker 官方 镜像命令用法
https://docs.docker.com/engine/reference/commandline/images/
显示悬空镜像
docker images -f “dangling=true”
删除悬空镜像
docker rmi $(docker images -f “dangling=true”)
另外一种方法
docker rmi -f $(docker images | grep “none” | awk ‘{print $3}’)

想法:
完全静默,无人管理式的更新可以使用Watchtower。
本教程基于人工更新的方式执行,做出自己的规划。
逻辑:
强制删除容器
拉取最新镜像
删除旧镜像 none悬空镜像
创建容器

Alist

1
2
3
4
docker rm -f alist &&
docker pull xhofe/alist:latest &&
docker rmi $(docker images -f "dangling=true") &&
docker run -d --name alist --restart always --network host -e PUID=0 -e PGID=0 -e UMASK=022 -v /root/alist:/opt/alist/data xhofe/alist:latest

Plex

1
2
3
4
5
6
7
8
9
10
11
docker rm -f plex &&
docker pull plexinc/pms-docker:latest &&
docker rmi $(docker images -f "dangling=true") &&
docker run -d \
--name plex \
--network host \
-e TZ=Asia/Shanghai \
-v /root/plex/config:/config \
-v /root/plex/transcode:/transcode \
-v /root/media:/data \
plexinc/pms-docker:latest

0.8 最小化 Lite in VPS

草稿页

项目名称 访问页面 官方发布 安装方案 Docker启动开关 重启机制 备注
Fastdocker IP地址:8081 https://hub.docker.com/r/wangbinxingkong/fast Docker安装,写
入系统级文件夹
–restart
always
保持重启自动
启动
Speedtest-X 桥接网络IP地
址:12345 主机
网络IP地址:80
https://hub.docker.com/r/stilleshan/speedtest-x Docker安装,写
入系统级文件夹
–restart
unless-stopped
手动开关使用
重启前是什么运
行状态,开机就
保持什么状态。
Alist IP地址:5244 https://hub.docker.com/r/xhofe/alist Docker安装,写
入/root文件夹公
开使用
–restart
always
保持重启自动
启动
Webdav传输一
直有效
Rclone / https://rclone.org/install/#script-installation linux源码安装,
系统级文件夹
/ 未设置开机命
令自动挂载
重启就会丢失
挂载信息,需
要SSH再次输
入挂载命令。
Emby IP地址:8096 https://hub.docker.com/r/emby/embyserver Docker安装,写
入/root文件夹公
开使用
–restart no
或者留空此开关
不设置
未设置自动重

开机后手动启动
容器
Jelly IP地址:8096 https://hub.docker.com/r/jellyfin/jellyfin/ Docker安装,写
入/root文件夹公
开使用
–restart no
或者留空此开关
不设置
未设置自动重

开机后手动启动
容器
Plex IP地址:32400 https://hub.docker.com/r/plexinc/pms-docker Docker安装,写
入/root文件夹公
开使用
–restart no
或者留空此开关
不设置
未设置自动重

开机后手动启动
容器
qbittorrent IP地址:8080 https://hub.docker.com/r/linuxserver/qbittorrent Docker安装,写
入/root文件夹公
开使用
–restart
always
保持重启自动
启动
homepage **** https://gethomepage.dev/en/installation/docker/ Docker安装,写
入/root文件夹公
开使用
–restart
always
保持重启自动
启动