GNU/Linux >> Belajar Linux >  >> Debian

Cara Menginstal Jellyfin Media Server di Debian 11 Bullseye

Jellyfin adalah aplikasi multimedia sumber terbuka gratis yang dirancang untuk mengatur, mengelola, dan berbagi file media digital ke perangkat jaringan di jaringan internal dan dapat diakses dari jarak jauh yang diinginkan. Ini adalah platform lintas dan alternatif untuk pemain penting lainnya, Plex dan Emby. Anda dapat mengaksesnya dari berbagai perangkat seperti Ponsel, Tablet, TV, dan PC atau perangkat media populer seperti Roku atau Nvidia shield. Jellyfin juga menyajikan media ke perangkat berkemampuan DLNA dan Chromecast serta dapat mengambil metadata seperti yang dilakukan Plex dan Emby untuk mengatur media Anda ke dalam kategori dalam pengalaman multimedia yang kaya.

Jika Anda ingin menguji, Jellyfin telah membuat server demo untuk masuk dan memeriksanya sendiri.

Dalam tutorial berikut, Anda akan mempelajari cara menginstal Jellyfin di Debian 11 Bullseye, bersama dengan cara mengatur drive media Anda agar memiliki akses baca dan tulis yang benar; ditambah, jika Anda ingin melakukan streaming opsi proxy terbalik Apache atau Nginx dari jarak jauh, cara mengamankannya dengan Let's Encrypt Free SSL certificate untuk kedua aplikasi web.

Perbarui Debian

Pertama, sebelum Anda mulai memastikan penginstalan berjalan lancar, perbarui sistem Anda sebagai berikut.

sudo apt update && sudo apt upgrade -y

Instal Paket yang Diperlukan

Sebelum Anda melanjutkan lebih jauh dengan tutorial ini, Anda harus memastikan bahwa Anda telah menginstal paket-paket berikut:

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

Jika Anda tidak yakin, jalankan saja perintah; itu tidak akan merugikan Anda.

Instal Jellyfin Media Server

Jellyfin tidak disertakan dengan repositori default Debian, jadi Anda harus mengimpor Kunci dan repositori Jellyfin GPG.

Impor Kunci GPG

Pertama, Anda perlu mengimpor kunci GPG untuk memverifikasi keaslian paket; tanpa itu, instalasi akan gagal:

sudo wget -O- https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/jellyfin.gpg

Impor Repositori

Langkah selanjutnya adalah mengimpor repositori, Anda dapat mengimpor versi stabil (disarankan) atau tidak stabil (beta/pengembangan), dari yang saya pahami, tidak stabil dapat bekerja dengan baik tetapi saya hanya akan menyarankan ini kepada pengguna yang lebih percaya diri di terminal dan memperbaiki masalah jika muncul dan punya waktu.

HANYA IMPOR SATU REPOSITOR DALAM SATU SATU.

Impor JellyFin stable (Disarankan):

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

Impor JellyFin tidak stabil:

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

Selanjutnya, selesaikan, perbarui daftar repositori Anda untuk mengenali tambahan baru sebagai berikut:

sudo apt update

Instal Jellyfin

Sekarang setelah repositori apt diurutkan, Anda sekarang dapat melanjutkan untuk menginstal server Media dengan perintah berikut:

sudo apt install jellyfin -y

Setelah diinstal, layanan Jellyfin akan dimulai secara otomatis. Konfirmasikan ini, gunakan perintah systemctl berikut .

systemctl status jellyfin

Contoh keluaran:

Jika server media Anda belum dimulai karena suatu alasan, gunakan perintah berikut:

Mulai layanan:

sudo systemctl start jellyfin

Aktifkan pada boot sistem:

sudo systemctl enable jellyfin

Pengaturan Awal Server Media Jellyfin

Untuk mengakses UI Web Jellyfin, Anda harus membuka Browser Internet dan memasukkan 127.0.0.1 pada port default Jellyfin 8096.

Contoh di bawah ini:

http://127.0.0.1:8096

Anda akan menemukan layar pembuka untuk penyiapan server awal.

Pilih Bahasa tampilan pilihan Anda dan klik tombol Next -> untuk melanjutkan.

Selanjutnya, Anda akan menemukan nama pengguna dan kata sandi.

Buat nama pengguna dan sandi; seperti yang dinyatakan dalam gambar di atas, lebih banyak pengguna dapat dimasukkan setelah pengaturan awal selesai. Setelah selesai, klik tombol Next -> untuk melanjutkan.

Sekarang Anda dapat mengatur perpustakaan media Anda.

Klik + (Tanda plus) yang besar atau Tambahkan Pustaka Media tombol. Dari sini, Anda dapat menambahkan folder media Anda, pengaturannya sangat mudah, dan pengguna Plex terutama akan merasakan kemiripan yang sangat dekat. Setelah selesai, klik Next -> tombol untuk melanjutkan.

