このチュートリアルでは、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
にアクセスします セットアップウィザードが再び表示されます。
映画やテレビ番組をダウンロードする場所
- Delugeのようなトレントクライアントを使用します。
- Usenetからダウンロードする方法を学びます。
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)を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
) また。上記のエラーはなくなるはずです。