Ki jan yo enstale Jellyfin Media Server sou Debian 11

Pataje Tutorial sa a

Jellyfin se yon aplikasyon miltimedya gratis, ki fèt pou òganize, jere, ak pataje fichye medya dijital sou aparèy rezo sou yon rezo entèn epi yo ka jwenn aksè a distans vle. Li se yon kwa-platfòm ak altènativ a sa yo lòt jwè enpòtan, Plex ak Emby. Ou ka jwenn aksè nan li nan yon seri de aparèy tankou mobil, tablèt, televizyon, ak PC oswa aparèy medya popilè tankou Roku oswa Nvidia shield. Jellyfin sèvi tou medya sou aparèy DLNA ak Chromecast ki pèmèt epi li ka jwenn metadata menm jan Plex ak Emby fè pou ou ka òganize medya ou an kategori nan yon eksperyans miltimedya rich.

Si ou ta renmen teste, Jellyfin te kreye yon sèvè Demo konekte epi tcheke li pou tèt ou.

Nan leson patikilye sa a, ou pral aprann ki jan yo enstale Jellyfin sou Debian 11 Bullseye, ansanm ak ki jan yo mete kondui medya ou yo gen aksè kòrèk lekti ak ekri, plis si ou vle difize yon Apache or Nginx opsyon proxy ranvèse adistans ak ki jan yo an sekirite li ak Ann ankripte SSL gratis sètifika pou tou de aplikasyon entènèt.

reklam

Kondisyon

  • OS rekòmande: Debian 11 Bullseye.
  • Kont itilizatè: Yon kont itilizatè ki gen aksè sudo oswa rasin.

Mizajou sistèm operasyon

Mete ajou ou dbyan sistèm operasyon pou asire tout pakè ki egziste deja yo ajou:

sudo apt update && sudo apt upgrade -y

Tutorial la pral sèvi ak la sudo kòmand ak sipoze ou gen estati sudo.

Pou verifye estati sudo sou kont ou:

sudo whoami

Egzanp pwodiksyon ki montre estati sudo:

[joshua@debian~]$ sudo whoami
root

Pou mete kanpe yon kont sudo ki deja egziste oswa nouvo, vizite leson patikilye nou an sou Ajoute yon itilizatè nan Sudoers sou Debian.

Pou itilize kont rasin, sèvi ak lòd sa a ak modpas rasin lan pou konekte.

su

Leson patikilye a pral itilize tèminal la pou enstalasyon yo jwenn nan Aktivite > Montre Aplikasyon > Tèminal.

Egzanp:

Ki jan yo Cinnamon Desktop Environment sou Debian 11 Bullseye

Enstale Depandans:

Anvan ou kontinye ak leson patikilye a, w ap bezwen asire w ke ou gen pakè sa yo enstale:

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

Si ou pa sèten, jis kouri lòd la; li p'ap fè ou mal.

Enstale Jellyfin Media Server

Jellyfin pa vini ak depo default Debian a, kidonk ou dwe enpòte Kle GPG Jellyfin la ak depo.

Enpòte kle GPG

Premyèman, w ap bezwen enpòte kle GPG la pou verifye otantisite pake a; san li, enstalasyon an ap echwe:

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

Enpòte depo a

Pwochen etap la se enpòte depo a:

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

Pou fini, mete ajou lis depo ou a pou rekonèt nouvo adisyon yo jan sa a:

sudo apt update

Enstale Jellyfin

Kounye a ke ou gen depo a apt klase, ou ka kounye a kontinye enstale sèvè a Media ak lòd sa a:

sudo apt install jellyfin

Egzanp pwodiksyon ak depandans siplemantè ki pral enstale:

Kalite Y, lè sa a, peze antre kle pou konplete enstalasyon.

Yon fwa enstale, sèvis Jellyfin la pral otomatikman kòmanse. Pou konfime sa a, sèvi ak sa ki annapre yo kòmand systemctl:

systemctl status jellyfin

Egzanp pwodiksyon:

Si sèvè medya ou a pa te kòmanse pou kèk rezon, sèvi ak kòmandman sa yo:

