Skip to content

Installing Jellyfin with Docker Compose

This guide shows a simple way to install Jellyfin using Docker Compose on Ubuntu.

Jellyfin is a free and open-source self-hosted media server for streaming and organizing personal media collections.

Jellyfin screenshot from my homelab.

Official project:

Create the project folder

mkdir -p ~/docker/jellyfin
cd ~/docker/jellyfin

Create the Docker Compose file

Create:

nano docker-compose.yml

Paste:

services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    network_mode: bridge
    ports:
      - "8096:8096"
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /media:/media
    restart: unless-stopped

Start Jellyfin

Run:

docker compose up -d

Access Jellyfin

Open:

http://YOUR_SERVER_IP:8096

Example:

http://192.168.1.50:8096

Notes

  • Replace /media with the path to your own media library
  • The config folder stores Jellyfin settings
  • The cache folder stores temporary files

Advanced Example (Reference Only)

This is my current Jellyfin setup. It includes additional configuration for hardware acceleration, performance tuning, and host-specific paths.

It is NOT required for a standard installation.

services:
  jellyfin:
    image: linuxserver/jellyfin:latest
    container_name: jellyfin
    stop_grace_period: 60s
    network_mode: host

    environment:
      - PUID=1026
      - PGID=100
      - TZ=America/Santo_Domingo

    group_add:
      - "44"

    shm_size: "2gb"

    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128

    volumes:
      - /opt/docker/jellyfin/config:/config
      - /mnt/sjb2/media:/media
      - /opt/docker/jellyfin/transcode:/transcode

    restart: unless-stopped