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

Debian11BullseyeにJellyfinMediaServerをインストールする方法

ジェリーフィン は無料のオープンソースマルチメディアアプリケーションで、デジタルメディアファイルを整理、管理し、内部ネットワーク上のネットワークデバイスと共有するように設計されており、リモートでアクセスできます。これはクロスプラットフォームであり、そのような他の重要なプレーヤーであるPlexやEmbyの代替手段です。モバイル、タブレット、テレビ、PCなどのさまざまなデバイス、またはRokuやNvidiaシールドなどの一般的なメディアデバイスからアクセスできます。 Jellyfinは、DLNAおよびChromecast対応デバイスにもメディアを提供し、PlexやEmbyと同じようにメタデータを取得して、豊富なマルチメディアエクスペリエンスでメディアをカテゴリに整理できます。

テストしたい場合は、Jellyfinがデモサーバーを作成しました ログインして自分でチェックアウトします。

次のチュートリアルでは、Debian 11 BullseyeにJellyfinをインストールする方法と、メディアドライブに正しい読み取りおよび書き込みアクセスを許可するように設定する方法を学びます。プラス、 ApacheまたはNginxリバースプロキシオプションをリモートでストリーミングする場合は、両方のWebアプリケーションのLet’s EncryptFreeSSL証明書で保護する方法。

Debianを更新

まず、インストールがスムーズに行われることを確認する前に、次のようにシステムを更新します。

sudo apt update && sudo apt upgrade -y
必要なパッケージをインストールする

チュートリアルを進める前に、次のパッケージがインストールされていることを確認する必要があります。

sudo apt install apt-transport-https ca-certificates gnupg2 curl git -y

よくわからない場合は、コマンドを実行してください。害はありません。

JellyfinMediaServerをインストールします

JellyfinにはDebianのデフォルトのリポジトリが付属していないため、JellyfinGPGキーとリポジトリをインポートする必要があります。

GPGキーのインポート

まず、GPGキーをインポートして、パッケージの信頼性を確認する必要があります。これがないと、インストールは失敗します:

sudo wget -O- https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/jellyfin.gpg
リポジトリをインポートする

次のステップはリポジトリをインポートすることです。安定版(推奨)または不安定版(ベータ版/開発版)をインポートできます。不安定版はうまく機能すると理解していますが、これは、ターミナルと問題が発生し、時間があれば修正します。

一度に1つのリポジトリのみをインポートします。

JellyFin安定版のインポート(推奨):

echo "deb [arch=$( dpkg --print-architecture ) signed-by=/usr/share/keyrings/jellyfin.gpg] https://repo.jellyfin.org/debian bullseye main" | sudo tee /etc/apt/sources.list.d/jellyfin.list

JellyFin不安定版のインポート:

echo "deb [arch=$( dpkg --print-architecture ) signed-by=/usr/share/keyrings/jellyfin.gpg] https://repo.jellyfin.org/debian bullseye main unstable" | sudo tee /etc/apt/sources.list.d/jellyfin.list

次に、終了し、リポジトリリストを更新して、次のように新しい追加を認識します。

sudo apt update

Jellyfinをインストールする

aptリポジトリがソートされたので、次のコマンドを使用してメディアサーバーのインストールに進むことができます。

sudo apt install jellyfin -y

インストールすると、Jellyfinサービスが自動的に開始されます。これを確認するには、次の systemctlコマンドを使用します。

systemctl status jellyfin

出力例:

メディアサーバーが何らかの理由で起動されていない場合は、次のコマンドを使用します。

サービスを開始する:

sudo systemctl start jellyfin

システム起動時に有効にする:

sudo systemctl enable jellyfin

JellyfinMediaServerの初期設定

Jellyfin Web UIにアクセスするには、インターネットブラウザを開き、 と入力する必要があります。 Jellyfinのデフォルトポート8096で127.0.0.1。

以下の例:

http://127.0.0.1:8096

サーバーの初期設定のウェルカム画面が表示されます。

優先表示言語を選択してください 次へ->ボタンをクリックします。 続行します。

次に、ユーザー名とパスワードの作成に出くわします。

ユーザー名とパスワードを作成します; 上の写真で述べたように、初期設定が完了すると、より多くのユーザーを入力できます。完了したら、 次へ->ボタンをクリックします。 続行します。

これで、メディアライブラリを設定できます。

大きな +(プラス記号)をクリックします またはメディアライブラリを追加 ボタン。ここから、メディアフォルダーを追加できます。セットアップは非常に簡単で、Plexのユーザーは特に非常によく似ていると感じます。完了したら、 次へ->をクリックします。 ボタンをクリックして続行します。

次の画面はメタデータ言語画面です:

言語を選択してください 、次に 次へ->ボタンをクリックします

プロキシを使用する場合、またはプロキシの外部や背後からサーバーにアクセスする場合は、必ず このサーバーへのリモート接続を許可する デフォルト設定と同じです。ローカルネットワークにのみアクセスしている場合は、これを無効にします。

これで、インストールが完了したことを示す画面が表示されます。