Layar berikutnya adalah layar Metadata Langauge:

Pilih Bahasa Anda , lalu klik tombol Next -> .

Jika Anda akan menggunakan atau, dengan kata lain mengakses server dari luar dan atau di belakang proxy, pastikan untuk mengatur Izinkan koneksi jarak jauh ke server ini seperti pengaturan default. Jika Anda hanya mengakses jaringan lokal, nonaktifkan ini.

Sekarang Anda akan melihat layar yang mengatakan Anda telah menyelesaikan instalasi.

Langkah mudah, klik tombol Selesai untuk menyelesaikan.

Anda akan dibawa ke layar masuk untuk masuk dengan akun pengguna dan kata sandi yang Anda buat di pengaturan awal.

Sekarang Anda akan berada di dasbor Anda.

Jika Anda mengatur media selama penginstalan, itu akan muncul secara otomatis.

Setel Ulang Pengaturan Awal

Jika Anda membuat kesalahan selama penyiapan awal, Anda dapat kembali dengan langkah-langkah berikut:

Buka file system.xml:

sudo nano /etc/jellyfin/system.xml

Ubah berikut ini, yang terletak di baris 4:

<IsStartupWizardCompleted>true</IsStartupWizardCompleted>

Untuk ini:

<IsStartupWizardCompleted>false</IsStartupWizardCompleted>

Mulai ulang server Jellyfin:

sudo systemctl restart jellyfin

Setelah Anda menyetel ulang pengaturan awal, kunjungi kembali HTTP://127.0 .0.1:8096 dan mulai ulang prosesnya.

Izin Penyiapan untuk Drive Media

Jellyfin harus memiliki izin membaca dan mengeksekusi di direktori media Anda. Anda dapat menggunakan chown atau chgrp perintah; namun, Anda akan belajar menggunakan perintah setfacl untuk tutorialnya. Ini sedang dicakup karena berpotensi, di kemudian hari, menjadi lebih aman, dan Anda dapat mengontrol akses pada tingkat yang sangat detail dibandingkan dengan cara default chown dan chgrp.

Untuk menginstal, jalankan perintah berikut:

sudo apt install acl -y

Debian seharusnya menginstal ini secara default tetapi jalankan perintah untuk aman jika tidak yakin.

Sekarang, Anda memiliki beberapa opsi dengan perintah setfalc , tetapi secara realistis Anda tidak akan memberikan setiap film dan acara tv izin; sebagai gantinya, cara yang lebih mudah adalah dengan menggunakan bendera rekursif (-R) yang akan menyediakan akses Jellyfin yang dibutuhkannya untuk semua yang ada di direktori dan subdirektori.

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

Jika Anda perlu memberikan izin ke direktori atau file media individual, gunakan yang berikut ini:

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

Siapkan Apache sebagai Proxy Terbalik

Anda dapat mengatur proxy terbalik untuk mengakses Jellyfin dari komputer atau jaringan jarak jauh. Dalam contoh ini, tutorial akan menyiapkan server proxy Apache. Jika Anda ingin menggunakan Nginx, lewati bagian ini dan buka Setup Nginx sebagai Reverse Proxy.

Pertama, instal Apache:

sudo apt install apache2 -y

Secara default, Apache harus diaktifkan jika tidak diaktifkan. gunakan:

sudo systemctl start apache2

Untuk mengaktifkan Apache agar dapat dimulai saat boot, gunakan perintah berikut:

sudo systemctl enable apache2

Contoh keluaran jika berhasil:

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

Verifikasi status Apache:

systemctl status apache2

Contoh keluaran:

Untuk menggunakan Apache sebagai proxy terbalik, Anda harus mengaktifkan modul dengan perintah berikut:

sudo a2enmod proxy proxy_http headers proxy_wstunnel

Selanjutnya, buat host virtual untuk subdomain Anda:

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

Anda akan memerlukan nama domain aktif yang dapat dibeli hanya dengan 1 hingga 2 dolar jika Anda tidak memilikinya. NameCheap memiliki domain murah terbaik dan jika Anda lebih suka .com, gunakan Cloudflare.

Setelah Anda membuat sub-domain, tambahkan berikut ini ke file blok server:

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

Simpan file (CTRL+O) , lalu keluar dari (CTRL+X) .

Sekarang lakukan dry run untuk memastikan tidak ada kesalahan dalam konfigurasi Apache atau host virtual Anda:

sudo apache2ctl configtest

Jika semuanya bekerja dengan benar, output contoh seharusnya:

Syntax OK

Aktifkan virtual host di Apache sebagai berikut:

