emby/embyserver

By emby

Updated 3 days ago

Official Emby Media Server

Image
665

100M+

emby/embyserver repository overview

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 arm32v7, arm64v8 and amd64 architectures as multi-platform images.

Supported Tags
  • latest: latest stable multi-platform release
  • beta: latest beta multi-platform 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: on-failure

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
    --gpus all \ # 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)
    --restart on-failure # Auto-start on boot, and restart on failure
    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. It is recommended to leave UID and GID as is so that emby runs with the least amount of privileges, and use GIDLIST to obtain the permissions you need.

ls -l <directory> will give you user and group information of your media directories and render nodes, getent passwd <user> | cut -d: -f3 and getent group <group> | cut -d: -f3 will respectively print UID and GID.

Once your container is running, you may access the web interface on port 8096 or 8920 on the IP of your docker host: http://<docker_host>:8096.

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.

Tag summary

Content type

Image

Digest

sha256:5bbf517b0

Size

130.6 MB

Last updated

3 days ago

docker pull emby/embyserver:beta