GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Jellyfin Media Server di Ubuntu 20.04 LTS Server/Desktop

Tutorial ini akan menunjukkan kepada Anda cara menginstal server media Jellyfin di server/desktop Ubuntu 20.04 LTS. Jellyfin adalah aplikasi sumber terbuka gratis yang memungkinkan Anda mengatur film, acara TV, musik, dan foto dalam satu antarmuka yang indah dan mengalirkan file media tersebut ke PC, tablet, ponsel, TV, Roku, dll di jaringan atau di atasnya. Internet. Jellyfin dapat diinstal di Linux, MacOS, dan Windows.

Fitur Jellyfin

Jellyfin adalah garpu dari server media Emby. Ini mengemas banyak fitur yang sama seperti Plex dan Emby.

  • Tidak seperti Plex atau Emby, Jellyfin 100% gratis dan bersumber terbuka. Tanpa iklan. Tidak ada batasan pemutaran pada aplikasi seluler. (Meskipun aplikasi iOS tidak dapat memutar video di latar belakang.)
  • Tonton TV Langsung dan setel rekaman otomatis untuk memperluas koleksi Anda.
  • Mengambil karya seni, metadata dari TheTVDB, TheMovieDB, The OpenMovie Database, dan Rotten Tomatoes secara otomatis.
  • Mendukung DLNA.
  • Plugin opsional dapat dipasang untuk menyediakan fitur tambahan.
  • Mendukung akselerasi perangkat keras untuk encoding/decoding video menggunakan FFMpeg.
  • Dan banyak lagi.

Instal Jellyfin Media Server di Ubuntu 20.04

Jellyfin tidak termasuk dalam repositori default Ubuntu, tetapi memiliki repositori sendiri. Jalankan perintah berikut untuk menambahkan repositori Jellyfin ke sistem Ubuntu Anda.

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

Selanjutnya, jalankan perintah berikut untuk mengimpor kunci Jeffyfin GPG ke sistem Ubuntu agar APT dapat memverifikasi integritas paket selama penginstalan.

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

Dan karena repositori ini menggunakan koneksi HTTPS, kita juga perlu menginstal apt-transport-https dan ca-certificates paket.

sudo apt install apt-transport-https ca-certificates

Terakhir, perbarui indeks paket pada sistem Ubuntu Anda dan instal Jellyfin.

sudo apt update

sudo apt install jellyfin

Perintah ini juga akan menginstal 3 paket lain sebagai dependensi:

  • jellyfin-ffmpeg :untuk transkode video.
  • jellyfin-server :server ujung belakang.
  • jellyfin-web :antarmuka web ujung depan.

Sekarang server media Jellyfin terinstal, kita dapat memeriksa statusnya dengan:

systemctl status jellyfin

Seperti yang Anda lihat, ini berjalan di sistem Ubuntu 20.04 saya. (Tekan q untuk mengambil kembali kendali terminal.)

Jika server media Jellyfin tidak berjalan, Anda dapat memulainya dengan:

sudo systemctl start jellyfin

Pengaturan Awal Server Media Jellyfin

Antarmuka manajemen berbasis web tersedia di port 8096. Anda dapat mengakses antarmuka web Jellyfin melalui URL berikut.

http://127.0.0.1:8096/web

Jika Anda menginstal Jellyfin di server Ubuntu jarak jauh, Anda perlu menyiapkan proxy terbalik dengan Nginx atau Apache untuk mengakses UI web, yang akan dijelaskan nanti dalam tutorial ini.

Langkah pertama adalah memilih bahasa pilihan Anda.

Di layar berikutnya, buat akun pengguna.

Sekarang Anda dapat menambahkan perpustakaan. Klik Add Media Library tombol.

Pilih jenis konten (film, musik, acara tv, dll) dan nama tampilan.

Kemudian klik tombol Plus (+) tombol untuk memilih folder konten.

Perhatikan bahwa jellyfin pengguna harus memiliki izin membaca dan mengeksekusi pada direktori media Anda. Misalnya, hard drive eksternal 2T saya dipasang di bawah /media/linuxbabe/ , yang dimiliki oleh root. Pengguna tidak dalam grup root tidak dapat mengaksesnya, jadi saya menjalankan perintah berikut untuk memberi pengguna jellyfin membaca dan mengeksekusi izin. (Saya tidak menyarankan mengubah kepemilikan dengan chown atau chgrp memerintah. Menggunakan setfacl perintah akan cukup.)

sudo setfacl -m u:jellyfin:rx /media/linuxbabe/

Anda mungkin juga perlu memberikan izin pada direktori media individual seperti di bawah ini.

