Difference between revisions of "How to setup Universal Media Server 8.0.1 under Ubuntu 18.04"
From steamWiki
Line 4: | Line 4: | ||
=Install UMS= | =Install UMS= | ||
− | #Install the necessary packages | + | #Install the necessary packages by running the following commands <pre>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</pre> |
− | + | #Install UMS 8.0.1 by running the following commands <pre>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</pre> | |
− | |||
− | # | ||
− | |||
− | #Install the | ||
− | |||
− | # | ||
− | |||
− | # | ||
− | # | ||
#Setup UMS to auto start at boot | #Setup UMS to auto start at boot | ||
− | # | + | #Create an init.d script by running <pre>sudo nano /etc/init.d/ums</pre> and copying the following into that file <pre>#!/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</pre> |
− | + | ##Make that script executable by running <pre>chmod +x /etc/init.d/ums</pre> | |
− | # | + | ##Make the system aware of your new script by running <pre>update-rc.d ums defaults</pre> |
− | ### 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. | ||
− | |||
− | |||
− | |||
− | 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 | ||
− | |||
− | fi | ||
− | |||
− | # | ||
− | [ $UMS_START = 1 ] || exit 1 | ||
− | |||
− | #-------------------------------------------------------------------------- | ||
− | # Some color codes | ||
− | txtred=$'\e[0;31m' # Red | ||
− | txtylw=$'\e[0;33m' # Yellow | ||
− | txtrst=$'\e[0m' # Text Reset | ||
− | #-------------------------------------------------------------------------- | ||
− | warnout(){ | ||
− | |||
− | } | ||
− | #-------------------------------------------------------------------------- | ||
− | running(){ | ||
− | |||
− | } | ||
− | #-------------------------------------------------------------------------- | ||
− | do_start(){ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | } | ||
− | #-------------------------------------------------------------------------- | ||
− | do_stop(){ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | #-------------------------------------------------------------------------- | ||
− | do_force-stop(){ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | } | ||
− | #-------------------------------------------------------------------------- | ||
− | do_status(){ | ||
− | |||
− | |||
− | |||
− | } | ||
− | #-------------------------------------------------------------------------- | ||
− | case "$1" in | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | esac</ | ||
− | ## | ||
− | ## | ||
#Configure UMS | #Configure UMS | ||
− | ## | + | ##Copy the default configuration files to ''/etc/'' by running the following commands <pre>sudo cp /opt/ums/UMS.conf /etc/ sudo cp /opt/ums/WEB.conf /etc/ums/</pre> |
− | # | + | ##Edit ''UMS.conf'' by running <pre>sudo nano /etc/UMS.conf</pre> and setting the following variables (you'll have to setup ''folders'' and ''folders_monitored'' to something specific for your environment) <pre>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</pre> |
− | ## | + | =Start UMS= |
− | + | #start UMS by running <pre>sudo service ums start</pre> | |
− | |||
− | # | ||
− | # | ||
− | |||
− | # | ||
− | # | ||
− | # | ||
− | # | ||
− | # | ||
− | |||
− | # | ||
− | # | ||
− | # | ||
− | # | ||
− | |||
− | #start UMS by running | ||
#visit the UMS webpage by going to ''http://<UMSServerHostname>'' in a web browser | #visit the UMS webpage by going to ''http://<UMSServerHostname>'' in a web browser | ||
Revision as of 16:43, 11 July 2019
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.
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
- Setup UMS to auto start at 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
- Make that script executable by running
- 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://<UMSServerHostname> in a web browser