GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04LTSサーバー/デスクトップにJellyfinメディアサーバーをインストールする方法

このチュートリアルでは、Ubuntu20.04LTSサーバー/デスクトップにJellyfinメディアサーバーをインストールする方法を説明します。 Jellyfinは無料のオープンソースアプリケーションで、映画、テレビ番組、音楽、写真を1つの美しいインターフェースで整理し、それらのメディアファイルをPC、タブレット、電話、テレビ、Rokuなどのネットワークまたはネットワーク上でストリーミングできます。インターネット。 Jellyfinは、Linux、MacOS、およびWindowsにインストールできます。

Jellyfinの機能

Jellyfinは、Embyメディアサーバーからのフォークです。 PlexやEmbyと同じ機能がたくさん詰まっています。

  • PlexやEmbyとは異なり、Jellyfinは100%無料でオープンソースです。広告なし。モバイルアプリには再生制限はありません。 (iOSアプリはバックグラウンドで動画を再生できませんが。)
  • ライブTVを視聴し、自動録画を設定してライブラリを拡張します。
  • TheTVDB、TheMovieDB、OpenMovie Database、Rotten Tomatoesからアートワーク、メタデータを自動的に取得します。
  • DLNAをサポートします。
  • オプションのプラグインをインストールして、追加機能を提供できます。
  • FFMpegを使用したビデオのエンコード/デコードのハードウェアアクセラレーションをサポートします。
  • その他。

Ubuntu20.04にJellyfinMediaServerをインストールする

JellyfinはデフォルトのUbuntuリポジトリには含まれていませんが、独自のリポジトリがあります。次のコマンドを実行して、JellyfinリポジトリをUbuntuシステムに追加します。

echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/jellyfin.list

次に、次のコマンドを実行してJeffyfin GPGキーをUbuntuシステムにインポートし、APTがインストール中にパッケージの整合性を検証できるようにします。

wget -O - https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo apt-key add -

また、このリポジトリはHTTPS接続を使用しているため、 apt-transport-httpsもインストールする必要があります。 およびca-certificates パッケージ。

sudo apt install apt-transport-https ca-certificates

最後に、Ubuntuシステムのパッケージインデックスを更新し、Jellyfinをインストールします。

sudo apt update

sudo apt install jellyfin

このコマンドは、依存関係として他の3つのパッケージもインストールします:

  • jellyfin-ffmpeg :ビデオトランスコーディング用。
  • jellyfin-server :バックエンドサーバー。
  • jellyfin-web :フロントエンドWebインターフェイス。

これでJellyfinメディアサーバーがインストールされました。次の方法でステータスを確認できます。

systemctl status jellyfin

ご覧のとおり、Ubuntu20.04システムで実行されています。 ( qを押します ターミナルの制御を取り戻すためのキー。)

Jellyfinメディアサーバーが実行されていない場合は、次のコマンドで開始できます。

sudo systemctl start jellyfin

JellyfinMediaServerの初期設定

Webベースの管理インターフェイスはポート8096で利用できます。次のURLを介してJellyfinWebインターフェイスにアクセスできます。

http://127.0.0.1:8096/web

JellyfinをリモートUbuntuサーバーにインストールした場合、Web UIにアクセスするには、NginxまたはApacheでリバースプロキシを設定する必要があります。これについては、このチュートリアルの後半で説明します。

最初のステップは、好みの言語を選択することです。

次の画面で、ユーザーアカウントを作成します。

これで、ライブラリを追加できます。 メディアライブラリの追加をクリックします ボタン。

コンテンツタイプを選択します (映画、音楽、テレビ番組など)と表示名。

次に、プラス(+)をクリックします ボタンをクリックして、コンテンツのフォルダを選択します。

jellyfinに注意してください ユーザーは、メディアディレクトリに対する読み取りおよび実行権限を持っている必要があります。たとえば、私の2T外付けハードドライブは / media / linuxbabe /の下にマウントされています 、rootが所有しています。グループrootに属していないユーザー アクセスできないので、次のコマンドを実行してユーザーに jellyfinを指定します 読み取りおよび実行権限。 ( chownで所有権を変更することはお勧めしません またはchgrp 指図。 setfaclを使用する コマンドで十分です。)

sudo setfacl -m u:jellyfin:rx /media/linuxbabe/

以下のように、個々のメディアディレクトリに権限を割り当てる必要がある場合もあります。

sudo setfacl -m u:jellyfin:rx /media/linuxbabe/directory-name

再帰フラグ( -R )を追加したくなるかもしれません。 )、 jellyfinを提供します ドライブ上のすべてのファイルとサブディレクトリに対する読み取りと実行のアクセス許可。

sudo setfacl -R -m u:jellyfin:rx /media/linuxbabe/

外付けハードドライブがメディアファイルの保存にのみ使用されている場合はそうすることができますが、外付けハードドライブに機密ファイルがある場合は使用しないでください。

メディアフォルダの追加が完了したら、ライブラリ設定を構成できます。言語、国などを選択してください。

