How to setup Universal Media Server 8.0.1 under Ubuntu 18.04
From steamWiki
Universal Media Server (or UMS for short) is a pretty cool program that will both create a browsable website of your media as well as stream it to compliant devices that support UPnP or DLNA.
This howto is adapted from this article describing how to install an older version of UMS on an older version of Ubuntu.
*This article assumes the hostname of your server is MyMediaServer
Contents
Install UMS
- Install the necessary packages by running the following commands
sudo apt-get install software-properties-common sudo apt-get update sudo apt-get install openjdk-8-jre openjdk-8-jre-headless apt-get install mediainfo dcraw vlc-bin mplayer mencoder
- Install UMS 8.0.1 by running the following commands
cd /opt sudo wget https://downloads.sourceforge.net/project/unimediaserver/Official%20Releases/Linux/UMS-8.0.1.tgz sudo tar -xvzf UMS-8.0.1.tgz sudo ln -s /opt/ums-8.0.1 ums sudo rm UMS-8.0.1.tgz
Make UMS Start on Boot
- Create an init.d script by running
sudo nano /etc/init.d/ums
and copying the following into that file#!/bin/bash # ### BEGIN INIT INFO # Provides: ums # Required-Start: $local_fs $remote_fs $network # Required-Stop: $local_fs $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Starts UMS program. # Description: Java Upnp Media Server dedicated to PS3 ### END INIT INFO #set -x # Author: Papa Issa DIAKHATE <paissad@gmail.com> # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="Universal Media Server" NAME=ums UMS_PROFILE=/etc/UMS.conf DAEMON=/opt/ums/UMS.sh DAEMON_OPTS="console" SCRIPTNAME=/etc/init.d/ums UMS_START=1 # Wether to start or not UMS ver at boot time. DODTIME=30 # Time to wait for the server to die, in seconds. # If this value is set too low you might not # let the program to die gracefully and 'restart' will not work test -x $DAEMON || exit 1 # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions # Include ums defaults if available if [ -f "/etc/default/$NAME" ] ; then . /etc/default/$NAME fi # May we run the init.d script ? [ $UMS_START = 1 ] || exit 1 #-------------------------------------------------------------------------- # Some color codes txtred=$'\e[0;31m' # Red txtylw=$'\e[0;33m' # Yellow txtrst=$'\e[0m' # Text Reset #-------------------------------------------------------------------------- warnout(){ echo >&2 -e ""$txtylw"Warning:$txtrst $1" } #-------------------------------------------------------------------------- running(){ pid=`pgrep -f 'java .*ums.jar.*'` } #-------------------------------------------------------------------------- do_start(){ running && { warnout "$NAME is already running !"; exit 0; } echo "Starting $DESC : $NAME" UMS_PROFILE="$UMS_PROFILE" start-stop-daemon --start --quiet --background --oknodo \ --exec $DAEMON -- $DAEMON_OPTS } #-------------------------------------------------------------------------- do_stop(){ running || { warnout "$NAME is NOT running !"; exit 0; } local countdown="$DODTIME" echo -e "Stopping $DESC : $NAME \c " kill -9 $pid while running; do if (($countdown >= 0)); then sleep 1; echo -n .; ((--countdown)) else break; fi done echo # If still running, then try to send SIGINT signal running && { \ echo >&2 "Using kill -s SIGINT instead"; \ echo >&2 "If you see this message again, then you should increase the value of DODTIME in '$0'."; \ kill -2 $pid; \ } if [ -e "/usr/share/ums/debug.log" ]; then count=9 while [ $count -ge 1 ] do if [ -e "/usr/share/ums/debug.log.$count" ]; then plus=$((count+1)) mv "/usr/share/ums/debug.log.$count" "/usr/share/ums/debug.log.$plus" fi count=$((count-1)) done if [ -e "/usr/share/ums/debug.log" ]; then mv "/usr/share/ums/debug.log" "/usr/share/ums/debug.log.1" fi fi return 0 } #-------------------------------------------------------------------------- do_force-stop(){ running || { warnout "$NAME is NOT running !"; exit 0; } echo "Stopping $DESC : $NAME" kill -9 $pid if [ -e "/usr/share/ums/debug.log" ]; then count=9 while [ $count -ge 1 ] do if [ -e "/usr/share/ums/debug.log.$count" ]; then plus=$((count+1)) mv "/usr/share/ums/debug.log.$count" "/usr/share/ums/debug.log.$plus" fi count=$((count-1)) done if [ -e "/usr/share/ums/debug.log" ]; then mv "/usr/share/ums/debug.log" "/usr/share/ums/debug.log.1" fi fi } #-------------------------------------------------------------------------- do_status(){ echo -n " * $NAME is " ( running || { echo "NOT running "; exit 0; } ) ( running && { echo "running (PID -> $(echo $pid))"; exit 0; } ) } #-------------------------------------------------------------------------- case "$1" in start|stop|force-stop|status) do_${1} ;; restart|reload) do_stop do_start ;; force-restart|force-reload) do_force-stop do_start ;; *) echo "Usage: $SCRIPTNAME {start|stop|force-stop|restart|force-restart|reload|force-reload|status}" exit 1 ;; esac
- Make that script executable by running
chmod +x /etc/init.d/ums
- Make the system aware of your new script by running
update-rc.d ums defaults
Configure UMS
- Copy the default configuration files to /etc/ by running the following commands
sudo cp /opt/ums/UMS.conf /etc/ sudo cp /opt/ums/WEB.conf /etc/ums/
- Edit UMS.conf by running
sudo nano /etc/UMS.conf
and setting the following variables (you'll have to setup folders and folders_monitored to something specific for your environment)server_name = MyMediaServer language = en-US minimized = true auto_update = true hide_advanced_options = false single_instance = true chromecast_extension = true prettify_filenames = true show_server_settings_folder = true atz_limit = 3000 show_recently_played_folder = true folders = /mnt/media/Video/Movies, /mnt/media/Video/TV_Shows, /mnt/media/Video/Web_Shows, /mnt/media/Music, /mnt/media/Comedy folders_monitored = /mnt/media/Video/Movies, /mnt/media/Video/TV_Shows, /mnt/media/Video/Web_Shows, /mnt/media/Music, /mnt/media/Comedy web_port = 80 web_conf = /etc/ums/WEB.conf name = main
- Copy the default configuration files to /etc/ by running the following commands
Start UMS
- start UMS by running
sudo service ums start
- visit the UMS webpage by going to http://MyMediaServer in a web browser
- start UMS by running
How to Update to the latest version
- Visit https://github.com/UniversalMediaServer/UniversalMediaServer/releases to find the latest version
- Navigate to the installation folder by running
cd /opt
- Download the latest tarball by running something like
sudo wget https://github.com/UniversalMediaServer/UniversalMediaServer/releases/download/10.0.0/UMS-10.0.0-arm64.tgz
MAKE SURE YOU CHANGE THE ABOVE LINE TO THE CORRECT VERSION - Unpack the tarball by running
sudo tar -xvzf UMS-*.tgz
- Stop the ums service by running
sudo systemctl stop ums
- Update the "ums" symlink by running
sudo ln -sfn /opt/ums-10.0.0/ ums
MAKE SURE YOU CHANGE THE ABOVE LINE TO THE CORRECT VERSION - Remove the downloaded tarball by running
sudo rm UMS-*.tgz
- Start the ums service by running
sudo systemctl start ums
- Once you're satisfied that your new version works you can, optionally, remove the old version by running something like
sudo rm -r ums-9.0.0