簡単な手順で、 終了ボタンをクリックします。 終了します。

ログイン画面が表示され、初期設定で作成したユーザーアカウントとパスワードでサインインします。

これで、ダッシュボードが表示されます。

インストール中にメディアを設定すると、自動的に表示されます。

初期設定をリセット

初期設定中にエラーが発生した場合は、次の手順で元に戻すことができます。

system.xmlファイルを開きます:

sudo nano /etc/jellyfin/system.xml

4行目にある以下を変更します。

<IsStartupWizardCompleted>true</IsStartupWizardCompleted>

これへ:

<IsStartupWizardCompleted>false</IsStartupWizardCompleted>

Jellyfinサーバーを再起動します:

sudo systemctl restart jellyfin

初期設定をリセットしたら、 HTTP://127.0に再度アクセスします。 .0.1:8096 プロセスを再開します。

メディアドライブのセットアップ権限

Jellyfinには、メディアディレクトリに対する読み取りおよび実行権限が必要です。 chownを使用できます または chgrp コマンド;ただし、 setfaclコマンドの使用方法を学習します。 チュートリアル用。これは、後でより安全になる可能性があり、デフォルトのchownおよびchgrpの方法と比較して、非常に詳細なレベルでアクセスを制御できるため、カバーされています。

インストールするには、次のコマンドを実行します。

sudo apt install acl -y

Debianにはデフォルトでこれがインストールされているはずですが、不明な場合は安全のためにコマンドを実行してください。

これで、 setfalcコマンドでいくつかのオプションが利用できるようになりました。 、しかし現実的には、各映画やテレビ番組に許可を与えることはありません。代わりに、 再帰フラグ(-R)を使用するのが簡単な方法です。 これにより、ディレクトリとサブディレクトリにあるすべてのものに必要なJellyfinアクセスが提供されます。

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

個々のメディアディレクトリまたはファイルに権限を割り当てる必要がある場合は、以下を使用してください。

sudo setfacl -m u:jellyfin:rx /media/mymediadrive/example-name-of-file-or-directory

Apacheをリバースプロキシとして設定

リモートコンピュータまたはネットワークからJellyfinにアクセスするようにリバースプロキシを設定できます。この例では、チュートリアルでApacheプロキシサーバーをセットアップします。 Nginxを使用する場合は、この部分をスキップして、リバースプロキシとしてのNginxのセットアップに進んでください。

まず、Apacheをインストールします:

sudo apt install apache2 -y

デフォルトでは、Apacheがアクティブ化されていない場合は有効になっている必要があります。使用:

sudo systemctl start apache2

起動時にApacheを起動できるようにするには、次のコマンドを使用します。

sudo systemctl enable apache2

成功した場合の出力例:

Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable apache2

Apacheのステータスを確認します:

systemctl status apache2

出力例:

Apacheをリバースプロキシとして使用するには、次のコマンドでモジュールを有効にする必要があります。

sudo a2enmod proxy proxy_http headers proxy_wstunnel

次に、サブドメインの仮想ホストを作成します:

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

アクティブなドメイン名が必要になります。ドメイン名をお持ちでない場合は、わずか1〜2ドルで購入できます。 NameCheap 最高の安価なドメインがあり、.comを好む場合は、Cloudflareを使用してください。

サブドメインを作成したら、サーバーブロックファイルに以下を追加します。

<VirtualHost *:80>
    ServerName jellyfin.example.com

    # Comment to prevent HTTP to HTTPS redirect
    Redirect permanent / https://DOMAIN_NAME

    ErrorLog /var/log/apache2/DOMAIN_NAME-error.log
    CustomLog /var/log/apache2/DOMAIN_NAME-access.log combined
</VirtualHost>

# If you are not using a SSL certificate, replace the 'redirect'
# line above with all lines below starting with 'Proxy'
<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName DOMAIN_NAME
    # This folder exists just for certbot(You may have to create it, chown and chmod it to give apache permission to read it)
    DocumentRoot /var/www/html/jellyfin/public_html

    ProxyPreserveHost On

    # Letsencrypt's certbot will place a file in this folder when updating/verifying certs
    # This line will tell apache to not to use the proxy for this folder.
    ProxyPass "/.well-known/" "!"

    ProxyPass "/socket" "ws://SERVER_IP_ADDRESS:8096/socket"
    ProxyPassReverse "/socket" "ws://SERVER_IP_ADDRESS:8096/socket"

    ProxyPass "/" "http://SERVER_IP_ADDRESS:8096/"
    ProxyPassReverse "/" "http://SERVER_IP_ADDRESS:8096/"

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/DOMAIN_NAME/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/DOMAIN_NAME/privkey.pem
    Protocols h2 http/1.1

    # Enable only strong encryption ciphers and prefer versions with Forward Secrecy
    SSLCipherSuite HIGH:RC4-SHA:AES128-SHA:!aNULL:!MD5
    SSLHonorCipherOrder on

    # Disable insecure SSL and TLS versions
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

    ErrorLog /var/log/apache2/DOMAIN_NAME-error.log
    CustomLog /var/log/apache2/DOMAIN_NAME-access.log combined
