Skip to main content

Jellyfin

Installation

1. Install Packages

sudo apt install apt-transport-https gnupg lsb-release<br></br>
curl -fsSL https://repo.jellyfin.org/debian/jellyfin_team.gpg.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/debian-jellyfin.gpg<br></br>
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/debian $( lsb_release -c -s ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
sudo apt update<br></br>
sudo apt install jellyfin
sudo systemctl enable --now jellyfin.service 
<br></br>sudo systemctl restart jellyfin.service

2. Setup reverse proxy

In your new Jellyfin installation, head over to the Admin Dashboard -> Advanced -> Networking and disable HTTPS (if enabled), then add your local host (127.0.0.1) to the known proxies, to allow NGINX to act as a reverse proxy. After that, restart your Jellyfin server.

sudo systemctl restart jellyfin

Create a new VHOST in NGINX, /etc/nginx/sites-enabled/streaming.example.org and insert the following configuration (adapting the servername etc. of course):

upstream jellyfin {<br></br>
    server 127.0.0.1:8096;<br></br>
}<br></br><br></br>

server {<br></br>
    listen 443 ssl http2;<br></br>
    listen [::]:443 ssl http2;<br></br>
    server_name streaming.example.org;<br></br>
    ssl_certificate /etc/ssl/...;<br></br>
    ssl_certificate_key /etc/ssl/...;<br></br>
    ssl_trusted_certificate /etc/ssl/...;<br></br><br></br>

    location / {<br></br>
        proxy_pass http://jellyfin;<br></br>
        proxy_http_version 1.1;<br></br>
        proxy_set_header Upgrade $http_upgrade;<br></br>
        proxy_set_header Connection "upgrade";<br></br>
        proxy_set_header Host $host;<br></br>
        proxy_set_header X-Real-IP $remote_addr;<br></br>
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br></br>
        proxy_set_header X-Forwarded-Proto https;<br></br>
        proxy_set_header X-Nginx-Proxy true;<br></br>
        proxy_redirect off;<br></br>
    }<br></br><br></br>

}<br></br><br></br>

server {<br></br>
    listen 80;<br></br>
    listen [::]:80;<br></br>
    server_name streaming.example.org;<br></br>
    return 301 https://$server_name$request_uri;<br></br>
}

You can now reach your Jellyfin instance over streaming.example.org.