如何在Ubuntu 16.04、18.04服务器上安装Plex请求
本教程将向您展示如何在Ubuntu 16.04和Ubuntu 18.04服务器上安装Plex请求。 Plex请求是用户在Plex媒体服务器上请求新内容的一种简单的自动化方法。
Plex请求允许您的用户在专用网页上提交内容请求。 最新版本是v1.21.2,于2018年2月16日发布。Plex请求的功能如下:
- 用户可以轻松地在TheMovieDB中搜索要请求的内容
- 方便的电影和电视剧列表以及基本问题报告
- 使用新的批准系统进行简单的用户身份验证
- CouchPotato集成可自动下载电影
- SickRage和Sonarr集成,可自动下载电视连续剧
- Pushbullet或Pushover通知可保持最新的请求
先决条件
要遵循本教程,假定您已经在Ubuntu 16.04或Ubuntu 18.04上设置了Plex媒体服务器。 您可以查看以下文章。
- 如何在Ubuntu 16.04上设置Plex媒体服务器
- 如何在Ubuntu 18.04上设置Plex媒体服务器
要运行Plex请求,您的服务器必须至少具有1GB的RAM。 建议使用2GB以便平稳运行。 事不宜迟,让我们安装Plex Requests。
在Ubuntu 16.04、18.04服务器上安装Plex请求
Plex Requests是用MeteorJS编写的,MeteorJS是一个免费的开源JavaScript Web框架,用于构建Web和移动应用程序。 要运行Plex请求,我们需要使用以下命令安装MeteorJS。
sudo apt install curl curl https://install.meteor.com/ | sh
然后转到Github并下载最新版本。
要从命令行下载它,请使用以下命令。 如果出现新版本,只需用新版本号替换1.12.2。
wget -O plexrequests-meteor-1.21.2.zip https://codeload.github.com/lokenx/plexrequests-meteor/zip/v1.21.2
接下来,解压缩存档。
sudo apt install unzip unzip plexrequests-meteor-1.21.2.zip
将CD放入目录。
cd plexrequests-meteor-1.21.2/
现在,我们可以使用以下命令运行Plex请求。
meteor
请注意,如果您的服务器没有足够的RAM,此命令将失败,并且您将看到以下错误。 ENOMEM代表“错误–没有内存”。
Error: spawn ENOMEM
另外,默认情况下,Plex请求在端口3000上侦听。如果另一个应用程序正在使用端口3000,则指定备用端口,例如3002。(MongoDB在端口3001上侦听。)
meteor --port 3002
现在,您可以访问Plex请求管理页面
your-server-ip:3000/admin
如果端口3000被防火墙阻止,请运行以下命令以允许访问端口3000。
sudo iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
单击注册链接以创建一个管理员帐户。
使用SystemD在后台运行Plex请求
默认情况下,meteor命令在前台运行,这意味着如果退出终端,Plex请求将停止运行。 要在后台运行它,我们可以创建一个SystemD服务。 首先,按 Ctrl+C
停止当前的流星过程。 然后使用命令行文本编辑器(例如nano)为Plex请求创建SystemD服务文件。
sudo nano /etc/systemd/system/plex-requests.service
在此文件中,我们需要设置HOME环境变量,设置工作目录并指定流星将以标准用户身份运行。 因此,将以下文本放入此文件中。 适当替换红色文本。
[Unit] Description=Plex Requests After=syslog.target network.target [Service] Environment="HOME=/home/linuxbabe" WorkingDirectory=/home/linuxbabe/plexrequests-meteor-1.21.2 ExecStart=/usr/local/bin/meteor Type=simple Restart=always RestartSec=10 User=linuxbabe Group=linuxbabe [Install] WantedBy=multi-user.target
要在Nano文本编辑器中保存文件,请按 Ctrl+O
,然后按Enter确认。 要退出,请按 Ctrl+X
。 接下来,我们可以使用以下命令启动SystemD服务:
sudo systemctl start plex-requests
并在系统启动时启用自动启动。
sudo systemctl enable plex-requests
现在检查状态:
systemctl status plex-requests
确保它正在运行。 然后按 q
获得对终端的控制权。
设置Nginx反向代理(子域)
要通过域名访问Plex请求而不是输入IP地址和端口号,可以使用Nginx设置反向代理。 运行以下命令安装Nginx Web服务器。
sudo apt install nginx
然后为Plex请求创建一个Nginx虚拟主机文件。
sudo nano /etc/nginx/conf.d/plex-requests.conf
将以下行放入文件中。 更换 requests.example.com
用您自己的域名。 不要忘记为子域设置A记录。 的 location / {…}
阻止将使Nginx重定向请求到端口3000。
server { listen 80; server_name requests.example.com; error_log /var/log/nginx/plex-requests.error; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #upgrade to WebSocket protocol proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } }
保存并关闭文件。 然后测试Nginx配置。
sudo nginx -t
如果测试成功,则重新加载Nginx以使新配置生效。
sudo systemctl reload nginx
现在,Plex Requests被放置在Nginx后面,您可以通过域名访问它(requests.example.com
)。
要启用HTTPS安全连接,您可以从Let’s Encrypt获取并安装免费的TLS / SSL证书。 使用以下命令安装Let’s Encrypt(certbot)客户端:
sudo apt install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt update sudo apt install certbot python3-certbot-nginx
然后发出以下命令,该命令使用Certbot Nginx插件自动获取并安装TLS证书。 将红色文本替换为您的实际数据。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email your-email-address --domain requests.example.com
在几秒钟之内,您应该看到如下所示的祝贺消息,这表示证书已成功获得。
刷新“ Plex请求”网页,您会发现HTTP连接自动重定向到HTTPS安全连接。
设置Nginx反向代理(子目录)
如果要通过域的子目录访问Plex请求,请打开Plex媒体服务器的现有Nginx虚拟主机文件。 我的名字叫 plex.conf
。
sudo nano /etc/nginx/conf.d/plex.conf
如果您遵循了我之前的Plex介质服务器教程,那么现在应该为Plex介质服务器启用HTTPS。 并且您只需要向SSL服务器块添加以下行(由 listen 443 ssl
)。
location ~* (/search|/admin|/requests|/packages|/sockjs|/app|/merged-stylesheets.css) { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; }
在上述配置中,我们指定如果请求URL以/ search,/ admin,/ requests,/ packages,/ sockjs,/ app或/merged-stylesheets.css结尾,则告诉Nginx将请求重定向到端口3000。如果请求URL以/ sockjs结尾,则将有一些WebSocket请求以及正常的HTTP请求,因此我们将最后两个添加 proxy_set_header
指令升级到WebSocket协议。
保存并关闭文件。 然后测试Nginx配置。
sudo nginx -t
如果测试成功,则重新加载Nginx以使新配置生效。
sudo systemctl reload nginx
现在,可以通过子目录访问“ Plex请求”主网页。
example.com/search
管理员页面可通过以下方式访问
example.com/admin
设置Apache反向代理(子域)
如果您更喜欢Nginx而不是Apache,请使用以下命令进行安装:
sudo apt install apache2
要将Apache用作反向代理,我们需要启用 proxy
模块和标头模块。
sudo a2enmod proxy proxy_http proxy_wstunnel headers
然后为Plex请求创建一个虚拟主机文件。
sudo nano /etc/apache2/sites-available/plex-requests.conf
将以下行放入文件中。 更换 requests.example.com
用您自己的域名。 不要忘记为子域设置A记录。
<VirtualHost *:80> ServerName requests.example.com ErrorDocument 404 /404.html #HTTP Requests ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ #When protocol upgrade to Websocket is received, change the origin (protocol scheme, host and port) RewriteEngine on RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC] RewriteRule .* ws://localhost:3000%{REQUEST_URI} [P] </VirtualHost>
保存并关闭文件。 然后启用此虚拟主机。
sudo a2ensite plex-requests.conf
重新启动Apache
sudo systemctl restart apache2
现在,Plex Requests被放置在Apache后面,您可以通过域名访问它(requests.example.com
)。
要启用HTTPS安全连接,您可以从Let’s Encrypt获取并安装免费的TLS / SSL证书。 使用以下命令安装Let’s Encrypt(certbot)客户端:
sudo apt install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt update sudo apt install certbot python3-certbot-apache
然后发出以下命令,该命令使用Certbot Nginx插件自动获取并安装TLS证书。 将红色文本替换为您的实际数据。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email your-email-address --domain requests.example.com
在几秒钟之内,您应该看到如下所示的祝贺消息,这表示证书已成功获得。
刷新“ Plex请求”网页,您会发现HTTP连接自动重定向到HTTPS安全连接。
设置Apache反向代理(子目录)
如果要通过域的子目录访问Plex请求,请打开Plex媒体服务器的现有Apache虚拟主机文件。 我的名字叫 plex-le-ssl.conf
。 (请注意,您需要编辑在443上侦听的虚拟主机。)
sudo nano /etc/nginx/conf.d/plex-le-ssl.conf
如果您遵循了我之前的Plex介质服务器教程,那么现在应该为Plex介质服务器启用HTTPS。 您只需要在 <VirtualHost *:443>...</VirtualHost>
块。
RewriteEngine on #If the requested URL is meant for Plex Requests, then redirect the request to localhost:3000 RewriteCond %{REQUEST_URI} ^/(search|admin|requests|packages|app|sockjs|merged-stylesheets.css) [NC] RewriteRule .* http://localhost:3000%{REQUEST_URI} [P] #This is for Websocket requests. <Location /sockjs/> RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC] RewriteRule .* ws://localhost:3000%{REQUEST_URI} [P] </Location>
保存并关闭文件。 然后重新加载Apache以使更改生效。
sudo systemctl reload apache2
现在,可以通过子目录访问“ Plex请求”主网页。
example.com/search
管理员页面可通过以下方式访问
example.com/admin
结论
我希望本教程可以帮助您在Ubuntu 18.04和16.04上安装Plex请求。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取更多提示和技巧。 保重🙂