如何在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

在Ubuntu 16.04 18.04上安装meteorjs

然后转到Github并下载最新版本。

plex请求流星

要从命令行下载它,请使用以下命令。 如果出现新版本,只需用新版本号替换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请求流星端口3000

现在,您可以访问Plex请求管理页面

your-server-ip:3000/admin

如果端口3000被防火墙阻止,请运行以下命令以允许访问端口3000。

sudo iptables -I INPUT -p tcp --dport 3000 -j ACCEPT

plex请求创建管理员帐户
单击注册链接以创建一个管理员帐户。

Plex请求禁止登录

使用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 获得对终端的控制权。

流星丛请求systemd在后台运行

设置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请求certbot

刷新“ 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请求certbot

刷新“ 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请求。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取更多提示和技巧。 保重🙂

Sidebar