aria2+AriaNG+Plex+Syncthing搭建自己的媒体中心

您所在的位置:网站首页 ariang搭建 aria2+AriaNG+Plex+Syncthing搭建自己的媒体中心

aria2+AriaNG+Plex+Syncthing搭建自己的媒体中心

2024-07-17 10:50| 来源: 网络整理| 查看: 265

关于aria2+Plex的上一篇文章竟然有不少人看,不过那篇写得比较早,有很多需要更新的地方,本着懒得一处一处修改与时俱进的原则,我决定再水一篇。本篇基于Ubuntu 18.04,如果你需要CentOS6和7的教程,请参考上一篇。

本篇基于同样的服务器结构,即VPS-A(抗DMCA,作为下载服务器)+VPS-B(大硬盘,性能和网络较好,作为媒体服务器),通过Syncthing同步。

首先,请确保你的域名已经解析到对应IP。另外这里涉及到很多权限问题,因为每台VPS的用户配置不一样,如果报权限错误请自行解决,或者全部用root运行

需要开放的端口:

VPS-A:80(http),443(https),6800(aria2),8384(Syncthing)

VPS-B:80(http),443(https),8384(Syncthing),32400(Plex Media Server)

VPS-A:安装aria2

首先保证服务器已经打开6800端口,否则之后会出现连接服务端失败。

Ubuntu18.04软件源中包含aria2,直接安装即可:

$ sudo apt install aria2

添加aria2的配置文件,使用Toyo的版本,这里目录是/home/ubuntu/.aria2,你可以自行修改:

$ mkdir /home/ubuntu/.aria2$ cd /home/ubuntu/.aria2$ wget --no-check-certificate -N "https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/other/Aria2/aria2.conf"$ wget --no-check-certificate -N "https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/other/Aria2/dht.dat"$ touch aria2.session

之后需要编辑aria2.conf,修改以下部分,其中保存目录和rpc-token自定,证书目录不可更改,[domain]自行替换为你的域名:

# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置 dir=/var/www/[domain] # 从会话文件中读取下载任务 input-file=/home/ubuntu/.aria2/aria2.session # 在Aria2退出时保存`错误/未完成`的下载任务到会话文件 save-session=/home/ubuntu/.aria2/aria2.session # 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项 rpc-secret=[rpc-token] # 是否启用 RPC 服务的 SSL/TLS 加密, # 启用加密后 RPC 服务需要使用 https 或者 wss 协议连接 rpc-secure=true # 在 RPC 服务中启用 SSL/TLS 加密时的证书文件(.pem/.crt) rpc-certificate=/etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/[domain]/[domain].crt # 在 RPC 服务中启用 SSL/TLS 加密时的私钥文件(.key) rpc-private-key=/etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/[domain]/[domain].key

至于证书为什么用这么一个奇葩的目录,因为这是Caddy默认的证书目录,我们可以直使用Let's Encrypt的证书,从而避免自签证书不信任的问题。

然后修改/etc/systemd/system/aria2.service,让它读取这个配置,把ExecStart一行改为:

ExecStart=/usr/bin/aria2c --conf-path=/home/ubuntu/.aria2/aria2.conf --daemon VPS-A:安装Caddy

Caddy的filemanager模块已经改名为filebrowser,filemanager已从caddy仓库移除,所以使用老命令会报错,这里使用Caddy官方的脚本:

$ curl https://getcaddy.com | bash -s personal http.filebrowser $ curl https://getcaddy.com | bash -s personal $ sudo mkdir /etc/caddy && sudo mkdir /var/www && sudo mkdir /etc/ssl/caddy $ sudo touch /etc/caddy/Caddyfile $ sudo touch /etc/caddy/filebrowser.db $ sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service

官方的service文件保护掉了/etc/caddy和/var/www,需要修改一下,编辑/etc/systemd/system/caddy.service,在ReadWriteDirectories那里额外加入两行:

ReadWriteDirectories=/etc/caddy ReadWriteDirectories=/var/www

