Jellyfin

Runs Jellyfin with persistent configuration and cache storage and exposes the web interface on port 8096. This template provides an open-source media server for streaming and organizing your own video and audio library.

yaml

docker-compose.yml

services:
  jellyfin:
    image: jellyfin/jellyfin:2026041305
    container_name: jellyfin
    ports:
      - ${JELLYFIN_HTTP_PORT}:8096/tcp
      - 7359:7359/udp
    volumes:
      - jellyfin_config:/config
      - jellyfin_cache:/cache
      - type: bind
        source: ./media
        target: /media
        read_only: true
    restart: unless-stopped
    environment:
      JELLYFIN_PublishedServerUrl: ${JELLYFIN_PUBLISHED_SERVER_URL}
volumes:
  jellyfin_config:
  jellyfin_cache:

.ENV

.env example

JELLYFIN_PUBLISHED_SERVER_URL=http://localhost:8096
JELLYFIN_HTTP_PORT=8096

deployment

Quick Start

  1. Create a working directory named after the service.
  2. Copy the compose file and generated `.env` into that directory.
  3. Review the variables and replace placeholders with real values.
  4. Run `docker compose up -d`.
mkdir jellyfin
cd jellyfin
# create docker-compose.yml
# create .env
docker compose up -d