Komanse:

sudo systemctl start jellyfin

Pou pèmèt sou bòt sistèm:

sudo systemctl enable jellyfin
reklam

Jellyfin Media Server Inisyal Enstalasyon

Pou jwenn aksè nan Jellyfin Web UI, ou dwe louvri navigatè Entènèt ou a epi antre 127.0.0.1 sou pò Jellyfin default 8096.

Egzanp anba a:

http://127.0.0.1:8096

Ou pral tonbe sou ekran akeyi pou konfigirasyon premye sèvè a.

Chwazi ou Lang ekspozisyon pi pito epi klike sou la Next -> bouton kontinye.

Apre sa, ou pral tonbe sou kreye yon non itilizatè ak modpas.

Kreye yon non itilizatè ak modpas; jan sa di nan foto ki anwo a, plis itilizatè yo ka antre yon fwa konfigirasyon inisyal la fini. Yon fwa fè, klike sou la Next -> bouton kontinye.

Koulye a, ou ka mete kanpe bibliyotèk medya ou yo.

Klike sou gwo a + (Plus siy) or Add Medya Bibliyotèk bouton. Soti isit la, ou ka ajoute katab medya ou a, konfigirasyon an trè senp, ak itilizatè Plex ta espesyalman santi yon resanblè trè pre. Yon fwa fè, klike sou la Next -> bouton pou kontinye.

Ekran kap vini an se ekran Metadata Langauge:

Chwazi ou Lang, Lè sa a, klike sou la Next -> bouton.

Si w ap itilize oswa, nan pi bon mo, aksè nan sèvè a soti deyò epi oswa dèyè yon prokurasyon, asire w ke ou mete Pèmèt koneksyon aleka sou sèvè sa a kòm se anviwònman an default nan ka sa a. Si w ap sèlman aksè nan yon rezo lokal, enfim sa a.

Koulye a, ou pral wè ekran an di ou te fini enstalasyon an.

Etap fasil, klike sou la Fini bouton fini.

Y ap mennen w nan ekran login pou w konekte ak kont itilizatè a ak modpas ou te kreye nan konfigirasyon inisyal la.

Koulye a, ou pral nan tablodbò ou a.

Si ou mete kanpe medya pandan enstalasyon an, li pral otomatikman parèt.

Reyajiste Inisyal Enstalasyon

Si ou te fè yon erè pandan premye konfigirasyon an, ou ka retounen ak etap sa yo:

Louvri fichye system.xml la:

sudo nano /etc/jellyfin/system.xml

Chanje bagay sa yo, ki sitiye sou liy 4:

<IsStartupWizardCompleted>true</IsStartupWizardCompleted>

Pou sa:

<IsStartupWizardCompleted>false</IsStartupWizardCompleted>

Rekòmanse sèvè Jellyfin la:

sudo systemctl restart jellyfin

Yon fwa ou reset konfigirasyon inisyal la, revize la HTTP://127.0.0.1:8096 epi rekòmanse pwosesis la ankò.

reklam

Enstalasyon otorizasyon pou kondui medya yo

Jellyfin pral mande pou li ak egzekite pèmisyon sou anyè medya ou yo. Ou ka itilize chown oswa chgrp kòmandman; sepandan, ou pral aprann sèvi ak la setfacl lòd pou leson patikilye a. Sa a se ke yo te kouvri paske li gen potansyèl la, pita sou, yo dwe pi an sekirite, epi ou ka kontwole aksè nan yon nivo trè detaye konpare ak fason an default nan. chown ak chgrp.

Pou enstale, kouri lòd sa a:

sudo apt install acl -y

Debian ta dwe gen sa a enstale pa default men kouri lòd la yo dwe an sekirite si yo pa sèten.

Koulye a, ou gen kèk opsyon ak la setfalc lòd, men realistikman ou pa pral ale nan bay chak fim ak emisyon televizyon; olye de sa, fason ki pi fasil se sèvi ak la drapo repetitif (-R) ki pral bay Jellyfin aksè li bezwen pou tout bagay ki sitiye nan anyè a ak sous-répertoires.

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

