Official Emby Media Server (amd64)
7c8f9035
222.1 MB
10 days ago
221.6M
Readme

Emby Media Server

Alt text

Introduction

Emby Server is a home media server built on top of other popular open source technologies such as Service Stack, jQuery, jQuery mobile, and .NET Core.

It features a REST-based API with built-in documention to facilitate client development. We also have client libraries for our API to enable rapid development.

Supported Architectures

Emby supports the following architectures, each with its own dedicated repository.

  • amd64: emby/embyserver
  • arm32v7: emby/embyserver_arm32v7
  • arm64v8: emby/embyserver_arm64v8

All instructions below are using the amd64 repository as an example, please make sure to replace emby/embyserver with the appropriate repository for your desired architecture.

Supported Tags

  • latest: latest stable release
  • beta: latest beta release

Issues

Before reporting your issue please try updating Docker to the latest version and check if it resolves the issue. Refer to the Docker installation guide for instructions.

SELinux users should try disabling SELinux using the command setenforce 0 to see if it resolves the issue.

If the above recommendations do not help then report your issue along with the following information:

  • Output of the docker version and docker info commands
  • The docker run command or docker-compose.yml used to start the image. Mask out the sensitive bits.
  • Please state if you are using Boot2Docker, VirtualBox, etc.

Getting started

Installation

It is recommended you install directly from the Docker Hub.

docker pull emby/embyserver:latest

The new .NET Core version is entirely configured via the command line. The launcher script and configuration files are gone, as well as the in-place update feature. Updates are now retrieved by simply pulling the latest image from the hub.

The container can be run using the following Docker Compose file:

version: "2.3"
services:
  emby:
    image: emby/embyserver
    container_name: embyserver
    runtime: nvidia # Expose NVIDIA GPUs
    network_mode: host # Enable DLNA and Wake-on-Lan
    environment:
      - UID=1000 # The UID to run emby as (default: 2)
      - GID=100 # The GID to run emby as (default 2)
      - GIDLIST=100 # A comma-separated list of additional GIDs to run emby as (default: 2)
    volumes:
      - /path/to/programdata:/config # Configuration directory
      - /path/to/tvshows:/mnt/share1 # Media directory
      - /path/to/movies:/mnt/share2 # Media directory
    ports:
      - 8096:8096 # HTTP port
      - 8920:8920 # HTTPS port
    devices:
      - /dev/dri:/dev/dri # VAAPI/NVDEC/NVENC render nodes
      - /dev/vchiq:/dev/vchiq # MMAL/OMX on Raspberry Pi
    restart: unless-stopped

Or using the following command:

docker run -d \
    --name embyserver \
    --volume /path/to/programdata:/config \ # Configuration directory
    --volume /path/to/share1:/mnt/share1 \ # Media directory
    --volume /path/to/share2:/mnt/share2 \ # Media directory
    --net=host \ # Enable DLNA and Wake-on-Lan
    --device /dev/dri:/dev/dri \ # VAAPI/NVDEC/NVENC render nodes
    --device /dev/vchiq:/dev/vchiq \ # MMAL/OMX on Raspberry Pi
    --runtime=nvidia \ # Expose NVIDIA GPUs
    --publish 8096:8096 \ # HTTP port
    --publish 8920:8920 \ # HTTPS port
    --env UID=1000 \ # The UID to run emby as (default: 2)
    --env GID=100 \ # The GID to run emby as (default 2)
    --env GIDLIST=100 \ # A comma-separated list of additional GIDs to run emby as (default: 2)
    emby/embyserver:latest

Please adapt the UID, GID and GIDLIST values to match the owner of your media files. GIDLIST is also needed to grant access to VAAPI/NVDEC/NVENC render nodes.

Upgrade

The command used to install should also be used to upgrade:

docker pull emby/embyserver:latest

DLNA and WoL

The easiest way for DLNA and Wake-on-Lan to work properly is to use the host networking mode. It may work in bridge mode as well with a more advanced configuration.

VAAPI

Note: This applies to amd64 only.

Emby now comes with a VAAPI-enabled ffmpeg out of the box on Intel platforms with HD graphics. For VAAPI to work, emby needs access to a render node, usually /dev/dri/renderD128. On most modern distros, this render node belongs to the video group, others belong to the render group. All you need to do is mount the render node and add the video group GID to the GIDLIST variable as described above.

You can get the video and/or render GIDs using the following command:

getent group video | cut -d: -f3
getent group render | cut -d: -f3

NVDEC/NVENC

Note: This applies to amd64 only.

Emby can also utilize your NVIDIA GPU with a little more work, using the NVIDIA docker runtime. You will need to install the nvidia-container-runtime or the legacy nvidia-docker2 package first depending on your distribution, then restart the docker daemon.

Again, you can get the video and/or render GIDs using the following command and set the GIDLIST variable accordingly:

getent group video | cut -d: -f3
getent group render | cut -d: -f3

unRAID

Please navigate to the Docker settings page on unRAID's Web-UI and under repositories add:

https://github.com/MediaBrowser/Emby.Build/tree/master/unraid-templates/emby

For more information on adding templates to unRAID please visit the unRAID forums.