sudo setfacl -m u:jellyfin:rx /media/linuxbabe/directory-name

Anda mungkin tergoda untuk menambahkan tanda rekursif (-R ), yang memberikan jellyfin membaca dan mengeksekusi izin pada setiap file dan sub-direktori pada drive.

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

Jika hard drive eksternal Anda hanya digunakan untuk menyimpan file media, maka Anda dapat melakukannya, tetapi jika Anda memiliki file sensitif di hard drive eksternal, jangan lakukan.

Setelah Anda selesai menambahkan folder media, Anda dapat mengonfigurasi pengaturan perpustakaan. Pilih bahasa, negara, dll.

Klik Ok dan Next tombol. Anda selalu dapat menambahkan lebih banyak perpustakaan nanti. Langkah selanjutnya memungkinkan Anda untuk memilih apakah akses jarak jauh akan diaktifkan. Saya tidak menyarankan mengaktifkan metode akses jarak jauh asli, karena tidak menyediakan enkripsi HTTPS, jadi hapus centang pada kedua kotak centang. Jika Anda memerlukan akses jarak jauh, silakan baca cara mengatur proxy terbalik nanti di artikel ini.

Klik Next dan Finish tombol. Terakhir, masuk ke akun Jellyfin Anda.

Ulangi Pengaturan Awal

Jika Anda membuat kesalahan dalam pengaturan awal, Anda dapat memulainya dari awal. Pertama, edit file konfigurasi Jellyfin.

sudo nano /etc/jellyfin/system.xml

Ubah

<IsStartupWizardCompleted>true</IsStartupWizardCompleted>

untuk

<IsStartupWizardCompleted>false</IsStartupWizardCompleted>

Simpan dan tutup file. Kemudian mulai ulang Jellyfin.

sudo systemctl restart jellyfin

Sekarang kunjungi localhost:8096/web dan Anda akan melihat wizard pengaturan lagi.

Tempat Mengunduh Film dan Acara TV

  1. Gunakan klien torrent seperti Deluge.
  2. Pelajari cara mengunduh dari Usenet.

Keuntungan Usenet

  1. Ini memberi Anda privasi yang lebih baik karena orang lain tidak dapat melihat apa yang Anda unduh.
  2. Kecepatan download super cepat.
  3. Berkas di Usenet biasanya disimpan lebih lama daripada berkas torrent. Misalnya, Newsdemon menyimpan file selama 4430 hari (lebih dari 12 tahun), sehingga Anda dapat mengunduh konten lama dengan kecepatan yang sangat cepat.

Menyiapkan Proksi Terbalik

Karena mendengarkan 127.0.0.1:8096 , Antarmuka Jellyfin Web hanya tersedia untuk koneksi dari komputer yang sama. Untuk dapat mengakses antarmuka Web Jellyfin dari komputer jarak jauh, kita dapat mengatur proxy terbalik untuk Jellyfin dengan Nginx atau Apache.

Nginx

Nginx adalah server web yang sangat populer dan proxy terbalik. Jika Anda lebih suka menggunakan Nginx, jalankan perintah berikut untuk menginstalnya.

sudo apt install nginx

Kemudian buat file blok server untuk Jellyfin.

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

Tambahkan konten berikut ke file ini. Ganti jellyfin.example.com dengan nama domain Anda sendiri. Anda juga harus membuat catatan DNS A untuk subdomain ini. Jika Anda tidak memiliki nama domain asli, saya sarankan pergi ke NameCheap untuk membelinya. Harganya rendah dan mereka memberikan perlindungan privasi whois gratis seumur hidup.

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

}

Simpan dan tutup file ini. Kemudian uji konfigurasi Nginx.

sudo nginx -t

Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.

sudo systemctl reload nginx

Sekarang Anda dapat mengakses server media Jellyfin melalui jellyfin.example.com .

Apache

Jika Anda lebih suka Apache daripada Nginx, maka instal server web Apache dengan menggunakan perintah berikut.

sudo apt install apache2

Untuk menggunakan Apache sebagai proxy terbalik, kita perlu mengaktifkan proxy modul dan modul header.

sudo a2enmod proxy proxy_http headers proxy_wstunnel

Kemudian buat file host virtual untuk Jellyfin.

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

Masukkan konfigurasi berikut ke dalam file. Ganti jellyfin.example.com dengan nama domain Anda yang sebenarnya. Jangan lupa untuk membuat catatan DNS A untuk sub-domain ini. Jika Anda tidak memiliki nama domain asli, saya sarankan pergi ke NameCheap untuk membelinya. Harganya rendah dan mereka memberikan perlindungan privasi whois gratis seumur hidup.

<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>