</VirtualHost>
</IfModule>

ファイルを保存します(CTRL + O) 、 次に、 (CTRL + X)を終了します。

次に、ドライランを実行して、Apache構成または仮想ホストにエラーがないことを確認します。

sudo apache2ctl configtest

すべてが正常に機能している場合、出力例は次のようになります。

Syntax OK

次のようにApacheで仮想ホストを有効にします。

sudo a2ensite jellyfin.conf

次に、Apacheを再起動します:

sudo systemctl restart apache2
リバースプロキシとしてのNginxのセットアップ

リモートコンピュータまたはネットワークからJellyfinにアクセスするようにリバースプロキシを設定できます。この例では、チュートリアルでNginxプロキシサーバーをセットアップします。

まず、Nginxをインストールします:

sudo apt install nginx -y

デフォルトでは、Nginxがアクティブになっていない場合は有効にする必要があります。使用:

sudo systemctl start nginx

起動時にNginxを起動できるようにするには、次のコマンドを使用します。

sudo systemctl enable nginx

成功した場合の出力例:

Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable nginx

Nginxのステータスを確認します:

systemctl status nginx

出力例:

最新のNginxビルドをインストールする場合は、最新のNginxMainlineまたはStableoのインストールに関するチュートリアルを参照してください。 nDebian11。

次に、次のように新しいサーバーブロックを作成します。

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

アクティブなドメイン名が必要になります。ドメイン名をお持ちでない場合は、わずか1〜2ドルで購入できます。 NameCheap 最高の安価なドメインがあり、.comを好む場合は、Cloudflareを使用してください。

サブドメインを作成したら、サーバーブロックファイルに以下を追加します。

server {
      listen 80;
      server_name jellyfin.example.com;

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

    set $jellyfin jellyfin;
    resolver 127.0.0.1 valid=30;

    # 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";

    location = / {
        return 302 https://$host/web/;
    }

    location / {
        # Proxy main Jellyfin traffic
        proxy_pass http://$jellyfin: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://$jellyfin:8096/socket;
        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;
    }
}

ファイルを保存します(CTRL + O) 、 次に、 (CTRL + X)を終了します。

次に、ドライランを実行して、Nginx構成またはサーバーブロックにエラーがないことを確認します。

sudo nginx -t

すべてが正常に機能している場合、出力例は次のようになります。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

変更を有効にするためにNginxをリロードします:

sudo systemctl reload nginx

サーバーIPを指すようにドメインとDNSレコードを設定した場合は、 jellyfin.example.comでJellyfinメディアサーバーにアクセスできるようになります。 。

Let’sEncryptSSL無料証明書を使用してNginxまたはApacheを保護する

理想的には、SSL証明書を使用してHTTPSでApacheまたはNginxを実行することをお勧めします。これを行うための最良の方法は、非営利のInternet Security Research Group(ISRG)が運営する無料の自動化されたオープンな認証局であるLet’sEncryptを使用することです。

まず、インストールしたリバースプロキシと一致するcertbotパッケージをインストールします。

Apache:

sudo apt install python3-certbot-apache -y

Nginx:

sudo apt install python3-certbot-nginx -y

インストールしたら、次のコマンドを実行して証明書の作成を開始します。

Apache:

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

Nginx:

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

この理想的なセットアップには、強制HTTPS 301リダイレクト、Strict-Transport-Securityヘッダー、およびOCSPステープリングが含まれます。電子メールとドメイン名を要件に合わせて調整してください。

これで、URLは https://jellyfin.example.com<になります。 / mark> HTTP://jellyfin.example.comの代わりに 。

JellyfinMediaServerを更新/アップグレードする方法

Jellyfinは、標準の aptupdateコマンドに従って更新できます。 ほとんどの場合、システムのパッケージをアップグレードするために使用します。

次のコマンドを使用して更新を確認すると、他のものも自動的に取得されます。

sudo apt update

利用可能な場合は、アップグレードコマンドを使用します:

sudo apt upgrade

Jellyfinメディアサーバーを削除(アンインストール)する方法

ソフトウェアを必要としなくなったユーザーは、DebianシステムからJellyfinを削除できます。

まず、次のコマンドを使用してソフトウェアを削除します。

sudo autoremove install jellyfin --purge -y

次に、Jellyfinを再度使用する予定がない場合は、追加したリポジトリを削除します。

sudo rm /etc/apt/sources.list.d/jellyfin.list

そしてそれだけです。システムからJellyfinが正常に削除されました。


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

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

  3. Debian 11にDockerをインストールする方法(Bullseye)

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

  2. Debian11BullseyeにTeamViewerをインストールする方法

  3. Debian11BullseyeにAnyDeskをインストールする方法

  1. Debian11BullseyeにWine7をインストールする方法

  2. PHP8をDebian11Bullseyeにインストールする方法

  3. Debian11BullseyeにMemcachedをインストールする方法