This repository contains a set of Docker containers that make the set up of Plex-Remote-Transcoder, a distributed transcoding backend for Plex, easy and fast.
Official Plex Docker container on which has been added a bunch of stuff to make it compatible with slave containers running remote transcoders:
- Based on the official Plex Docker image
- Plex-Remote-Transcoder installed and set up to be run as a master node
- Bundled with an SSH server & client for automatic interaction with slave containers
- Bundled with an NFS server for sharing of required Plex files to slave containers
Container on which is running a Plex-Remote-Transcoder client, it will automatically connect to the master container and register itself to it when started.
- Run the master container: it will automatically generate an SSH key pair in the config directory
- Copy the "/config/.ssh" directory from the master container to the slave container (by keeping the same path)
- Run the slave container
- Enjoy ;)
You have to configure it like the official Plex Docker container with some additional configuration:
docker create \
--name=plex \
--privileged \
< ... > \
-p <random available port for ssh>:22 \
-p <random available port for nfs>:2049/tcp \
poludo/plex-remote-transcoder:master
docker create \
--name=plex-remote-transcoder \
--privileged \
-v <path to config>:/config \
-v <path to media>:/data \
-p <random available port for ssh>:22 \
-e MASTER_IP=<ip of the host running the master container> \
-e MASTER_NFS_PORT=<master container nfs port> \
-e MASTER_SSH_PORT=<master container ssh port> \
-e SLAVE_SSH_PORT=<ssh port specified above> \
poludo/plex-remote-transcoder:slave
A docker-compose example for setting up a master and slave container locally is available on the repository.
-e USE_MASTER_TRANSCODER=true
Registers the master container as an available Plex transcoder. By default, the master container cannot be used for transcoding unless no slaves are available.-e DISTRIBUTE_SINGLE_TRANSCODES=true
Runs a single transcoding job on multiple hosts. By default, chunks are only distributed to a single host. Please note that the use of this parameter requires the restart of all slave containers. Uses a fork of Plex-Remote-Transcoder.
-e IMPORT_PLEX_MEDIA=false
Disables the import of the Plex media library from the master container over NFS. Can be useful when the media library is accessible by mounting it on the host with Rclone or Plexdrive. Please note that the media library has to be stored in the "/data" directory of the container. Be also sure to check that the content and the (recursive) permissions of this directory are the same in the master and in the slave containers.
sudo docker logs -f <container name>
to access a container's logs.sudo docker exec <master container name> cat /tmp/prt.log
to access the PRT logs of the master container.