Simpan dan tutup file. Kemudian aktifkan host virtual ini.

sudo a2ensite jellyfin.conf

Mulai ulang Apache

sudo systemctl restart apache2

Sekarang Anda dapat mengakses server media Jellyfin menggunakan nama domain jellyfin.example.com .

Aktifkan HTTPS

Untuk mengenkripsi lalu lintas HTTP saat Anda mengunjungi server Jellyfin dari luar, kami dapat mengaktifkan HTTPS dengan memasang sertifikat TLS gratis yang dikeluarkan dari Let's Encrypt. Jalankan perintah berikut untuk menginstal klien Let's Encrypt (certbot) di Ubuntu 20.04.

sudo apt install certbot

Jika Anda menggunakan Nginx, maka Anda juga perlu menginstal plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Selanjutnya, jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat TLS.

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

Jika Anda menggunakan Apache, maka Anda perlu menginstal plugin Certbot Apache.

sudo apt install python3-certbot-apache

Selanjutnya, jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat TLS.

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

Dimana:

  • --nginx :Gunakan plugin nginx.
  • --apache :Gunakan plugin Apache.
  • --agree-tos :Menyetujui persyaratan layanan.
  • --redirect :Memaksa HTTPS dengan pengalihan 301.
  • --hsts :Tambahkan header Strict-Transport-Security ke setiap respons HTTP. Memaksa browser untuk selalu menggunakan TLS untuk domain. Mempertahankan dari SSL/TLS Stripping.
  • --staple-ocsp :Mengaktifkan Stapel OCSP. Respons OCSP yang valid ditempelkan ke sertifikat yang ditawarkan server selama TLS.

Sertifikat sekarang harus diperoleh dan diinstal secara otomatis.

Dan Anda dapat mengakses antarmuka web Jellyfin melalui HTTPS:https://jellyfin.example.com .

Cara Meng-upgrade Jellyfin di Ubuntu 20.04

Saat versi baru server media Jellyfin keluar, Anda dapat memutakhirkannya dengan menjalankan perintah berikut.

sudo apt update

sudo apt upgrade

Kemudian mulai ulang Jellyfin.

sudo systemctl restart jellyfin

Kiat Pemecahan Masalah

Error Mengirim Pesan Soket

Jika server Ubuntu Anda menjalankan WireGuard VPN, Anda mungkin melihat kesalahan berikut di log 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

Kesalahan ini berarti bahwa pesan tidak dapat dikirim dari antarmuka WireGuard Anda ke 239.255.255.250, yang merupakan alamat multicast SSDP (Simple Service Discovery Protocol). Ini karena antarmuka WireGuard Anda tidak diizinkan untuk mencapai alamat IP.

Untuk mengatasi masalah ini, edit file konfigurasi antarmuka WireGuard Anda.

sudo nano /etc/wireguard/your-interface.conf

Temukan AllowedIPs parameter. Milik saya seperti di bawah ini.

AllowedIPs = 10.0.0.0/8

Seperti yang Anda lihat, klien VPN diizinkan untuk terhubung ke jaringan 10.0.0.0/8 saja. Sekarang tambahkan 239.255.255.250 alamat.

AllowedIPs = 10.0.0.0/8, 239.255.255.250

Simpan dan tutup file. Mulai ulang WireGuard.

sudo systemctl restart [email protected]your-interface

Mulai ulang Jellyfin.

sudo systemctl restart jellyfin

Periksa log Jellyfin (sudo journalctl -eu jellyfin ) lagi. Kesalahan di atas seharusnya hilang.

Tanda Tangan Tidak Valid

Jika Anda melihat kesalahan berikut saat menjalankan sudo apt update perintah,

The following signatures were invalid: EXPKEYSIG 49023CD01DE21A7B Jellyfin Team <[email protected]>

Anda perlu mengimpor ulang kunci publik Jellyfin dengan perintah berikut.

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

Ubuntu
  1. Cara Menginstal Server Media Plex di Ubuntu 20.04

  2. Cara Menginstal Server Media Plex di Ubuntu 18.04

  3. Cara Memasang Airsonic Media Server di Ubuntu 18.04 LTS

  1. Cara Menginstal Server Streaming Media Icecast 2 di Ubuntu 18.04 LTS

  2. Cara Menginstal Jellyfin Media Server dengan Nginx di Ubuntu 20.04

  3. Cara menginstal Ubuntu Server 18.04 LTS

  1. Cara Memasang Server Ubuntu 20.04 LTS

  2. Cara Menginstal Server Media Plex di Ubuntu 18.04 LTS

  3. Cara Menginstal Jellyfin Media Server di Ubuntu, Debian &Mint