GNU/Linux >> Linux の 問題 >  >> Debian

Debian10バスターにJellyfinメディアサーバーをインストールする方法

このチュートリアルでは、Debian10サーバー/デスクトップに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を使用したビデオのエンコード/デコードのハードウェアアクセラレーションをサポートします。
  • その他。

Debian10にJellyfinMediaServerをインストールする

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

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

次に、次のコマンドを実行してJeffyfin GPGキーをDebianシステムにインポートし、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

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

sudo apt update

sudo apt install jellyfin

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

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

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

systemctl status jellyfin

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

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

sudo systemctl start jellyfin

JellyfinMediaServerの初期設定

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

http://127.0.0.1:8096/web

JellyfinをリモートDebianサーバーにインストールした場合、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. ファイルは通常、トレントファイルよりもはるかに長く保持されます。たとえば、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)をDebian10にインストールします。

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

Debian10でJellyfinをアップグレードする方法

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

sudo apt update

sudo apt upgrade

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

sudo systemctl restart jellyfin

トラブルシューティング

Debianサーバーが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]

Jellyfinを再起動します。

sudo systemctl restart jellyfin

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


Debian
  1. Debian 10(バスター)のインストール方法

  2. MySQLサーバーをDebian10Busterにインストールする方法

  3. Debian10BusterにRをインストールする方法

  1. Debian10BusterにDockerをインストールする方法

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

  3. Debian 10(Buster)にNFSサーバーをインストールする方法

  1. Debian 10(Buster)最小サーバーをインストールする方法

  2. Debian10にJellyfinMediaServerをインストールする方法

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