8.2.20 Deploying the Jellyfin Media Server

The Host Banner Jellyfin

Jellyfin is a free, open-source, cross-platform media server that allows you to create your own private streaming hub. With Jellyfin, you can store, organize, and stream videos, music, photos, and other media content without relying on third-party cloud services or paid subscriptions.

The application supports streaming to a wide range of devices — from smartphones and tablets to TVs and media players (via browser, dedicated apps, or protocols like DLNA). Jellyfin also allows you to create multiple user accounts, set access permissions, import metadata from online databases, automatically download cover art and subtitles, and extend functionality through plugins.

This guide will walk you through deploying Jellyfin on a server running Ubuntu and configuring convenient access to your media content.

Benefits for Users

  • Free alternative to paid media servers
  • High performance
  • Easy to install and configure
  • Wide support for devices and media formats

Server Preparation

Requirements

  • Virtual or Dedicated server
  • Minimum: 2 CPU cores, 2GB RAM, 20GB SSD
  • Ubuntu 22.04 LTS or newer
  • Root access or sudo privileges
<$>[info]

[label Variables]

  • SERVER_IP — your server’s IP address
  • USER — the server’s username <$>

Security

Configure firewall rules:

Warning: Ensure SSH port (22) is open before applying firewall rules.

UFW:

sudo ufw allow OpenSSH
sudo ufw allow 8096/tcp
sudo ufw enable

iptables:

sudo iptables -A INPUT -p tcp --dport 8096 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -P INPUT DROP

Installation Instructions

Update system packages:

sudo apt update && sudo apt upgrade -y

apt_update_upgrade

Install HTTPS transport and add the Jellyfin repository:

sudo apt install apt-transport-https curl gnupg -y
curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/jellyfin.gpg

Add the Jellyfin repository:

echo "deb [arch=$( dpkg --print-architecture ) signed-by=/usr/share/keyrings/jellyfin.gpg] https://repo.jellyfin.org/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list

echo

Install Jellyfin:

sudo apt update && sudo apt install jellyfin -y

install_jellyfin

Enable and start Jellyfin:

sudo systemctl enable jellyfin
sudo systemctl start jellyfin

Jellyfin Configuration Overview

Most of Jellyfin’s configuration is done through the user-friendly web interface. After the initial launch, you’ll go through a basic setup wizard (language selection, user account creation, adding media libraries).

Once the initial setup is complete, you can access the administration dashboard, where advanced configuration options are available.

Examples of available sections:

  • Dashboard → Libraries Add new media libraries (e.g., movies, TV shows, music) from specific directories on the server.

  • Dashboard → Playback Configure streaming quality, bandwidth limits, and hardware acceleration (HW Transcoding).

  • Dashboard → Users & Access Manage user accounts, access levels, and parental controls.

  • Dashboard → Plugins Install and update plugins that extend the server’s functionality — for example, metadata importers, authentication providers, Trakt.tv integration, and more.

  • Dashboard → Networking Set up networking options, remote access, HTTPS, and proxy server settings.

Verifying the Installation

Check Jellyfin status:

sudo systemctl status jellyfin

systemctl_status

Access the web interface: Open a browser and navigate to the following address, then follow the setup wizard:

http://SERVER_IP:8096

web-interface_installation

Common Errors
Error Solution
Jellyfin web interface not accessible Check firewall settings (port 8096 must be open); verify Jellyfin is running using sudo systemctl status jellyfin
Repository addition error Check for typos in commands and make sure required packages (apt-transport-https, gnupg) are installed
Jellyfin doesn’t start after reboot Run sudo systemctl enable jellyfin to ensure the service starts automatically