From DVDs to Digital: My Jellyfin Server Adventure


Preface

Before diving into this post, it’s important to note that this guide assumes you have a basic understanding of Docker and Docker Compose.

Project Overview

Jellyfin is a free media hosting server designed to allow you to store and provide multimedia through your local network. I chose Jellyfin because it aligns perfectly with my goal of staying cost-free while not sacrificing functionality. Plus, let’s be honest—I’m broke.

The Journey

The primary goal of this project was to digitize all of my movies and TV shows and put them in a single place for easy access. Instead of using a DVD player or scrolling through five different streaming services to find a movie, I wanted a centralized media library.

For this setup, I am using Docker Compose on an Ubuntu VM that runs on a Proxmox Host. The detailed setup process for Docker and Docker Compose will be discussed in another blog post on my Walkthrough’s page (which is currently a work in progress).

Setting Up the Jellyfin Server

The initial step involves creating a docker-compose.yml file to define the Jellyfin container and its configuration. Here is an example of what the Docker Compose file might look like:

YAML
version: '3.8'
services:
  jellyfin:
      image: jellyfin/jellyfin
      container_name: jellyfin
      volumes:
        - ./path/to/config:/config
        - ./path/to/cache:/cache
        - ./path/to/media:/media
      ports:
        - 8096:8096
      restart: unless-stopped

Replace ./path/to/config, ./path/to/cache, and ./path/to/media with the appropriate paths on your host system. You can then run the container with the follow command:

YAML
docker compose up -d

Challenges and Solutions

One of the biggest challenges I faced during the setup was syncing a folder on the Docker container to an SMB share from my Synology NAS. I used a Synology NAS to set up storage for this project and had to share a folder for the media through SMB.

After some research, I found that I could bind a folder from the Ubuntu host to the Jellyfin container and then set up a file share between my Synology NAS and that specific folder. This way, when I add media to the folder on my NAS, it is also added to the Ubuntu VM and the Jellyfin container.

Outcome and Lessons Learned

The outcome was exactly as I expected. I can now rip DVDs that I own to digitize them, place them into a shared folder on my NAS, and update the Jellyfin libraries to recognize the new titles. This allows me to watch them from any device on my network.

A key takeaway from this project is the importance of understanding file sharing to its fullest. Setting up the Docker Compose file and Jellyfin container was the easy part. The real challenge came with troubleshooting file sharing between my NAS and the container.

Future Plans

My future plans include ripping all the DVDs I own to create a digital library. I also want to find a way to make the container accessible from outside of my network. Although I could probably do it via Cloudflare (similar to this site), hosting video through their tunnels might be against Cloudflare’s TOS (Terms of Service). We’ll see how it goes.


Comments

One response to “From DVDs to Digital: My Jellyfin Server Adventure”

  1. Veronica Avatar
    Veronica

    Awesome!

Leave a Reply

Your email address will not be published. Required fields are marked *