Si ou bezwen bay pèmisyon nan anyè medya endividyèl oswa fichye, sèvi ak sa ki annapre yo:

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

Enstalasyon Apache kòm yon prokurasyon ranvèse

Ou ka mete yon prokurasyon ranvèse pou jwenn aksè nan Jellyfin nan yon òdinatè oswa rezo aleka. Nan egzanp sa a, leson patikilye a pral mete kanpe yon sèvè proxy Apache. Si ou vle sèvi ak Nginx, sote pati sa a epi ale nan Enstale Nginx kòm yon prokurasyon ranvèse.

Premyèman, enstale Apache:

sudo apt install apache2 -y

Pa default, Apache ta dwe aktive si li pa aktive. itilize:

sudo systemctl start apache2

Pou pèmèt Apache kòmanse sou bòt, sèvi ak lòd sa a:

sudo systemctl enable apache2

Egzanp pwodiksyon si siksè:

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

Verifye estati Apache:

sudo systemctl status apache2

Egzanp pwodiksyon:

Pou itilize Apache kòm yon prokurasyon ranvèse, ou bezwen aktive modil la ak lòd sa a:

sudo a2enmod proxy proxy_http headers proxy_wstunnel

Apre sa, kreye yon lame vityèl pou subdomain ou:

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

Ou pral bezwen yon non domèn aktif ki ka achte pou ti kòm 1 a 2 dola si ou pa gen youn. Nonb gen pi bon domèn yo bon mache ale alantou epi si ou prefere yon .com, sèvi ak CloudFlare.

Apre ou fin kreye sub-domèn ou a, ajoute sa ki annapre yo nan dosye blòk sèvè a:

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

Sove dosye a (CTRL+O), Lè sa a, sòti (CTRL+X).

Koulye a, fè yon kouri sèk pou asire w pa gen okenn erè nan konfigirasyon Apache la oswa lame vityèl ou a:

sudo apache2ctl configtest

Si tout bagay ap travay kòrèkteman, egzanp pwodiksyon ta dwe:

Syntax OK

Pèmèt lame vityèl la sou Apache jan sa a:

sudo a2ensite jellyfin.conf

Lè sa a, rekòmanse Apache:

sudo systemctl restart apache2

Enstale Nginx kòm yon prokurasyon ranvèse

Ou ka mete yon prokurasyon ranvèse pou jwenn aksè nan Jellyfin nan yon òdinatè oswa rezo aleka. Nan egzanp sa a, leson patikilye a pral mete kanpe yon sèvè proxy Nginx.

Premyèman, enstale Nginx:

sudo apt install nginx -y

Pa default, Nginx ta dwe aktive si li pa aktive. itilize:

sudo systemctl start nginx

Pou pèmèt Nginx kòmanse sou bòt, sèvi ak lòd sa a:

sudo systemctl enable nginx

Egzanp pwodiksyon si siksè:

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

Verifye estati Nginx:

sudo systemctl status nginx

Egzanp pwodiksyon:

Si ou ta renmen enstale dènye Nginx bati, gade leson patikilye nou an sou Ki jan yo enstale dènye Nginx Mainline oswa Stable sou Debian 11.

Koulye a, kreye yon nouvo blòk sèvè jan sa a:

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

Ou pral bezwen yon non domèn aktif ki ka achte pou ti kòm 1 a 2 dola si ou pa gen youn. Nonb gen pi bon domèn yo bon mache ale alantou epi si ou prefere yon .com, sèvi ak CloudFlare.

Apre ou fin kreye sub-domèn ou a, ajoute sa ki annapre yo nan dosye blòk sèvè a:

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

Sove dosye a (CTRL+O), Lè sa a, sòti (CTRL+X).

Koulye a, fè yon kouri sèk pou asire w pa gen okenn erè nan konfigirasyon Nginx oswa blòk sèvè ou a:

sudo nginx -t

Si tout bagay ap travay kòrèkteman, egzanp pwodiksyon ta dwe:

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

Rechaje Nginx pou chanjman an pran efè:

sudo systemctl reload nginx