sudo a2ensite jellyfin.conf

Kemudian restart Apache:

sudo systemctl restart apache2

Siapkan Nginx sebagai Proxy Terbalik

Anda dapat mengatur proxy terbalik untuk mengakses Jellyfin dari komputer atau jaringan jarak jauh. Dalam contoh ini, tutorial akan menyiapkan server proxy Nginx.

Pertama, instal Nginx:

sudo apt install nginx -y

Secara default, Nginx harus diaktifkan jika tidak diaktifkan. gunakan:

sudo systemctl start nginx

Untuk mengaktifkan Nginx agar dapat dimulai saat boot, gunakan perintah berikut:

sudo systemctl enable nginx

Contoh keluaran jika berhasil:

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

Verifikasi status Nginx:

systemctl status nginx

Contoh keluaran:

Jika Anda ingin menginstal Nginx build terbaru, lihat tutorial kami tentang menginstal Nginx Mainline atau Stable terbaru n Debian 11.

Sekarang, buat blok server baru sebagai berikut:

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

Anda akan memerlukan nama domain aktif yang dapat dibeli hanya dengan 1 hingga 2 dolar jika Anda tidak memilikinya. NameCheap memiliki domain murah terbaik dan jika Anda lebih suka .com, gunakan Cloudflare.

Setelah Anda membuat sub-domain, tambahkan berikut ini ke file blok server:

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

Simpan file (CTRL+O) , lalu keluar dari (CTRL+X) .

Sekarang lakukan dry run untuk memastikan tidak ada kesalahan dalam konfigurasi Nginx atau blok server Anda:

sudo nginx -t

Jika semuanya bekerja dengan benar, output contoh seharusnya:

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

Muat ulang Nginx agar perubahan diterapkan:

sudo systemctl reload nginx

Jika Anda telah menyiapkan domain dan data DNS untuk menunjuk ke IP server, Anda sekarang dapat mengakses Jellyfin Media Server di jellyfin.example.com .

Amankan Nginx atau Apache dengan Let's Encrypt SSL Free Certificate

Idealnya, Anda ingin menjalankan Apache atau Nginx di HTTPS menggunakan sertifikat SSL. Cara terbaik untuk melakukannya adalah dengan menggunakan Let's Encrypt, otoritas sertifikat gratis, otomatis, dan terbuka yang dijalankan oleh Internet Security Research Group (ISRG) nirlaba.

Pertama, instal paket certbot, sesuai dengan proxy terbalik yang Anda instal.

Apache:

sudo apt install python3-certbot-apache -y

Nginx:

sudo apt install python3-certbot-nginx -y

Setelah terinstal, jalankan perintah berikut untuk memulai pembuatan sertifikat Anda:

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

Penyiapan ideal ini mencakup pengalihan paksa HTTPS 301, header Strict-Transport-Security, dan OCSP Stapling. Pastikan untuk menyesuaikan email dan nama domain dengan kebutuhan Anda.

Sekarang URL Anda akan menjadi https://jellyfin.example.com bukannya HTTP://jellyfin.example.com .

Cara Memperbarui/Memperbarui Server Media Jellyfin

Jellyfin dapat diperbarui sesuai standar perintah pembaruan apt bahwa Anda akan menggunakan sebagian besar waktu Anda untuk meningkatkan paket di sistem Anda.

Gunakan perintah berikut untuk memeriksa pembaruan, dan ini akan secara otomatis mengambil hal lain juga.

sudo apt update

Jika tersedia, gunakan perintah upgrade:

sudo apt upgrade

Cara Menghapus (Mencopot) Server Media Jellyfin

Untuk pengguna yang tidak lagi memerlukan perangkat lunak, Anda dapat menghapus Jellyfin dari sistem Debian Anda.

Pertama, hapus perangkat lunak menggunakan perintah berikut.

sudo autoremove install jellyfin --purge -y

Selanjutnya, hapus repositori yang ditambahkan jika Anda tidak memiliki rencana untuk menggunakan Jellyfin lagi.

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

Dan itu dia; Anda telah berhasil menghapus Jellyfin dari sistem Anda.


Debian
  1. Cara Menginstal Server Media Plex di Debian 9

  2. Cara Menginstal Jellyfin Media Server di Debian 10

  3. Cara Menginstal Docker di Debian 11 (Bullseye)

  1. Cara Menginstal Jellyfin Media Server di Debian 10 Buster

  2. Cara Menginstal TeamViewer di Debian 11 Bullseye

  3. Cara Menginstal AnyDesk di Debian 11 Bullseye

  1. Cara Menginstal Wine 7 di Debian 11 Bullseye

  2. Cara Menginstal PHP 8 di Debian 11 Bullseye

  3. Cara Menginstal Memcached di Debian 11 Bullseye