Installing Jellyfin as a Snap package on an Ubuntu Linux system

Jellyfin is a free and open-source media server application. It can be installed on an Ubuntu Linux system as a Snap package through the App Center.

Install Jellyfin Server

Alternatively, you can install the software from a terminal window with the command sudo snap install itrue-jellyfin.

$ sudo snap install itrue-jellyfin
[sudo: authenticate] Password:               
itrue-jellyfin 10.11.11+ubu2604 from Isaac True (itrue) installed
$

If you ever need to uninstall it, you can do so with the command sudo snap remove itrue-jellyfin.

$ sudo snap remove itrue-jellyfin
itrue-jellyfin removed (snap data snapshot saved)
$

Once you've installed the application, the system should be listening on TCP port 8096 for HTTP connections and UDP port 7359 for local network client discovery. If HTTPS is enabled for Jellyfin, it will also listen on TCP port 8920. On an Ubuntu system, you can check on whether a system is listening on those ports with the ss command using the following arguments.

-t = TCP sockets
-u = UDP sockets
-l = listening sockets
-n = show numeric ports instead of service names

E.g.:

$ sudo ss -tln | grep -E '8096|8920'
LISTEN 0      512                             0.0.0.0:8096       0.0.0.0:*   
$ sudo ss -uln | grep '7359'
UNCONN 0      0                               0.0.0.0:7359       0.0.0.0:*   
$

You can also show the -p argument to show process information for the Jellyfin server process. E.g.:

$ sudo ss -tlnp | grep jellyfin
[sudo: authenticate] Password:               
LISTEN 0      512                             0.0.0.0:8096       0.0.0.0:*    users:(("jellyfin",pid=1912164,fd=484))   
$ 

You can also use the lsof command to see the process ID of the Jellyfin process.

$ sudo lsof -iTCP:8096 -sTCP:LISTEN
[sudo: authenticate] Password:               
COMMAND      PID USER  FD   TYPE   DEVICE SIZE/OFF NODE NAME
jellyfin 1912164 root 484u  IPv4 29170490      0t0  TCP *:8096 (LISTEN)
$

If Jellyfin is listening on TCP network port 8096, you should be able to use https://127.0.0.1:8096 in the address bar of a browser to access the "Welcome to Jellyfin!" page.

Welcome to Jellyfin

If you have installed Jellyfin as a snap package and need to add media folders where the content, such as files for movies or TV servies, is located on removeable media, such as a USB drive connected to the system, you need to ensure that the Jellyfin service has removable media and "mount-observe" access. The mount-observe privilege allows a snap application read access to active mount points and access to sensitive system paths lie /proc/self/mountinfo Snaps are "sandboxed", i.e., there are restrictions on what the snap package can access. By default, access is not granted to arbitrary locations on your filesystem.

If you have installed the Jellyfin Server snap package created by Isaac True, the name for the package is itrue-jellyfin. You can see the name if you use the ps command, e.g., ps -ef | grep jellyfin.

alice@Wonderland:~$ ps -ef | grep jellyfin
root       10906       1  0 Jul24 ?        00:02:14 /snap/itrue-jellyfin/195/usr/lib/jellyfin/bin/jellyfin --service --ffmpeg /snap/itrue-jellyfin/195/usr/lib/jellyfin-ffmpeg/ffmpeg
alice@W+  477186  477165  0 20:42 pts/0    00:00:00 grep --color=auto jellyfin
alice@Wonderland:~$

You can see what access the Jellyfin Server snap package has by issuing the command snap connections itrue-jellyfin in a terminal window. If you would like to see the access just for removable media or check mount-observe access, you can pipe the output into the grep command.

alice@Wonderland:~$ snap connections itrue-jellyfin
Interface          Plug                             Slot                Notes
content[gpu-2604]  itrue-jellyfin:gpu-2604          mesa-2604:gpu-2604  -
firewall-control   itrue-jellyfin:firewall-control  -                   -
home               itrue-jellyfin:home              :home               -
mount-observe      itrue-jellyfin:mount-observe     -                   -
network            itrue-jellyfin:network           :network            -
network-bind       itrue-jellyfin:network-bind      :network-bind       -
opengl             itrue-jellyfin:opengl            :opengl             -
removable-media    itrue-jellyfin:removable-media   -                   -
wayland            itrue-jellyfin:wayland           :wayland            -
x11                itrue-jellyfin:x11               :x11                -
alice@Wonderland:~$ snap connections itrue-jellyfin | grep removable
removable-media    itrue-jellyfin:removable-media   -                   -
alice@Wonderland:~$ snap connections itrue-jellyfin | grep mount-observe 
mount-observe      itrue-jellyfin:mount-observe     -                   -
alice@Wonderland:~

In the output of the snap connections, if a Plug is connected to a Slot, then access is granted. If there is a dash, then no connection exists and there is no access.

You can grant the removable-media privilege using the command sudo snap connect itrue-jellyfin:removable-media.

alice@Wonderland:~$ sudo snap connect itrue-jellyfin:removable-media
[sudo: authenticate] Password:
alice@Wonderland:~$ snap connections itrue-jellyfin | grep removable
removable-media    itrue-jellyfin:removable-media   :removable-media    manual
alice@Wonderland:~$

When I added the removable-media access, I found that the server still was not seeing the external USB drives, but it could after I added the mount-observe privilege.

alice@Wonderland:~$ sudo snap connect itrue-jellyfin:mount-observe
alice@Wonderland:~$ snap connections itrue-jellyfin | grep mount-observe
mount-observe      itrue-jellyfin:mount-observe     :mount-observe      manual
alice@Wonderland:~$

If you don't know where the external media is mounted, you can use the findmnt command, which lists all mounted filesystems, or you can use the df command, i.e., df -h. E.g., if USB drives were mounted under /run/media/alice, when I clicked on Folders in the Add Media Library window, I could put that in the Folder field and then see mounted drives that I could click on and browse directories in the field below, e.g. MS 1, MS 2, MS 3, etc. in the example below.

Jellyfin - Select Path

References:

  1. ss command in linux
    Last updated: May 5, 2026
    GeeksforGeeks

Related articles:

  1. Installing the MakeMKV Snap Package on a Ubuntu Linux system
    Date: March 29, 2026
  2. Changing the horizontal folder display on a Jellyfin server
    Date: August 11, 2026