.drone.yml | ||
Dockerfile | ||
entrypoint | ||
gen-config.sh | ||
README.md | ||
xmlstarlet-0001-Fix-disable-build-docs.patch |
spritsail/plex-media-server
The smallest* Plex Media Server docker image, built on barebones spritsail/busybox with glibc and libraries built from source. The container hosts a fully featured Plex Media Server, with almost all of the useless crap removed, resulting in the smallest container possible whilst maintaining full functionality.
You can find out more about the spritsail/busybox base image here
*last we checked
NOTICE: This build has changed the /config/Plex Media Server
mountpoint inside the container to now be present at /config
. If you previously used this container, please update your mountpoint to /config
.
Getting Started
Navigate to plex.tv/claim and obtain a token in the form claim-xxxx...
Start the container, as demonstrated below, passing the claim token via the PLEX_CLAIM
environment variable. This only has to be present on the first run (when the configuration is generated) and can be removed for subsequent runs. The Plex claim token is optional however it will make the server available to your account immediately.
Setting the container hostname on first boot will set the Plex server name.
docker run -dt \
--name=plex \
--restart=unless-stopped \
--hostname=my-plex-server \
-p 32400:32400 \
-e PLEX_CLAIM=claim-xxxx... \
-v /config/plex:/config \
-v /transcode:/transcode \
-v /media:/media \
spritsail/plex-media-server:nofonts
Finally, navigate to app.plex.tv/desktop or your-ip:32400/web and you're done!
Volumes
/config
- Configuration, logs, caches and other Plex crap. You should keep this/transcode
- Transcoder temporary directory. This should be backed by fast storage, ideally tmpfs/RAM.- Don't forget to mount your media (tv-shows/movies) inside the container too!
Environment
$SUID
- User ID to run as default: 900$SGID
- Group ID to run as default: 900$ALLOWED_NETWORKS
- IP/netmask entries which allow access to the server without requiring authorization. We recommend you set this only if you do not sign in your server. For example192.168.1.0/24,172.16.0.0/16
will allow access to the entire192.168.1.x
range and the172.16.x.x
range.$ADVERTISE_IP
- This variable defines the additional IPs on which the server may be be found. For example:http://10.1.1.23:32400
. This adds to the list where the server advertises that it can be found.$DISABLE_REMOTE_SEC
-$PLEX_CLAIM
- The claim token for the server to obtain a real server token. If not provided, server will not be automatically logged in. If server is already logged in, this parameter is ignored.
Network
The following ports are all used by Plex for various applications
32400/tcp
Plex Web/Client Access5353/udp
Bonjour/Avahi3005/tcp
Plex Home Theatre via Plex Companion8324/tcp
Plex for Roku via Plex Companion1900/udp
Plex DLNA Server32469/udp
Plex DLNA Server32410/udp
GDM network discovery32412/udp
GDM network discovery32413/udp
GDM network discovery32414/udp
GDM network discovery
At the very least, you should expose 32400/tcp
to your network, and port forward it through your router if you would like Plex access outside your home network.
If you wish, you can map the Plex port to any other port outside your network, just be sure to update the port in Settings > Server > Remote Access (Show Advanced) under Manually specify public port.