Set up Jellyfin and Emby - docker-compose

I am showing how Emby and Jellyfin can be hosted locally with docker and what to expect from it.

First I need two docker-compose.yaml files, one for Jellyfin:

Also Dockerhub

version: "3"

services:
  jellyfin:
    image: "jellyfin/jellyfin:latest"
    container_name: jellyfin
    user: 1000:1000
    restart: unless-stopped
    ports:
      - 8097:8096
    volumes:
      - ./config:/config
      - ./cache:/cache
      - ./media:/media
      # - ./media/share1:/mnt/movies
      # - ./media/share2:/mnt/music

And one for Emby:

Also Dockerhub

version: "3"

services:
  emby:
    image: emby/embyserver:latest
    # runtime: nvidia
    container_name: emby
    environment:
      # - NVIDIA_VISIBLE_DEVICES=all
      - GID=100
      - UID=1000
      - GIDLIST=100
    # command: nvidia-smi
    restart: unless-stopped
    ports:
      - 8096:8096
      - 8920:8920
    volumes:
      - ./config:/config
      - ./media/share1:/mnt/movies
      - ./media/share2:/mnt/music

As one can see, I have commented out all NVIDIA runtime functionality since I have not gotten it to work in like the half an hour I have fiddled around with it.


Now I have some HDDs mounted on my local server directly since I have some samba shares running on it, these are mounted in /media/share1 and /media/share2 and will be mounted inside the respective container under /mnt/movies and /mnt/music.

Those HDDs are being automounted on boot and I have created a folder called media where my respective docker-compose.yaml file resides.

Now I can mount those symlinks into the docker container and the respective media streaming service can access it:

volumes:
  - ./media/share1:/mnt/movies
  - ./media/share2:/mnt/music

Now it is a simple docker-compose up -d and you are good to go for now.

In the above example the Jellyfin installation can be reached via http://server:80 and the Emby installation can be reached by their default port like so: http://server:8096.

Go ahead and install the android apps for each service and try them out, it depends on the size of the library how long you might have to wait for the initial id3-tags and images to be downloaded and attached to their respective files.

Set up OSMC

I have installed the Kodi plugin for Jellyfin and attached my server (careful: the setup-critical popups close quickly, might have to restart the extension or Kodi completely if closed prematurely) to it and instantly Kodi starts caching all images it can receive from the server.

It should be pretty much the same with the Kodi plugin for Emby but I’m ought to trying this out today.

I’ll be back with more info on the installation process and everything.