Jellyfin Video Server Installation


Update: Now Jellyfin has provided a BASH script for APT user: https://jellyfin.org/docs/general/installation/linux/#debuntu-debian-ubuntu-and-derivatives-using-apt


Overall it's quite straightforward, especially when compared with installing the LAMP environment or WordPress, thanks to the APT package manager.

For the Ubuntu server, refer: https://jellyfin.org/docs/general/installation/linux#ubuntu

sudo apt install apt-transport-https

sudo add-apt-repository universe

curl -fsSL https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/debian-jellyfin.gpg

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

sudo apt update

sudo apt install jellyfin

Done.

Furthermore, we'd like to enable HTTPS to our sites, and maybe we'd want this server to be with more usages such as running another WordPress website. For this consideration, Nginx with reverse proxy may be the best solution:

Install Nginx to run a web server. Install certbot to acquire certificates for TLS encryption. Easy, just google for it and follow the official documentation.

Open a browser and visit http://your_ip:8096/ to login to your newly built Jellyfin server, initialize settings, and modify the web path to /jellyfin (as the following document) or /your_path (anything you like, and don't forget to change the path in the documentation).

Read the docs: https://jellyfin.org/docs/general/networking/nginx.html#https-config-example

The change of the path will only take effort after a reboot. It takes me a lot of time to realize it's not enough to press the "Save changes" button.

Mostly you just need to copy the configuration as the doc shows. Only one thing needs attention: in the following part, change the variable to IP address as the comment says.


    # (if you aren't using DNS remove the resolver line and change the variable to point to an IP address e.g 
set $jellyfin 127.0.0.1
)

    set $jellyfin jellyfin;

    resolver 127.0.0.1 valid=30;

Now restart the nginx.service, enter your_domain/your_path into the browser and everything should be working! Just visit your own (maybe with your family and friends) Jellyfin server and enjoy!