DiyMediaServer
Featured image of post Turn an Old Computer Into a Media Server Part 3 Installing Jellyfin and Its Dependencies

Turn an Old Computer Into a Media Server Part 3 Installing Jellyfin and Its Dependencies

Installing Jellyfin on Ubuntu Server: A Beginner’s Guide to Your Media Server

Recap: Your Journey So Far

In the previous posts, we turned an old PC into a server running Ubuntu Server 24.04 LTS. Along the way, we:

  • Covered why an old PC is a smart starting point. It’s cheap, eco-friendly, and forgiving for beginners.
  • Walked through the minimum hardware Jellyfin needs. You don’t need a new rig to run a media server.
  • Installed Ubuntu Server step by step, from flashing a USB drive to finishing the installer.
  • Added storage and got the drives partitioned, formatted, and mounted.
  • Set up a Samba share so you can drop files onto the server from any machine on your network.

The server is ready. Time to put Jellyfin on it. I ran every step in this post on a fresh Ubuntu Server 24.04 LTS install, and the same commands work on 22.04 and 23.10 with no changes.

What Is Jellyfin?

Jellyfin is a free, open-source media server that organizes, manages, and streams your collection to any device. Think of it as your own Netflix, but you own the data and the server. Movies, TV, music, photos, all of it lives in one place you can hit from your phone, smart TV, computer, or a web browser.

Here’s what we’ll cover:

  1. Preparing Ubuntu Server. Patch the system and install curl.
  2. Adding the Jellyfin repository. Pull the official GPG key and source list so apt knows where to look.
  3. Installing Jellyfin. Run apt install, then enable, start, and verify the service.
  4. Accessing Jellyfin for the first time. Find the server IP, hit port 8096, and load the setup wizard.

Section 1: Preparing Your Server for Jellyfin

SSH Into Your New Server

Not sure how to use SSH? Read this first: Master the Basics - How to SSH Into a Linux Server.

Steps to Connect Using SSH

Open PowerShell on Windows and run:

ssh <username>@<server-ip>

Example from Part 1:

ssh kryptikwurm@172.27.0.200

Authenticate. Type the server password when prompted. You won’t see any characters as you type. That’s normal. SSH hides the input on purpose.

Once you’re in, you’ve got a full remote shell. Time to install Jellyfin.

Install System Updates and Curl

Update the system first.

Patches close security holes and pull in the bug fixes that keep new software from breaking on day one. Run this before anything else:

sudo apt update && sudo apt upgrade -y

Install curl.

curl is a command-line tool for moving data between your machine and a remote server. It speaks HTTP, HTTPS, FTP, and a pile of other protocols, and you’ll use it to grab the Jellyfin GPG key in the next step. It might already be on your system. Install it anyway. It’s harmless if it’s already there:

sudo apt install curl -y

Section 2: Adding the Jellyfin Repository

Adding the Jellyfin repository pulls Jellyfin straight from its official source. You get the latest stable release, security fixes show up through normal apt upgrade runs, and you never have to chase a .deb file off a forum post.

Run these one at a time.

First, fetch and store the GPG key. apt uses it to verify Jellyfin packages haven’t been tampered with:

curl -fsSL https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/jellyfin.gpg

Next, register the repository. This drops a file into /etc/apt/sources.list.d/ so Ubuntu knows where to look for Jellyfin and its updates:

echo "deb [signed-by=/usr/share/keyrings/jellyfin.gpg] https://repo.jellyfin.org/ubuntu noble main" | sudo tee /etc/apt/sources.list.d/jellyfin.list

Now refresh the package index. sudo apt update doesn’t install or upgrade anything. It tells your system what’s available so the install step finds Jellyfin:

sudo apt update

If it worked, you’ll see a line like this in the output:

https://repo.jellyfin.org/ubuntu noble InRelease

Section 3: Installing Jellyfin

Use apt to install Jellyfin:

sudo apt install jellyfin -y

Enable the service so it starts at boot:

sudo systemctl enable jellyfin

Start it now, without rebooting:

sudo systemctl start jellyfin

Verify it’s running:

sudo systemctl status jellyfin

You’re looking for a line like this:

Active: active (running) since <date and time>

If you see failed or inactive (dead) instead, check journalctl -u jellyfin -n 50 for the error before moving on.

Jellyfin Service Image

Section 4: Creating Groups and Permissions

Jellyfin runs as its own jellyfin user, and that user needs read access to your media folder. The cleanest way to handle this is a shared group both jellyfin and your login user belong to.

Create the group:

sudo groupadd media

Add the jellyfin user and your own user to it:

sudo usermod -aG media jellyfin
sudo usermod -aG media $(whoami)

Change the group owner on the media tree so anything in /mnt/media is readable by the group:

sudo chown -R :media /mnt/media

You may also need sudo chmod -R g+rX /mnt/media if existing files don’t have group-read set. And you’ll need to log out and back in (or run newgrp media) before your shell sees the new group membership.

Section 5: Accessing Jellyfin for the First Time

The server’s up. You’ve got the IP. Open a browser and hit it:

  1. Open a web browser. Use any modern browser. Chrome, Firefox, Edge, Safari. It doesn’t matter. Use a device on the same network as the server.
  2. Enter the address. In the address bar, type the following, swapping in your server’s IP:
http://<server-ip>:8096

Example:

http://172.27.0.200:8096
  1. Verify the Jellyfin interface loads. You should land on the Jellyfin setup wizard. That confirms the service is running and your network can reach it on port 8096.

If the page doesn’t load, double-check the IP with ip a on the server, and confirm Jellyfin is listening with sudo ss -tlnp | grep 8096. Most first-time failures are a typo’d IP or a firewall blocking the port.

Jellyfin Welcome Image

What’s Next?

Jellyfin is installed, running, and reachable. The next post walks through the setup wizard, points Jellyfin at your media folders, and gets the libraries scanning.

Ready to configure Jellyfin and start streaming? Head to Part 4 of this series to finish the build.

Was this useful?

Last updated on May 20, 2026 06:56 MDT