Tutorial ini akan menunjukkan cara menginstal server media Jellyfin di server/desktop Debian 10. 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 Debian 10
Jellyfin tidak disertakan dalam repositori default Debian, tetapi memiliki repositori sendiri. Jalankan perintah berikut untuk menambahkan repositori Jellyfin ke sistem Debian 10 Anda.
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/debian buster main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
Selanjutnya, jalankan perintah berikut untuk mengimpor kunci Jeffyfin GPG ke sistem Debian 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 Debian 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 Debian 10 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 Debian 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
- Gunakan klien Torrenting seperti Deluge.
- Pelajari cara mengunduh dari Usenet.
Keuntungan Usenet
- Ini memberi Anda privasi yang lebih baik karena orang lain tidak dapat melihat apa yang Anda unduh.
- Kecepatan download super cepat.
- File biasanya disimpan lebih lama daripada file 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. Agar 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 menambahkan 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 Debian 10.
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 Mengupgrade Jellyfin di Debian 10
Saat versi baru server media Jellyfin keluar, Anda dapat meningkatkannya dengan menjalankan perintah berikut.
sudo apt update sudo apt upgrade
Kemudian mulai ulang Jellyfin.
sudo systemctl restart jellyfin
Pemecahan Masalah
Jika server Debian 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]
Mulai ulang Jellyfin.
sudo systemctl restart jellyfin
Periksa log Jellyfin (sudo journalctl -eu jellyfin
) lagi. Kesalahan di atas seharusnya hilang.