Paul Hermans

Personal website of Paul Hermans, former webhosting provider now in sabbatical.

Starting with Jellyfin

A friend of my showed me his Jellyfin system a few years ago and ever since I was convinced I wanted to build my own.

Today is that day.

We are going to install Jellyfin on our Proxmox server as a LXC container.

What is Jellyfin

Jellyfin is a free, open-source media server to stream your media to your TV and other devices, (serving as an alternative to proprietary services like Plex).

Have a look at jellyfin.org

1. Create Jellyfin container

bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/jellyfin.sh)"

Follow the prompts

2. Adding data disk

We are going to add our data disk.

Our datadisk lives under /mnt/data and our container ID = 105.

# Make a media directory
mkdir /mnt/data/media

# Open the jellyfin container config file
nano /etc/pve/lxc/105.conf

# Add this to the bottom of the file:
mp0: /mnt/data/media,mp=/media

# reboot container
pct reboot 105

# login to container
pct enter 105

# ls /media folder inside container
ls /media

# Make these directories:
mkdir /media/movies
mkdir /media/shows

3. Configure Jellyfin

Login Jellyfin webinterface

Jellyfin will be available at: http://container-ip:8096

Work through the first time wizard and add Libraries for movies and shows and connect to your folders /media/movies and /media/shows.

4. How to access your media folders?

To make your media folder accessable on the network we are going to run a second container with Samba for a SMB network share.

5. Create Samba container

We are going to create the container:

I chose name samba01, debian 13 image, static ip, and default settings.

This container got ID = 106.

# Open the jellyfin container config file
nano /etc/pve/lxc/106.conf

# Add this to the bottom of the file:
mp0: /mnt/data,mp=/datadisk

# reboot container
pct start 106

# login to container
pct enter 106

6. Install + Configure Samba

Go further inside the container shell:

# Update system
apt update && apt upgrade -y

# Install Samba
apt install samba -y

# Add user and set password
useradd -M -s /sbin/nologin sambauser
smbpasswd -a sambauser
smbpasswd -e sambauser

# Configure Samba
nano /etc/samba/smb.conf

# Add the share at the bottom of the file:
[Datadisk]
   comment = Samba Share
   path = /datadisk
   browseable = yes
   read only = no
   guest ok = no
   valid users = sambauser
   create mask = 0664
   directory mask = 0775

# Restart the Samba service
systemctl status smbd
systemctl restart smbd

7. Upload a test movie

From Linux: Open File Explorer and navigate to: smb://192.168.1.50/Datadisk

From Windows: Open File Explorer and navigate to: \192.168.1.50\Datadisk

Upload a test movie to the server.

8. Directory structure

Jellyfin expect these directory structures:

movies/
  └── Movie Name (2024)/
      └── Movie Name (2024).mkv

shows/
  └── Show Name/
      └── Season 01/
          ├── Show Name S01E01.mkv
          └── Show Name S01E02.mkv

Keeping the naming consistent helps Jellyfin’s metadata scraper match everything correctly.

9. Watch the movie

Install jellyfin app on your phone and on your TV.

Or stream the movie right from the web interface.

Happy days!