Cloudbox:一个强大的多功能云媒体服务,可自动获取视频资源并在线播放

说明:最近发现了一个很强的多媒体项目Cloudbox,差不多是一个基于Docker的盒子,基本上里面所有的应用都是为多媒体打造,包括自动搜索影视、下载、播放等等,常见的应用包括Plex/EmbyRclone/PlexdriveruTorrentNextcloudResilio Sync,然后还有一大批不常见但很有用的应用,接下来都会大概介绍下,不然用起来很麻烦,博主只是大概的看了下。

Cloudbox又分为Mediabox(多媒体服务)、Feederbox(下载服务),你可以在一台服务器上部署完整的Cloudbox,这样会使用所有的应用,也可以在2台服务器上分别部署MediaboxFeederbox,然后分工一起配合使用,这些具体会安装以下应用:

#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 

大概介绍下应用:

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 DriveCloudbox也是只建议使用Gdrive网盘,如果你没有无限空间的Gdrive,可以查看该文章免费申请一个→传送门

Cloudbox运作过程

Cloudbox通过Sonarr下载您最喜爱的电视节目,Radarr下载您喜爱的电影。两者都使用Usenet(通过NZBGet)和/或Torrent(通过ruTorrent)来完成。

下载完成后,SonarrRadarr会将这些下载内容移至服务器的/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.0418.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、编辑配置文件

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: [email protected] cloudflare_api_token: 4993d7315d #plex用户名和密码 plex:   user:    pass:  #pushover为推送应用,这个如果你觉得配置麻烦,可以留空,不影响安装 pushover:   app_token: ap36cqsi5w   user_key: u2wtotir3   priority: 1 

这里的pushover起到推送作用,就是一般在下载完成,备份完成等一些操作会自动推送给你,有安卓/IOS/桌面端,具体使用查看→传送门,这里的tokenkey貌似好填,这里只说下priority参数为通知优先级,不会设置的,建议设置为1,也就是高优先级,如果你希望你不要错过推送消息,那就设置2,不过2会一直打扰你,直到你点开消息为止。

4、安装

#安装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 

其它可选安装:

#安装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)时,媒体文件将被移出/上传到云端,从而释放本地磁盘空间。

这里的默认阈值是可以修改的,编辑配置文件:

sudo nano /opt/cloudplow/config.json

检查时间间隔和默认值大致参数如下:

"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。更多参数配置参考→传送门

最后重启生效:

sudo systemctl restart cloudplow 

1、配置Rclone
这里Rclone的作用大概就是将备份/媒体文件上传至Google Drive,使用命令:

rclone config

name那里需要命名google,具体过程查看→传送门

2、配置Plexdrive
Plexdrive的作用就是让PlexGoogle 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

先修改下面的用户和用户组,然后一起复制进去。

[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+xy保存退出。

启动:

sudo systemctl start plexdrive

配置开机自启:

sudo systemctl enable plexdrive

查看状态:

sudo systemctl status plexdrive

显示Active:active(running)即为成功。

最后其它应用程序使用可以直接看Github,写的很详细了,地址参考:

NZBGet:https://github.com/Cloudbox/Cloudbox/wiki/Install%3A-NZBGet ruTorrent:https://github.com/Cloudbox/Cloudbox/wiki/Install%3A-ruTorrent NZBHydra2:https://github.com/Cloudbox/Cloudbox/wiki/Install%3A-NZBHydra2 Jackett:https://github.com/Cloudbox/Cloudbox/wiki/Install%3A-Jackett Plex Media Server:https://github.com/Cloudbox/Cloudbox/wiki/Install%3A-Plex-Media-Server Plex Autoscan:https://github.com/Cloudbox/Cloudbox/wiki/Install%3A-Plex-Autoscan Sonarr:https://github.com/Cloudbox/Cloudbox/wiki/Install%3A-Sonarr Radarr:https://github.com/Cloudbox/Cloudbox/wiki/Install%3A-Radarr PlexPy(Tautulli):https://github.com/Cloudbox/Cloudbox/wiki/Install%3A-PlexPy-%28Tautulli%29 Ombi:https://github.com/Cloudbox/Cloudbox/wiki/Install%3A-Ombi Portainer:https://github.com/Cloudbox/Cloudbox/wiki/Install%3A-Portainer Organizr:https://github.com/Cloudbox/Cloudbox/wiki/Install%3A-Organizr Emby:https://github.com/Cloudbox/Cloudbox/wiki/Extras%3A-Emby Nextcloud:https://github.com/Cloudbox/Cloudbox/wiki/Extras%3A-Nextcloud Resilio Sync:https://github.com/Cloudbox/Cloudbox/wiki/Extras%3A-Resilio-Sync Plex Dupefinder:https://github.com/Cloudbox/Cloudbox/wiki/Extras%3A-Plex-Dupefinder Heimdall:https://github.com/Cloudbox/Cloudbox/wiki/Extras%3A-Heimdall NZBHydra v1:https://github.com/Cloudbox/Cloudbox/wiki/Extras%3A-NZBHydra Plex Requests:https://github.com/Cloudbox/Cloudbox/wiki/Extras%3A-Plex-Requests Sickbeard MP4 Automator:https://github.com/Cloudbox/Cloudbox/wiki/Extra%3A-Sickbeard-MP4-Automator 

这里有几个不是很了解,全部应用一起用起来很懵逼,脑壳大,只能用上部分应用,最后有兴趣的可以自己研究下,没兴趣的就当有这个牛逼项目存在就好了。

相关教程


评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注