docker image for Universal Media Server (UMS) based off of alpine:latest
To pull this image:
docker pull mbentley/ums
Tags | UMS Version | Dockerfile | Base Image | Arch |
---|---|---|---|---|
latest 14 |
UMS 14.x | Dockerfile.14-alpine | alpine:latest |
amd64 , arm64 |
14-alpine |
UMS 14.x | Dockerfile.14-alpine | alpine:latest |
amd64 , arm64 |
13 |
UMS 13.x | Dockerfile.13-alpine | alpine:latest |
amd64 , arm64 |
13-alpine |
UMS 13.x | Dockerfile.13-alpine | alpine:latest |
amd64 , arm64 |
These images are still published on Docker Hub but are no longer regularly updated due to the base OS no longer being supported or the version being older. Use with extreme caution as these images are likely to contain unpatched security vulnerabilities!
Tags | UMS Version | Dockerfile | Base Image | Arch |
---|---|---|---|---|
11 |
UMS 11.x | Dockerfile.11-alpine | alpine:latest |
amd64 , arm64 |
11-alpine |
UMS 11.x | Dockerfile.11-alpine | alpine:latest |
amd64 , arm64 |
10 |
UMS 10.x | Dockerfile.10-alpine | alpine:latest |
amd64 , arm64 |
10-alpine |
UMS 10.x | Dockerfile.10-alpine | alpine:latest |
amd64 , arm64 |
10-debian |
UMS 10.x | Dockerfile.10-debian | debian:bullseye |
amd64 |
9 |
UMS 9.x | Dockerfile.9 | debian:buster |
amd64 |
9-alpine |
UMS 9.x | Dockerfile.9-alpine | alpine:latest |
amd64 |
8 |
UMS 8.x | Dockerfile.8 | debian:stretch |
amd64 |
7 |
UMS 7.x | Dockerfile.7 | debian:stretch |
amd64 |
6 |
UMS 6.x | Dockerfile.6 | debian:stretch |
amd64 |
5 |
UMS 5.x | Dockerfile.5 | debian:stretch |
amd64 |
These tags will explicitly pull the image for the listed architecture and are bit for bit identical to the multi-arch tags images.
Tags | UMS Version | Dockerfile | Base Image | Arch |
---|---|---|---|---|
latest-amd64 13-alpine-amd64 |
UMS 13.x | Dockerfile.13-alpine | alpine:latest |
amd64 |
latest-arm64 13-alpine-arm64 |
UMS 13.x | Dockerfile.13-alpine | alpine:latest |
arm64 |
13-debian-amd64 |
UMS 13.x | Dockerfile.13-debian | debian:bullseye |
amd64 |
11-alpine-amd64 |
UMS 11.x | Dockerfile.11-alpine | alpine:latest |
amd64 |
11-alpine-arm64 |
UMS 11.x | Dockerfile.11-alpine | alpine:latest |
arm64 |
11-debian-amd64 |
UMS 11.x | Dockerfile.11-debian | debian:bullseye |
amd64 |
10-alpine-amd64 |
UMS 10.x | Dockerfile.10-alpine | alpine:latest |
amd64 |
10-alpine-arm64 |
UMS 10.x | Dockerfile.10-alpine | alpine:latest |
arm64 |
10-debian-amd64 |
UMS 10.x | Dockerfile.10-debian | debian:bullseye |
amd64 |
By default, UMS will run as a non-root user. Due to this, your media directory that you bind mount into the container must have other
permissions set to rx
:
chown -R o+rx /path/to/my/media
Default UMS.conf
with a media folder specified:
docker run -d \
--init \
--net=host \
--restart=always \
--name ums \
-e FOLDER="/media" \
-e FORCE_CHOWN="false" \
-e NETWORK_INTERFACE="" \
-e LOG_LEVEL="" \
-e PORT=5001 \
-e SET_MEDIA_PERMISSIONS="false" \
-v ums-data:/opt/ums/data \
-v ums-database:/opt/ums/database \
-v /path/to/your/media:/media \
mbentley/ums
Custom UMS.conf
and persistent UMS.cred
file, data
and database
directories:
docker run -d \
--init \
--net=host \
--restart=always \
--name ums \
-e FOLDER="" \
-e FORCE_CHOWN="false" \
-e NETWORK_INTERFACE="" \
-e LOG_LEVEL="" \
-e PORT=5001 \
-e SET_MEDIA_PERMISSIONS="false" \
-v /path/to/your/UMS.conf:/opt/ums/UMS.conf \
-v /path/to/your/UMS.cred:/opt/ums/UMS.cred \
-v /path/to/data:/opt/ums/data \
-v /path/to/database:/opt/ums/database \
-v /path/to/your/media:/media \
mbentley/ums
FOLDER
- (default: null) Automatically set the path to the media folder for UMS inUMS.conf
FORCE_CHOWN
- (default:false
) When set totrue
, forces ownership of the/opt/ums/data
and/opt/ums/database
directories so UMS can write to themNETWORK_INTERFACE
- (default: null) UMS will autodetect the network interface; sometimes you want to specify which network interface to have UMS bind toLOG_LEVEL
- (default: null) UMS defaults toINFO
, can beALL
,TRACE
,DEBUG
,INFO
,WARN
,ERROR
orOFF
PORT
- (default: null) Defaults to the UMS default which is currently 5001 if not set; changed the default port if setSET_MEDIA_PERMISSIONS
- (default:false
) When set totrue
&FOLDER
passed, performs achmod
on theFOLDER
directory so that it is world read/execute to be able to read the media files and traverse directories
Warning: Volumes for UMS.conf
, data
database
are optional but the data in them will not persist otherwise. If you need a UMS.conf
file to start from, you can start a container and use docker cp
to transfer the file to your host:
docker run -d --name ums-temp mbentley/ums bash
docker cp ums-temp:/opt/ums/UMS.conf UMS.conf
docker stop ums-temp
docker rm ums-temp
Note: You will likely need to chown
all persistent files and directories to 500:500
. The entrypoint script will attempt to do it for you if they're not set correctly.
If you would rather not use --net=host
, you can expose the ports for UMS but autodiscovery might not work:
- TCP - 2869, 5001, 9001
- UDP - 1900