OKをクリックします およびNext ボタン。後でいつでもライブラリを追加できます。次の手順では、リモートアクセスを有効にするかどうかを選択できます。 HTTPS暗号化が提供されていないため、ネイティブリモートアクセス方法を有効にすることはお勧めしません。両方のチェックボックスをオフにしてください。リモートアクセスが必要な場合は、この記事の後半でリバースプロキシを設定する方法をお読みください。

次へをクリックします およびFinish ボタン。最後に、Jellyfinアカウントにログインします。

初期設定をやり直す

初期設定を間違えた場合は、最初からやり直すことができます。まず、Jellyfin構成ファイルを編集します。

sudo nano /etc/jellyfin/system.xml

変更

<IsStartupWizardCompleted>true</IsStartupWizardCompleted>

<IsStartupWizardCompleted>false</IsStartupWizardCompleted>

ファイルを保存して閉じます。次に、Jellyfinを再起動します。

sudo systemctl restart jellyfin

次に、 localhost:8096 / webにアクセスします セットアップウィザードが再び表示されます。

映画やテレビ番組をダウンロードする場所

  1. Delugeのような急流のクライアントを使用します。
  2. Usenetからダウンロードする方法を学びます。

Usenetの利点

  1. ダウンロードしているものを他の人が見ることができないため、プライバシーが向上します。
  2. 超高速のダウンロード速度。
  3. Usenet上のファイルは通常、トレントファイルよりもはるかに長く保持されます。たとえば、Newsdemonはファイルを4430日間(12年以上)保存するため、古いコンテンツを非常に高速にダウンロードできます。

リバースプロキシの設定

127.0.0.1:8096でリッスンしているので 、Jellyfin Webインターフェイスは、同じコンピューターからの接続でのみ使用できます。リモートコンピューターからJellyfinWebインターフェイスにアクセスできるようにするために、NginxまたはApacheを使用してJellyfinのリバースプロキシを設定できます。

Nginx

Nginxは、非常に人気のあるWebサーバーおよびリバースプロキシです。 Nginxを使用する場合は、次のコマンドを実行してインストールします。

sudo apt install nginx

次に、Jellyfinのサーバーブロックファイルを作成します。

sudo nano /etc/nginx/conf.d/jellyfin.conf

このファイルに次のコンテンツを追加します。 jellyfin.example.comを置き換えます あなた自身のドメイン名で。このサブドメインのDNSAレコードも作成する必要があります。実際のドメイン名をお持ちでない場合は、NameCheapにアクセスして購入することをお勧めします。価格は安く、whoisのプライバシー保護は一生無料です。

server {
      listen 80;
      listen [::]:80;
      server_name jellyfin.example.com;

      access_log /var/log/nginx/jellyfin.access;
      error_log /var/log/nginx/jellyfin.error;

      set $jellyfin 127.0.0.1;

      location / {
          proxy_pass http://127.0.0.1:8096;
          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 X-Forwarded-Proto $scheme;
          proxy_set_header X-Forwarded-Protocol $scheme;
          proxy_set_header X-Forwarded-Host $http_host;

          # Disable buffering when the nginx proxy gets very resource heavy upon streaming
          proxy_buffering off;
      }

      # location block for /web - This is purely for aesthetics so /web/#!/ works instead of having to go to /web/index.html/#!/
      location ~ ^/web/$ {
          # Proxy main Jellyfin traffic
          proxy_pass http://$jellyfin:8096/web/index.html/;
          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 X-Forwarded-Proto $scheme;
          proxy_set_header X-Forwarded-Protocol $scheme;
          proxy_set_header X-Forwarded-Host $http_host;
      }

      location /socket {
          # Proxy Jellyfin Websockets traffic
          proxy_pass http://$127.0.0.1:8096;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";
          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 X-Forwarded-Proto $scheme;
          proxy_set_header X-Forwarded-Protocol $scheme;
          proxy_set_header X-Forwarded-Host $http_host;
      }

        # Security / XSS Mitigation Headers
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Content-Type-Options "nosniff";

}

このファイルを保存して閉じます。次に、Nginx構成をテストします。

sudo nginx -t

テストが成功した場合は、変更を有効にするためにNginxをリロードします。

sudo systemctl reload nginx

これで、 jellyfin.example.comを介してJellyfinメディアサーバーにアクセスできます。 。

Apache

NginxよりもApacheを使用する場合は、次のコマンドを使用してApacheWebサーバーをインストールします。

sudo apt install apache2

Apacheをリバースプロキシとして使用するには、 proxyを有効にする必要があります モジュールとヘッダーモジュール。

sudo a2enmod proxy proxy_http headers proxy_wstunnel

次に、Jellyfinの仮想ホストファイルを作成します。

sudo nano /etc/apache2/sites-available/jellyfin.conf

次の構成をファイルに入れます。 jellyfin.example.comを置き換えます 実際のドメイン名で。このサブドメインのDNSAレコードを作成することを忘れないでください。実際のドメイン名をお持ちでない場合は、NameCheapにアクセスして購入することをお勧めします。価格は安く、whoisのプライバシー保護は一生無料です。