下面建立虚拟主机,首先请建好对应目录,例如这里是/var/www/[domain],假设domain是下载页面,domain2是文件管理(非必须,你可以用终端管理),filebrowser插件已从caddy官方库移除,故删除了相关配置,需要安装请参看下一段。编辑/etc/caddy/Caddyfile:

https://[domain] { root /var/www/[domain] timeouts none gzip }

启动Caddy和aria2:

$ sudo systemctl daemon-reload && sudo systemctl enable caddy && sudo systemctl start caddy && sudo systemctl enable aria2 && sudo systemctl start aria2 VPS-A:安装Filebrowser(可选)

filebrowser组件已经从Caddy官方库移除,现在只能独立安装,如果你没有在web管理文件的需求,可以不装,这里使用官方脚本:

$ curl -fsSL https://filebrowser.xyz/get.sh | bash

运行的命令是(只包含常用参数,更多请参看官方文档)

$ filebrowser -r -a -d

使用nohup或者systemd让它保持后台,默认监听的是8080端口,如果要https,用Caddy反代一下这个端口就行,这里不细讲了。

VPS-A:安装AriaNG

为什么不用YAAW呢?因为AriaNG好看。当然AriaNG不支持aria2老版的user/password模式,如果需要请使用YAAW。另外你也可以使用别人已经搭建好的面板,例如aria2c,不过我倾向于自己搭一个,反正也不复杂。

AriaNG目前更到了1.0.1版,并且出了单文件版AllInOne:

$ cd /var/www/[domain]$ wget https://github.com/mayswind/AriaNg/releases/download/1.0.1/AriaNg-1.0.1-AllInOne.zip$ unzip AriaNg-1.0.1-AllInOne.zip

然后重启一下Caddy就可以访问面板了,按照上面的配置会自动全程https,记得设置rpc-token,否则无法连接后端的,正常访问的页面是这个样子的:

VPS-A&B:安装Syncthing

Syncthing也已经出到了1.0.1,可以直接去官网下载安装,或者添加官方源使用apt安装,这里使用稳定源:

$ curl -s https://syncthing.net/release-key.txt | sudo apt-key add -$ echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list$ sudo apt update$ sudo apt install syncthing

首先启动一次,让它建立配置文件,下面的[user]改成你希望使用的用户:

$ sudo systemctl enable syncthing@[user]$ sudo systemctl start syncthing@[user]

然后编辑~/.config/syncthing/config.xml,把 127.0.0.1:8384 改成 0.0.0.0:8384,这样才可以通过外网访问,之后重启Syncthing,应该就能在IP:8384访问到Syncthing面板了。

至于https,Syncthing的设置里可以使用自签证书,不过浏览器会报错,需要加白名单,要么可以使用Caddy反代,配置如下:

https://[domain] { gzip proxy / localhost:8384 basicauth / [user] [passwd] }

这里使用的basicauth来阻止未授权的访问,如果启用此选项,请不要在Syncthing的设置里启用密码,否则会报错。

剩下在网页面板配置即可,Syncthing现在已经可以自动监控修改或者定时扫描(自动监控在下载过程中会如何处理我未测试),并且0.14.50版本加入了仅发送和仅接收选项,可以实现单向同步,那么即使VPS-A的硬盘不大也没关系了,同步完成之后删除文件即可。

VPS-B:安装Plex Media Server

请根据自己设备的类型到官网自行下载安装PMS软件包,不赘述。

之后使用隧道连接ssh,source为localhost:12345,destination为localhost:32400,浏览器打开http://localhost:12345/web,登陆Plex账号,认领服务器,新版PMS已经配置好远程访问,认领以后就可以用plex.tv访问了,效果如下(老图,新版外观有微小不同,不过基本是一回事啦):

PMS已实现自动扫描(需要改一下设置),最终的效果:在AriaNG添加下载任务,下载完成自动同步到VPS-B,PMS自动扫描并匹配信息,在Plex客户端或者网页端直接观看。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3