Si ou te etabli domèn ou ak dosye DNS pou montre IP sèvè ou a, kounye a ou ka jwenn aksè nan Jellyfin Media Server ou a nan jellyfin.example.com.

Sekirize Nginx oswa Apache ak ann ankripte Sètifika SSL gratis

Idealman, ou ta vle kouri Apache ou oswa Nginx sou HTTPS lè l sèvi avèk yon sètifika SSL. Pi bon fason pou fè sa se sèvi ak Ann ankripte, yon otorite sètifika gratis, otomatik epi ouvè dirije pa la Gwoup rechèch sekirite entènèt san bi likratif (ISRG).

Premyèman, enstale pake certbot jan sa a:

Apache:

sudo apt install python3-certbot-apache -y

Nginx:

sudo apt install python3-certbot-nginx -y

Yon fwa enstale, kouri lòd sa a pou kòmanse kreyasyon sètifika ou a:

Apache:

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d jellyfin.example.com

Nginx:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d jellyfin.example.com

Konfigirasyon ideyal sa a gen ladan fòs HTTPS 301 redireksyon, yon header Strict-Transport-Security, ak OCSP Stapling. Jis asire w ke ou ajiste imèl la ak non domèn nan kondisyon ou yo.

Koulye a, URL ou a pral https://jellyfin.example.com olye pou yo HTTP://jellyfin.example.com.

Si ou itilize ansyen an URL HTTP, li pral otomatikman redireksyon nan T.

Ki jan yo mete ajou Jellyfin Media Server

Jellyfin ka mete ajou dapre nòmal la lòd aktyalizasyon apt ke ou ta itilize pi fò nan tan ou amelyore pakè sou sistèm ou an.

Pou tcheke pou mizajou:

sudo apt update

Si gen youn ki disponib, sèvi ak lòd ajou:

sudo apt upgrade

Ki jan yo retire (dezenstale) Jellyfin Media Server

Pou retire Jellyfin nan sistèm Debian ou a. Premyèman, retire lojisyèl an lè l sèvi avèk lòd sa a.

sudo autoremove install jellyfin --purge -y

Apre sa, retire depo ajoute a si ou pa gen plan pou itilize Jellyfin ankò.

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

Epi sa se li; ou te avèk siksè efase Jellyfin nan sistèm ou an.

Kòmantè ak konklizyon

Leson patikilye a kouvri yon ti jan nan enstale Jellyfin sou Debian 11 Bullseye ak mete kanpe otorizasyon ak aksè aleka atravè Apache oswa Nginx.

An jeneral, sèvè medya a se byen yon pwojè enteresan, epi li se immakula ak bèl sou je yo ak travay byen soti nan bwat la. Si ou se yon itilizatè Plex oswa Emby alontèm, li se yon bon lide pou kenbe yon je n sa a kòm yon altènativ si ou pa vle swap kounye a paske sa a ta ka yon sovè ki gen anpil valè.

Ban-m pran abònman
Notifye nan
5 kòmantè
Aliye komantè
Wè tout kòmantè
Alvaro
Guest
Jedi, 6 janvye 2022 8:44 am

Bonjou. Premye bagay pou felisite w pou gwo manyèl ou te fè a. Mwen pa te gen pwoblèm nan nenpòt ki pwen ak tout bagay trè byen eksplike. Men, mwen gen yon pwoblèm ak fonksyon syncplay la paske li pa travay atravè https men li travay si mwen jwenn aksè ak ip lokal mwen an. Èske ou ta ka ban mwen yon men?

Alvaro
Guest
Reply to  Jozye Jak
Vandredi, 7 janvye 2022 6:57 am

Mèsi anpil pou repons rapid la.
Mwen itilize nginx
Mèsi

Alvaro
Guest
Samdi, 8 janvye 2022 9:41 pm

Hello.
Mwen kapab kounye a kreye gwoup yo nan syncplay. Jis ajoute liy sa a: proxy_set_header Upgrade $ http_upgrade.
Mèsi

adplus-piblisite
5
0
Ta renmen panse ou, tanpri fè kòmantè.x
()
x