Published on

How to host Jellyfin on your Ubuntu home server

Authors
  • avatar
    Name
    Kaur Kadak
    Twitter

In this tutorial we'll get Jellyfin server running on a fresh Ubuntu Linux server install and we'll take a look on how we could transfer media from your computer onto the server.

Versions at the time of writing:

  • Linux - Ubuntu Server 24.04.2
  • Jellyfin 10.10.7

How to setup Jellyfin on Ubuntu server

After a fresh install of Ubuntu Server, you'll be greeted by a command line.

username@hostname:~$

Luckily for us, downloading Jellyfin for linux has been made super simple. You only need to make sure that your server has internet connection and then run the following command:

curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash

This will handle installation of all necessary software to run Jellyfin.

You can check wheter Jellyfin is running, by running the command:

sudo systemctl status jellyfin

Example response of a running service:

● jellyfin.service - Jellyfin Media Server
     Loaded: loaded (/lib/systemd/system/jellyfin.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2025-01-15 14:30:22 UTC; 2h 15min ago
       Docs: https://jellyfin.org/docs/
   Main PID: 1234 (jellyfin)
      Tasks: 25 (limit: 4915)
     Memory: 156.2M
        CPU: 1min 23.456s
     CGroup: /system.slice/jellyfin.service
             └─1234 /usr/bin/jellyfin --webdir=/usr/share/jellyfin/web --restartpath=/usr/lib/jellyfin/restart.sh --ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg

Jan 15 14:30:22 hostname systemd[1]: Started Jellyfin Media Server.
Jan 15 14:30:23 hostname jellyfin[1234]: [14:30:23] [INF] Jellyfin version: 10.8.13
Jan 15 14:30:23 hostname jellyfin[1234]: [14:30:23] [INF] Operating system: Linux

Key indicators that our Jellyfin instance is running nicely:

  • Active: active (running) means that our service is running
  • Loaded: loaded; enabled; means it's installed and will start at boot

You can then access the user interface from a device that's connected to the same network your server is running on by going to: your_server_ip:8096

For example, my server is running on an old mini Dell PC, which is connected to my home network with an ethernet cable. This means it's possible for my LG TV to connect straight to the Jellyfin server over WiFi because they are on the same network and LG has a Jellyfin app developed for it, which makes the whole process super-easy.

Setup: TV (WiFi) → Router (ethernet/WiFi bridge) → Server (ethernet)

If everything is running nicely, you should be greeted with a view like this:

Jellyfin user setup page

How to transfer media from your laptop to your server

This is how I made the transfer from my Windows laptop to my server.

  • Download a movie
  • Open Powershell
  • Use the secure copy command (scp)
    • Example: scp C:\path\to\movie.mp4 username@server-ip:~/
    • I'm copying to home directory initially, becaause I don't want to mess around with write permissions on the server.
  • Move the movies on your server where ever you've set up your Jellyfin media library
    • Example: mv ~/movie.mp4 ../../var/lib/jellyfin/movies/

Bonus: How to add subtitles to your favorite show

In the Jellyfin dashboard, search for plugins and install Open Subtitles plugin.

Then all you need to do is create an account at OpenSubtitles.com and enter your credentials into your Jellyfin OS plugin setup. This will grant you 20 free downloads of subtitles for any media per day.

PS: If you are not finding subtitles for your movie/series, make sure the file name is formatted as follows:

  • For series: <Show name> <Year> <Seaso number> <Episode number> <Episode title>
  • Example: Show (2021) S01E01 Title.avi
  • For movies: <Movie name> <Year>
  • Example: Best_Movie_Ever (2019)