ジェリーフィン は無料のオープンソースマルチメディアアプリケーションで、デジタルメディアファイルを整理、管理し、内部ネットワーク上のネットワークデバイスと共有するように設計されており、リモートでアクセスできます。これはクロスプラットフォームであり、そのような他の重要なプレーヤーであるPlexやEmbyの代替手段です。モバイル、タブレット、テレビ、PCなどのさまざまなデバイス、またはRokuやNvidiaシールドなどの一般的なメディアデバイスからアクセスできます。 Jellyfinは、DLNAおよびChromecast対応デバイスにもメディアを提供し、PlexやEmbyと同じようにメタデータを取得して、豊富なマルチメディアエクスペリエンスでメディアをカテゴリに整理できます。
テストしたい場合は、Jellyfinがデモサーバーを作成しました ログインして自分でチェックアウトします。
次のチュートリアルでは、Debian 11 BullseyeにJellyfinをインストールする方法と、メディアドライブに正しい読み取りおよび書き込みアクセスを許可するように設定する方法を学びます。プラス、 ApacheまたはNginxリバースプロキシオプションをリモートでストリーミングする場合は、両方のWebアプリケーションのLet’s EncryptFreeSSL証明書で保護する方法。
まず、インストールがスムーズに行われることを確認する前に、次のようにシステムを更新します。
sudo apt update && sudo apt upgrade -y
チュートリアルを進める前に、次のパッケージがインストールされていることを確認する必要があります。
sudo apt install apt-transport-https ca-certificates gnupg2 curl git -y
よくわからない場合は、コマンドを実行してください。害はありません。
JellyfinMediaServerをインストールします
JellyfinにはDebianのデフォルトのリポジトリが付属していないため、JellyfinGPGキーとリポジトリをインポートする必要があります。
まず、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
サーバーの初期設定のウェルカム画面が表示されます。
優先表示言語を選択してください 次へ->ボタンをクリックします。 続行します。
次に、ユーザー名とパスワードの作成に出くわします。
ユーザー名とパスワードを作成します; 上の写真で述べたように、初期設定が完了すると、より多くのユーザーを入力できます。完了したら、 次へ->ボタンをクリックします。 続行します。
これで、メディアライブラリを設定できます。
大きな
次の画面はメタデータ言語画面です:
言語を選択してください 、次に 次へ->ボタンをクリックします 。
プロキシを使用する場合、またはプロキシの外部や背後からサーバーにアクセスする場合は、必ず このサーバーへのリモート接続を許可する デフォルト設定と同じです。ローカルネットワークにのみアクセスしている場合は、これを無効にします。
これで、インストールが完了したことを示す画面が表示されます。
簡単な手順で、 終了ボタンをクリックします。 終了します。
ログイン画面が表示され、初期設定で作成したユーザーアカウントとパスワードでサインインします。
これで、ダッシュボードが表示されます。
インストール中にメディアを設定すると、自動的に表示されます。
初期設定中にエラーが発生した場合は、次の手順で元に戻すことができます。
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を使用できます または
インストールするには、次のコマンドを実行します。
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>
ファイルを保存します
次に、ドライランを実行して、Apache構成または仮想ホストにエラーがないことを確認します。
sudo apache2ctl configtest
すべてが正常に機能している場合、出力例は次のようになります。
Syntax OK
次のようにApacheで仮想ホストを有効にします。
sudo a2ensite jellyfin.conf
次に、Apacheを再起動します:
sudo systemctl restart apache2
リモートコンピュータまたはネットワークから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;
}
}
ファイルを保存します
次に、ドライランを実行して、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が正常に削除されました。