<VirtualHost *:80>
   ServerName jellyfin.example.com
   ErrorDocument 404 /404.html

   #HTTP proxy
   ProxyPass / http://localhost:8096/
   ProxyPassReverse / http://localhost:8096/

   #Websocket proxy
   SSLProxyEngine on
   <Location /:/websockets/notifications>
        ProxyPass wss://localhost:8096/:/websockets/notifications
        ProxyPassReverse wss://localhost:8096/:/websockets/notifications
   </Location>

   Header always unset X-Frame-Options
</VirtualHost>

ファイルを保存して閉じます。次に、この仮想ホストを有効にします。

sudo a2ensite jellyfin.conf

Apacheを再起動します

sudo systemctl restart apache2

これで、ドメイン名 jellyfin.example.comを使用してJellyfinメディアサーバーにアクセスできます。 。

HTTPSを有効にする

外部からJellyfinサーバーにアクセスするときにHTTPトラフィックを暗号化するために、Let’sEncryptから発行された無料のTLS証明書をインストールしてHTTPSを有効にすることができます。次のコマンドを実行して、Let’s Encryptクライアント(certbot)をUbuntu20.04にインストールします。

sudo apt install certbot

Nginxを使用する場合は、CertbotNginxプラグインもインストールする必要があります。

sudo apt install python3-certbot-nginx

次に、次のコマンドを実行してTLS証明書を取得してインストールします。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com

Apacheを使用する場合は、CertbotApacheプラグインをインストールする必要があります。

sudo apt install python3-certbot-apache

次に、次のコマンドを実行してTLS証明書を取得してインストールします。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com

場所:

  • -nginx :nginxプラグインを使用してください。
  • -apache :Apacheプラグインを使用してください。
  • -agree-tos :利用規約に同意します。
  • -リダイレクト :301リダイレクトでHTTPSを強制します。
  • -hsts :すべてのHTTP応答にStrict-Transport-Securityヘッダーを追加します。ドメインに常にTLSを使用するようにブラウザを強制します。 SSL/TLSストリッピングから防御します。
  • -staple-ocsp :OCSPステープリングを有効にします。有効なOCSP応答は、TLS中にサーバーが提供する証明書にホチキス止めされます。

これで、証明書が取得され、自動的にインストールされます。

また、HTTPS経由でJellyfin Webインターフェースにアクセスできます: https://jellyfin.example.com

Ubuntu20.04でJellyfinをアップグレードする方法

Jellyfinメディアサーバーの新しいバージョンがリリースされたら、次のコマンドを実行してアップグレードできます。

sudo apt update

sudo apt upgrade

次に、Jellyfinを再起動します。

sudo systemctl restart jellyfin

トラブルシューティングのヒント

ソケットメッセージの送信エラー

UbuntuサーバーがWireGuardVPNを実行している場合、Jellyfinログに次のエラーが表示される場合があります( sudo journalctl -eu jellyfin

[ERR] Error sending socket message from 10.0.0.102 to 239.255.255.250:1900
System.Net.Sockets.SocketException (0xFFFFFFFF): Bad value for ai_flags

このエラーは、WireGuardインターフェースからSSDP(Simple Service Discovery Protocol)マルチキャストアドレスである239.255.255.250にメッセージを送信できないことを意味します。これは、WireGuardインターフェースがIPアドレスに到達することを許可されていないためです。

この問題を解決するには、WireGuardインターフェース構成ファイルを編集します。

sudo nano /etc/wireguard/your-interface.conf

AllowedIPsを見つけます パラメータ。私のは以下のようなものです。

AllowedIPs = 10.0.0.0/8

ご覧のとおり、VPNクライアントは10.0.0.0/8ネットワークにのみ接続できます。次に、 239.255.255.250を追加します 住所。

AllowedIPs = 10.0.0.0/8, 239.255.255.250

ファイルを保存して閉じます。 WireGuardを再起動します。

sudo systemctl restart [email protected]your-interface

Jellyfinを再起動します。

sudo systemctl restart jellyfin

Jellyfinログを確認します( sudo journalctl -eu jellyfin ) また。上記のエラーはなくなるはずです。

無効な署名

sudo apt updateの実行中に次のエラーが表示された場合 コマンド、

The following signatures were invalid: EXPKEYSIG 49023CD01DE21A7B Jellyfin Team <[email protected]>

次のコマンドを使用して、Jellyfin公開鍵を再インポートする必要があります。

wget -O - https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo apt-key add -

Ubuntu
  1. Ubuntu20.04にPlexMediaServerをインストールする方法

  2. Ubuntu18.04にPlexMediaServerをインストールする方法

  3. Ubuntu18.04LTSにAirsonicMediaServerをインストールする方法

  1. Ubuntu18.04LTSにIcecast2メディアストリーミングサーバーをインストールする方法

  2. Ubuntu20.04にNginxを使用してJellyfinMediaServerをインストールする方法

  3. Ubuntu Server18.04LTSのインストール方法

  1. Ubuntu20.04LTSサーバーをインストールする方法

  2. Ubuntu18.04LTSにPlexMediaServerをインストールする方法

  3. Ubuntu、Debian、MintにJellyfinメディアサーバーをインストールする方法