
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.
Emby supports the arm32v7, arm64v8 and amd64 architectures as multi-platform images.
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:
docker version and docker info commandsdocker run command or docker-compose.yml used to start the image. Mask out the sensitive bits.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.
The command used to install should also be used to upgrade:
docker pull emby/embyserver:latest
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.
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
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
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.
Content type
Image
Digest
sha256:5bbf517b0…
Size
130.6 MB
Last updated
3 days ago
docker pull emby/embyserver:beta