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

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

Jellyfinは、メディアの管理とストリーミングを可能にするオープンソースのメディアストリーミングシステムです。これはクロスプラットフォームであり、EmbyやPlexなどの他のアプリケーションに代わるものです。 Jellyfinを使用すると、Webベースのインターフェイスから、メディアファイル、テレビ番組、音楽、写真を整理して共有できます。これらのストリーミングメディアには、インターネット経由でPC、タブレット、電話、Roku、TVでアクセスできます。 Jellyfinは、TheMovieDB、OpenMovie、Rotten Tomatoes、TheTVDBデータベースからメタデータを自動的に取得します。

この投稿では、Debian10にリバースプロキシとしてNginxを使用してJellyfinメディアストリーミングサーバーをインストールする方法を紹介します。

前提条件
  • Debian10を実行しているサーバー。
  • サーバーIPで指定された有効なドメイン名。
  • ルートパスワードがサーバーに設定されます。
はじめに

まず、システムパッケージを最新バージョンに更新する必要があります。次のコマンドで更新できます:

apt-get update -y

すべてのパッケージが更新されたら、次のコマンドを使用して他の必要なパッケージをインストールします。

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

すべてのパッケージがインストールされたら、次のステップに進むことができます。

Jellyfinをインストール

デフォルトでは、JellyfinパッケージはDebian10リポジトリに含まれていません。そのため、JellyfinリポジトリをAPTに追加する必要があります。

次のコマンドで追加できます:

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

リポジトリが追加されたら、次のコマンドを使用してGPGキーを追加します。

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

次に、リポジトリを更新し、次のコマンドを使用してJellyfinをインストールします。

apt-get update -y
apt-get install jellyfin -y

Jellyfinをインストールしたら、次のコマンドでJellyfinのステータスを確認できます。

systemctl status jellyfin

次の出力が得られるはずです:

? jellyfin.service - Jellyfin Media Server
   Loaded: loaded (/lib/systemd/system/jellyfin.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/jellyfin.service.d
           ??jellyfin.service.conf
   Active: active (running) since Mon 2021-03-22 08:27:42 UTC; 5min ago
 Main PID: 10192 (jellyfin)
    Tasks: 17 (limit: 4701)
   Memory: 113.9M
   CGroup: /system.slice/jellyfin.service
           ??10192 /usr/bin/jellyfin --webdir=/usr/share/jellyfin/web --restartpath=/usr/lib/jellyfin/restart.sh --ffmpeg=/usr/lib/jellyfin-ffm

Mar 22 08:27:45 debian10 jellyfin[10192]: [08:27:45] [WRN] 127.0.0.1/32: GetBindInterface: Loopback 127.0.0.1 returned.
Mar 22 08:27:45 debian10 jellyfin[10192]: [08:27:45] [INF] Executed all pre-startup entry points in 0:00:00.1545678
Mar 22 08:27:45 debian10 jellyfin[10192]: [08:27:45] [INF] Core startup complete
Mar 22 08:27:46 debian10 jellyfin[10192]: [08:27:46] [INF] Executed all post-startup entry points in 0:00:00.1976994
Mar 22 08:27:46 debian10 jellyfin[10192]: [08:27:46] [INF] Startup complete 0:00:03.6985068
Mar 22 08:27:48 debian10 jellyfin[10192]: [08:27:48] [INF] StartupTrigger fired for task: Update Plugins
Mar 22 08:27:48 debian10 jellyfin[10192]: [08:27:48] [INF] Queuing task PluginUpdateTask
Mar 22 08:27:48 debian10 jellyfin[10192]: [08:27:48] [INF] Executing Update Plugins
Mar 22 08:27:49 debian10 jellyfin[10192]: [08:27:49] [INF] Update Plugins Completed after 0 minute(s) and 0 seconds
Mar 22 08:27:49 debian10 jellyfin[10192]: [08:27:49] [INF] ExecuteQueuedTasks

この時点で、Jellyfinが起動し、ポート8096でリッスンしています。次のコマンドで確認できます。

ss -antpl | grep 8096

出力:

LISTEN    0         128                0.0.0.0:8096             0.0.0.0:*        users:(("jellyfin",pid=10192,fd=289))                                          

Nginxをリバースプロキシとして構成する

次に、ポート80でJellyfinにアクセスするために、Nginxをリバースプロキシとして構成する必要があります。

まず、次のコマンドを使用してNginxパッケージをインストールします。

apt-get install nginx -y

インストールしたら、次のコマンドを使用して新しいNginx構成ファイルを作成します。

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

次の行を追加します:

server {
      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を確認します。

nginx -t

出力:

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

次に、Nginxサービスを再起動して、変更を適用します。

systemctl reload nginx
アクセスジェリーフィン

次に、Webブラウザーを開き、URL http://jellyfin.example.comを使用してJellyfinWebインターフェースにアクセスします。 。次のページにリダイレクトされます:

言語を選択して、次へをクリックします ボタン。次のページが表示されます:

ユーザー名とパスワードを入力し、次へをクリックします ボタン。次のページが表示されます:

次へをクリックします ボタン。次のページが表示されます:

メタデータ言語を選択し、次へをクリックします ボタン。次のページが表示されます:

リモートアクセスを許可し、次へをクリックします ボタン。インストールが完了すると、次のページが表示されます。

完了をクリックします ボタンをクリックしてインストールを終了します。 Jellyfinログインページが表示されます:

ユーザー名とパスワードを入力し、署名をクリックします ボタン。次のページにJellyfinダッシュボードが表示されます。

SSLを暗号化してLet'sで安全なJellyfin

次に、Certbotクライアントパッケージをインストールして、Let'sEncryptSSLの管理をインストールする必要があります。まず、次のコマンドを使用してCertbotをインストールします。

apt-get install python3-certbot-nginx -y

インストールが完了したら、次のコマンドを実行してLet'sEncryptSSLをWebサイトにインストールします。

certbot --nginx -d jellyfin.example.com

以下に示すように、有効なメールアドレスを入力し、利用規約に同意するよう求められます。

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for jellyfin.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/jellyfin.conf

次に、以下に示すように、HTTPトラフィックをHTTPSにリダイレクトするかどうかを選択します。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

2と入力し、Enterキーを押してインストールを終了します。次の出力が表示されます。

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/jellyfin.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://jellyfin.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=jellyfin.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/jellyfin.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/jellyfin.example.com/privkey.pem
   Your cert will expire on 2020-10-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

これで、WebサイトはLet'sEncryptSSLで保護されます。 URLhttps://jellyfin.example.com。を使用して安全にアクセスできます

結論

おめでとう!これで、Debian10サーバーにJellyfinが正常にインストールされました。メディアを友達、家族、他のユーザーと簡単に共有できるようになりました。


Debian
  1. Debian11にRedisサーバーをインストールする方法

  2. MySQL 8.0/5.7をDebian11/Debian10にインストールする方法

  3. Debian8にProFTPDをインストールする方法

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

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

  3. SuiteCRMをDebian9にインストールする方法

  1. MySQL8をDebian10にインストールする方法

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

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