说明:最近发现了一个很强的多媒体项目Cloudbox
,差不多是一个基于Docker
的盒子,基本上里面所有的应用都是为多媒体打造,包括自动搜索影视、下载、播放等等,常见的应用包括Plex
/Emby
、Rclone
/Plexdrive
、ruTorrent
、Nextcloud
、Resilio Sync
,然后还有一大批不常见但很有用的应用,接下来都会大概介绍下,不然用起来很麻烦,博主只是大概的看了下。
Cloudbox
又分为Mediabox
(多媒体服务)、Feederbox
(下载服务),你可以在一台服务器上部署完整的Cloudbox
,这样会使用所有的应用,也可以在2
台服务器上分别部署Mediabox
和Feederbox
,然后分工一起配合使用,这些具体会安装以下应用:
#Cloudbox
Rclone、Plexdrive、NZBGet、ruTorrent、NZBHydra2、Jackett、Plex Media Server、Plex Autoscan、Sonarr、Radarr、PlexPy(Tautulli)、Ombi、Portainer、Organizr
#Feederbox
Rclone、Plexdrive、NZBGet、ruTorrent、NZBHydra2、Jackett、Sonarr、Radarr、Portainer、Organizr
#Mediabox
Rclone、Feeder Mount、Plexdrive、Plex Media Server、Plex Autoscan、PlexPy(Tautulli)、Ombi
#可选应用
Emby、Nextcloud、Resilio Sync、Plex Dupefinder、Heimdall、NZBHydra v1、Plex Requests、Sickbeard MP4 Automator
大概介绍下应用:
代码语言:javascript复制Sonarr:Usenet和BitTorrent用户的一款RSS订阅工具。它可以监视你喜欢的多个电影、剧集的更新提醒,并将它们抓取、排序和重命名。
Radarr:Sonarr的独立分支,用于通过Usenet和BitTorrent自动下载电影。
Rclone/Plexdrive:远程存储网盘挂载工具,后者只能挂载Google Drive。
NZBGet/ruTorrent:分别为Usenet和BitTorrent下载工具,可以配合Sonarr和Radarr一起下载资源。
NZBHydra2:是NZB索引者的元搜索工具。它可以方便地访问许多NZB索引器。您可以从一个位置搜索所有索引器,并将其用作Sonarr,Radarr或CouchPotato等工具的索引器源。
Jackett:是一个基于Web的应用程序,其作用类似于代理服务器,将搜索查询从下载客户端(例如Sonarr)引导到torrent跟踪器站点并将结果发回。下载客户端也可以使用Jackett从跟踪器站点获取RSS源。最后,它可以用作元搜索工具,直接从应用程序中查找种子。
Plex Autoscan:可以扫描已导入的文件夹(相对于整个部分库文件夹),协助Plex添加由Sonarr/Radarr导入的添加媒体文件,从而减少Google API使用过多而被限制。
PlexPy:是一个基于Web的应用程序,与Plex一起运行,用于监视活动并跟踪各种统计数据。
Ombi:是一个自托管的Web应用程序,可以自动为你的共享Plex或Emby用户提供自己请求内容的功能!Ombi可以链接到多个电视节目和电影DVR工具,为你创建无缝的端到端体验。
Portainer:是一个开源轻量级管理UI,可让您轻松管理Docker容器,图像,网络和卷。
Organizr:是一个基于Web的HTPC服务器管理器,允许您管理选项卡中的各种工具和程序。还支持用户管理,允许非管理员用户或访客通过Organizr访问某些网页。
Plex/Emby:多媒体客户端,主要功能是存储 索引 转码 在线播放。
Nextcloud:一个免费的,开源的网盘程序
Resilio Sync:一个点对点的文件同步工具
Plex Dupefinder:用了在Plex库中找到重复版本的媒体,并告诉Plex自动删除最低质量版本(基于评分算法),留下一个高质量的媒体文件。
Heimdall:用来添加各种链接地址的Web面板
Sickbeard MP4 Automator:自动将视频文件转成mp4的工具
其实这些应用配合起来看起来很强大,但玩的有点懵逼。
如果你觉得你服务器空间不太够,可以配合Rclone
/Plexdrive
挂载远程存储一起使用,比如Google Drive
,Cloudbox
也是只建议使用Gdrive
网盘,如果你没有无限空间的Gdrive
,可以查看该文章免费申请一个→传送门。
Cloudbox运作过程
Cloudbox
通过Sonarr
下载您最喜爱的电视节目,Radarr
下载您喜爱的电影。两者都使用Usenet
(通过NZBGet
)和/或Torrent
(通过ruTorrent
)来完成。
下载完成后,Sonarr
和Radarr
会将这些下载内容移至服务器的/mnt/local/Media/
文件夹,并向Plex Autoscan
发送通知。
反过来,Plex AutoScan
将通过扫描特定的视频文件夹告诉Plex
扫描新下载的电视节目或电影。然后会更快地出现在Plex
中,而不需要扫描全部的视频库,这样可以减少Cloud Storage API
使用次数,导致被限制。
Cloudplow
最终会将所有内容从远程云存储上/mnt/local/Media/
命名的文件夹移动Media
,从而减少服务器上的存储空间。
在此迁移期间,媒体文件将继续可供媒体服务器(例如Plex
)访问,因为远程云存储(例如Google Drive
)将挂载在服务器上。
准备工作
一台国外的服务器,建议内存2G
以上、硬盘的话官方是建议200G
,这里的话20G
以上就可以了,最好越大越好,内存不够的可以用下Swap
一键脚本→传送门。
一个Plex
账户,注册地址→传送门。
一个一级域名,并将该域名的DNS
服务器迁移到Cloudfare
,再解析类似*.moerats.com
泛域名到服务器ip
。
如果你不想迁移域名也可以,不过要解析多个二级域名到服务器ip
,具体操作查看→传送门。
安装
Github地址:https://github.com/Cloudbox/Cloudbox
支持系统:Ubuntu 16.04
或18.04
,仅限64
位系统,这里Debian
系统貌似也可以,不过最好是用Ubuntu
,不然可能会有问题。
1、新建用户
这里别用root
用户安装,不会会有部分应用可能用不了,所以需要新建一个普通用户,如果你有普通用户的可以跳过这一步。
#新建moerats用户
useradd -m moerats
#获取sudo权限
usermod -aG sudo moerats
#设置密码等
passwd moerats
chsh -s /bin/bash moerats
2、安装依赖
使用步骤1
设置的普通用户登录SSH
,使用命令:
curl -s https://cloudbox.works/scripts/dep.sh | sudo -H sh; curl -s https://cloudbox.works/scripts/repo.sh | bash
或者
wget -qO- https://cloudbox.works/scripts/dep.sh | sudo -H sh; wget -qO- https://cloudbox.works/scripts/repo.sh | bash
3、编辑配置文件
代码语言:javascript复制cd ~/cloudbox
#编辑下载和备份目录,该配置可以默认
nano settings.yml
#编辑登录等信息
nano accounts.yml
settings.yml
应该都看的懂,这里说下accounts.yml
,大致参数意思如下:
#user为普通用户名称,passwd为登录密码,也就是所有应用Web端登录信息
user: moerats
passwd: moeratspasswd
#domai为解析的一级域名
domain: moerats.com
#email和api为cloudfare的登录邮箱和api,api获取地址https://www.cloudflare.com/a/profile
email: admin@moerats.com
cloudflare_api_token: 4993d7315d
#plex用户名和密码
plex:
user:
pass:
#pushover为推送应用,这个如果你觉得配置麻烦,可以留空,不影响安装
pushover:
app_token: ap36cqsi5w
user_key: u2wtotir3
priority: 1
这里的pushover
起到推送作用,就是一般在下载完成,备份完成等一些操作会自动推送给你,有安卓/IOS
/桌面端,具体使用查看→传送门,这里的token
和key
貌似好填,这里只说下priority
参数为通知优先级,不会设置的,建议设置为1
,也就是高优先级,如果你希望你不要错过推送消息,那就设置2
,不过2
会一直打扰你,直到你点开消息为止。
4、安装
代码语言:javascript复制#安装Cloudbox
sudo ansible-playbook cloudbox.yml --tags cloudbox
#安装Feederbox
sudo ansible-playbook cloudbox.yml --tags feederbox
#安装Mediabox
sudo ansible-playbook cloudbox.yml --tags mediabox
安装的时候,使用Cloudfare
的会自动给你解析好域名,并签发SSL
证书。访问地址如下:
Jackett:https://jackett.yourdomain.com
NZBGet:https://nzbget.yourdomain.com
NZBHydra2:https://nzbhydra2.yourdomain.com
Organizr:https://organizr.yourdomain.com
Plex:https://plex.yourdomain.com
WebTools for Plex*:http://plex.yourdomain.com:33400
Plexpy (Tautulli):https://plexpy.yourdomain.com
Plex Requests:https://plexrequests.yourdomain.com
Portainer:https://portainer.yourdomain.com
Radarr:https://radarr.yourdomain.com
ruTorrent:https://rutorrent.yourdomain.com
Sonarr:https://sonarr.yourdomain.com
其它可选安装:
代码语言:javascript复制#安装Emby
sudo ansible-playbook cloudbox.yml --tags emby
#安装Nextcloud
sudo ansible-playbook cloudbox.yml --tags nextcloud
#安装Resilio Sync
sudo ansible-playbook cloudbox.yml --tags resilio-sync
#安装Plex Dupefinder
sudo ansible-playbook cloudbox.yml --tags plex_dupefinder
#安装Heimdall
sudo ansible-playbook cloudbox.yml --tags heimdall
#安装NZBHydra v1
sudo ansible-playbook cloudbox.yml --tags nzbhydra
#安装Plex Requests
sudo ansible-playbook cloudbox.yml --tags plexrequests
使用
操作之前需要先了解下服务器本地路径和Google Drive
路径,这里以默认的settings.yml
参数为参考。
#Google云端硬盘路径
Media
├── Movies #电影文件夹
├── Music #音乐文件夹
└── TV #电视文件夹
#本地路径
mnt
├──local
| └── Media #存储在本地的媒体文件
├──remote
| └── Media #存储在Google Drive的媒体文件
└──unionfs
└── Media #Plex,Sonarr和Radarr在扫描媒体时读取的文件夹。
Google Drive
上的文件夹需要我们自己建立,具体参考→传送门。
这里会定期检本地local
路径的大小(默认为30
分钟)。当文件夹大小达到其目标(默认为200GB
)时,媒体文件将被移出/上传到云端,从而释放本地磁盘空间。
这里的默认阈值是可以修改的,编辑配置文件:
代码语言:javascript复制sudo nano /opt/cloudplow/config.json
检查时间间隔和默认值大致参数如下:
代码语言:javascript复制"uploader": {
"google": {
"check_interval": 30,
"exclude_open_files": true,
"max_size_gb": 200,
"opened_excludes": [
"/downloads/"
],
"size_excludes": [
"downloads/*"
]
}
check_interval
为时间间隔(默认分钟),max_size_gb
为大小(默认G
),建议最低2G
。更多参数配置参考→传送门。
最后重启生效:
代码语言:javascript复制sudo systemctl restart cloudplow
1、配置Rclone
这里Rclone
的作用大概就是将备份/媒体文件上传至Google Drive
,使用命令:
rclone config
name
那里需要命名google
,具体过程查看→传送门。
2、配置Plexdrive
Plexdrive
的作用就是让Plex
从Google Drive
读取媒体文件,利用缓存加快读取和减少api
使用,先获取谷歌API
凭据,获取步骤参考→传送门,然后使用命令:
#先替换之前的plexdrive二进制,不然后面有个参数会不支持
wget https://github.com/dweidenfeld/plexdrive/releases/download/5.0.0/plexdrive-linux-amd64
mv plexdrive-linux-amd64 /opt/plexdrive4/plexdrive
chmod x /opt/plexdrive4/plexdrive
#挂载配置
sudo /opt/plexdrive4/plexdrive mount -v 3 --refresh-interval=1m --chunk-check-threads=8 --chunk-load-threads=8 --chunk-load-ahead=4 --max-chunks=100 --fuse-options=allow_other,read_only --config=/opt/plexdrive4 --cache-file=/opt/plexdrive4/cache.bolt /mnt/remote
然后会要你输入客户端ID
和密匙,再打开获取到的链接绑定账号后,将自己获取到的code
复制到SSH
客户端确定即可。
新建一个Systemd
配置文件,使用命令:
sudo nano /etc/systemd/system/plexdrive.service
先修改下面的用户和用户组,然后一起复制进去。
代码语言:javascript复制[Unit]
Description=Plexdrive Mount
After=network-online.target mongodb.service
[Service]
User=moerats
Group=moerats
Type=simple
ExecStartPre=/bin/sleep 10
ExecStart=/opt/plexdrive4/plexdrive mount
--refresh-interval=1m
--chunk-size=16m
--fuse-options=allow_other,read_only
--config=/opt/plexdrive4
--chunk-check-threads=4
--chunk-load-threads=4
--chunk-load-ahead=4
--max-chunks=20
-v 3
/mnt/remote
ExecStop=/bin/fusermount -uz /mnt/remote
Restart=always
RestartSec=5
[Install]
WantedBy=default.target
再使用Ctrl x
、y
保存退出。
启动:
代码语言:javascript复制sudo systemctl start plexdrive
配置开机自启:
代码语言:javascript复制sudo systemctl enable plexdrive
查看状态:
代码语言:javascript复制sudo systemctl status plexdrive
显示Active:active(running)
即为成功。
最后其它应用程序使用可以直接看Github
,写的很详细了,地址参考:
NZBGet:https://github.com/Cloudbox/Cloudbox/wiki/Install:-NZBGet
ruTorrent:https://github.com/Cloudbox/Cloudbox/wiki/Install:-ruTorrent
NZBHydra2:https://github.com/Cloudbox/Cloudbox/wiki/Install:-NZBHydra2
Jackett:https://github.com/Cloudbox/Cloudbox/wiki/Install:-Jackett
Plex Media Server:https://github.com/Cloudbox/Cloudbox/wiki/Install:-Plex-Media-Server
Plex Autoscan:https://github.com/Cloudbox/Cloudbox/wiki/Install:-Plex-Autoscan
Sonarr:https://github.com/Cloudbox/Cloudbox/wiki/Install:-Sonarr
Radarr:https://github.com/Cloudbox/Cloudbox/wiki/Install:-Radarr
PlexPy(Tautulli):https://github.com/Cloudbox/Cloudbox/wiki/Install:-PlexPy-(Tautulli)
Ombi:https://github.com/Cloudbox/Cloudbox/wiki/Install:-Ombi
Portainer:https://github.com/Cloudbox/Cloudbox/wiki/Install:-Portainer
Organizr:https://github.com/Cloudbox/Cloudbox/wiki/Install:-Organizr
Emby:https://github.com/Cloudbox/Cloudbox/wiki/Extras:-Emby
Nextcloud:https://github.com/Cloudbox/Cloudbox/wiki/Extras:-Nextcloud
Resilio Sync:https://github.com/Cloudbox/Cloudbox/wiki/Extras:-Resilio-Sync
Plex Dupefinder:https://github.com/Cloudbox/Cloudbox/wiki/Extras:-Plex-Dupefinder
Heimdall:https://github.com/Cloudbox/Cloudbox/wiki/Extras:-Heimdall
NZBHydra v1:https://github.com/Cloudbox/Cloudbox/wiki/Extras:-NZBHydra
Plex Requests:https://github.com/Cloudbox/Cloudbox/wiki/Extras:-Plex-Requests
Sickbeard MP4 Automator:https://github.com/Cloudbox/Cloudbox/wiki/Extra:-Sickbeard-MP4-Automator
这里有几个不是很了解,全部应用一起用起来很懵逼,脑壳大,只能用上部分应用,最后有兴趣的可以自己研究下,没兴趣的就当有这个牛逼项目存在就好了。