Jellyfin Media Server Installation (Docker on macOS)

This guide walks you through installing Jellyfin Media Server in a Docker container on macOS using Docker Desktop. This approach keeps Jellyfin fully isolated from your operating system while still allowing it to access your local media folders.

By the end of this guide, you’ll be able to stream your movies, TV shows, and music to any device in your home — and optionally access them remotely. If you want to install Jellyfin in Docker on Windows, be sure to use this alternative guide.


What is Docker?

Docker allows you to package and run applications inside lightweight, isolated containers. Instead of installing Jellyfin directly on macOS, we run it in a container that includes everything it needs. This results in a cleaner setup, simpler upgrades, easier backups, and a configuration that can be moved to another machine with minimal effort.


What is Jellyfin?

Jellyfin is an open-source media server that organizes and streams your local media files to phones, tablets, smart TVs, and web browsers. It automatically downloads metadata, artwork, and episode information to create a clean, Netflix-style interface for your personal media library.


Requirements

  • macOS (Intel or Apple Silicon)

  • Admin access

  • At least 8 GB RAM recommended

  • Internet connection


Step 1 – Install Docker Desktop on macOS

  1. Download Docker Desktop for Mac:
    https://www.docker.com/products/docker-desktop/

  2. Open the .dmg file and drag Docker.app into your Applications folder

  3. Launch Docker from Applications

  4. When prompted:

    • Allow system permissions

    • Approve background services

    • Enter your macOS password

  5. Wait until Docker shows:

    Docker Desktop is running

You can verify by opening Terminal and running:

docker version

Step 2 – Create Your Media & Config Folders

Choose where you want your media stored. A clean example:

/Users/yourname/Media/Movies
/Users/yourname/Media/TV
/Users/yourname/Media/Music
/Users/yourname/Jellyfin/Config
/Users/yourname/Jellyfin/Cache

Create them with Finder or via Terminal:

mkdir -p ~/Media/{Movies,TV,Music}
mkdir -p ~/Jellyfin/{Config,Cache}

Your structure should look like:

~/Media/
├─ Movies/
├─ TV/
└─ Music/
~/Jellyfin/
├─ Config/
└─ Cache/

Step 3 – Share Folders with Docker Desktop

This step is critical on macOS.

  1. Open Docker Desktop

  2. Go to Settings

  3. Click Resources → File Sharing

  4. Add:

    /Users/yourname/Media
    /Users/yourname/Jellyfin
  5. Click Apply & Restart

If you skip this, Docker will not be able to access your files.


Step 4 – Create the Docker Compose File

Open Terminal:

mkdir ~/jellyfin-docker
cd ~/jellyfin-docker
nano docker-compose.yml

Paste:

services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
ports:
- "8096:8096"
volumes:
- /Users/yourname/Jellyfin/Config:/config
- /Users/yourname/Jellyfin/Cache:/cache
- /Users/yourname/Media:/media
restart: unless-stopped

Important: Replace yourname with your actual macOS username.

Save and exit:

  • CTRL + X

  • Y

  • Enter


Step 5 – Start Jellyfin

From the same folder:

docker compose up -d

Verify:

docker ps

You should see a container named jellyfin running.


Step 6 – Initial Jellyfin Setup

Open a browser and go to:

http://localhost:8096

Then:

  1. Select your preferred language → Next

  2. Create admin username and password → Next

  3. Add Media Libraries:

    • Movies → /media/Movies

    • TV Shows → /media/TV

    • Music → /media/Music

  4. Keep defaults → Next

  5. Finish → Log in


Step 7 – Add Media

Copy your files into:

~/Media/Movies
~/Media/TV
~/Media/Music

Then inside Jellyfin:

  • Menu (☰) → Refresh Metadata

Your content will appear.


Step 8 – Play Jellyfin on Devices

Install Jellyfin on:

  • Apple TV

  • iPhone / iPad

  • Android TV

  • Smart TVs

  • Or use a web browser

When prompted for the server:

http://<your-mac-ip>:8096

Log in with the account you created.


Optional (But Strongly Recommended)

A) Hardware Transcoding on macOS

On Apple Silicon:

  • Jellyfin will use software transcoding inside Docker

  • Hardware acceleration is limited inside Docker on macOS

  • For heavy transcoding, a Linux host is preferred

On Intel Macs:

  • Quick Sync may be available, but support varies

  • Many users run Jellyfin in direct macOS installs for hardware acceleration

For most users: direct play works perfectly and transcoding is rarely needed.