OpenLogs

All tools

Jellyfin

Media server that streams your own movies, shows, music and photos to apps and browsers.

Replaces

Paid media streaming services, such as Plex and Netflix.

All open-source alternatives to Netflix, Plex

Difficulty

Difficulty: Easy

1 service, 5 volume mounts, no env values to set, no elevated host access. Heuristic score 2 of 11: easy.

Stack

C# (language)

Deployment

docker_compose

Requirements

Not stated.

License

GPL-2.0 (OSI-approved open source)

Read from github.com/jellyfin/jellyfin/blob/c7ce6a1/LICENSE

Business model

Unknown

The README at the pinned commit does not state a business model, so it stays unknown.

Source: github.com/jellyfin/jellyfin/blob/c7ce6a1/README.md, read on .

Repository

jellyfin/jellyfin

GitHub stats

Stars
58,371
Forks
5,697
Open issues and pull requests
805
Last push
2026-10-22
Latest release
v12.2
Released
2026-10-05

From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as GPL-2.0.

Compose file

Config check passed docker compose config exited 0 on this exact file on 2026-10-22.
_container-docker-compose.md Version 1
services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    # Optional - specify the uid and gid you would like Jellyfin to use instead of root
    user: uid:gid
    ports:
      - 8096:8096/tcp
      - 7359:7359/udp
    volumes:
      - /path/to/config:/config
      - /path/to/cache:/cache
      - type: bind
        source: /path/to/media
        target: /media
      - type: bind
        source: /path/to/media2
        target: /media2
        read_only: true
      # Optional - extra fonts to be used during transcoding with subtitle burn-in
      - type: bind
        source: /path/to/fonts
        target: /usr/local/share/fonts/custom
        read_only: true
    restart: 'unless-stopped'
    # Optional - alternative address used for autodiscovery
    environment:
      - JELLYFIN_PublishedServerUrl=http://example.com
    # Optional - may be necessary for docker healthcheck to pass if running in host network mode
    extra_hosts:
      - 'host.docker.internal:host-gateway'

From a separate packaging repository: github.com/jellyfin/jellyfin.org/blob/438fb0c/docs/general/installation/_container-docker-compose.md.

Compose example from the project's own docs: jellyfin/jellyfin.org:docs/general/installation/_container-docker-compose.md.

Install

  1. Docker with the Compose plugin (github.com/jellyfin/jellyfin.org/blob/438fb0c/docs/general/installation/_container-docker-compose.md#L5-L37)

    A host with Docker and the Docker Compose plugin. This entry runs from a compose file.

  2. Save the code block as docker-compose.yml (github.com/jellyfin/jellyfin.org/blob/438fb0c/docs/general/installation/_container-docker-compose.md)

    Use the compose file shown above.

  3. What the compose file check ran with (github.com/jellyfin/jellyfin.org/blob/438fb0c/docs/general/installation/_container-docker-compose.md#L5-L37)

    This compose file is copied unchanged from the code block in https://github.com/jellyfin/jellyfin.org/blob/438fb0cdc7144dcb44ebb04385a2761d81be2c5d/docs/general/installation/_container-docker-compose.md#L5-L37. The check ran on that block alone. The container installation guide of the project shows this file and tells the reader to run docker compose up in the same folder.

  4. Start it (github.com/jellyfin/jellyfin.org/blob/438fb0c/docs/general/installation/_container-docker-compose.md)
    docker compose up -d
  5. Open the app (github.com/jellyfin/jellyfin.org/blob/438fb0c/docs/general/installation/_container-docker-compose.md)

    Open http://localhost:8096. The compose file publishes host port 8096 for the jellyfin service.

Compose file check: config_ok on 2026-10-22.

Gotchas and maintenance

Gotchas

Signals

  • Open issues and pull requests: 805
  • Last push: 2026-10-22 (0 days before this page was built)
  • Latest release: v12.2 on 2026-10-05 (17 days before this page was built)