Difference between revisions of "Running Murmur"

From Mumble Wiki
Jump to: navigation, search
(Adding Registered Users: should probably increase the version number too :P)
m (Settings, Ports, and Authentication: - Added mention to SRV record configuration)
(248 intermediate revisions by 20 users not shown)
Line 1: Line 1:
== Murmur: Mumble Server ==
+
'''If you find anything incorrect or missing in this article feel free to add it yourself. After you register, you must wait three days before you can edit a page.'''
 +
= Introduction =
 +
{{Notice
 +
|message=For a step-by-step guide to setting up a Murmur server, read '''[[Murmurguide|Murmur Guide]]'''.
  
== Running From The Start Menu ==
+
}}
This will run the basic application if you go to the program files menu and select Mumble then click on "murmur". This will start murmur with no extra options.
+
Murmur is the server component for Mumble. This article is meant to give you the necessary information to configure and run your own server.
'''Configuring The Run From Start Menu'''
 
Well once you get to the murmur thing in the program files menu instead of left clicking, right click and left click on properties. In here you will see multiple text boxes, the target text box is the one that interests us. We may want an admin cp password so take -supw passwordhere on the end in the quotes and now we have an admin password, then if you want to use another ini file, take a space then -ini filenamehere after that to load that ini file onto the end. Read [[Configuring Murmur]] for information on using the ini file. If you checked out from svn, you can find an example ini file in the <code>scripts</code> directory.
 
  
== Running From Command Prompt ==
+
= Distribution-Specific Murmur =
  
To set the SuperUser password run
+
By default, Murmur is configured to run from a regular user account, and on Windows and OSX this is the only way it works.
  
'''./murmur -supw <password>'''
+
However, on distributions with prepackaged Murmur (Debian/Ubuntu), Murmur is configured to run as a system service, just like your webserver, mailserver and whatever else you have running. This "global" installation is a ready, turn-key solution, most of the information here does not apply to you. Most packages also include the 'murmur-user-wrapper' script, which does all of the below for you if you want to run as a regular user (including starting DBus).
  
This will set the password in the DB and exit.
+
So, on these systems, you can still run Murmur manually, but you will then not benefit from the extensive care that has gone into preparing those packages.
  
To run the server
+
If you need to register users externally, or change the settings of a virtual server, read the section on Advanced Configuration.
  
'''./murmur'''
+
= Basic Configuration =
  
If you want to have access to the console at a later date, you can first start a screen
+
== Settings, Ports, and Authentication ==
 +
The default settings for a Murmur server are configured in ''[[murmur.ini]]''. Here, you can configure the welcome text, port number and other settings. However, these are just default settings and can be overwritten via the [[Ice]] RPC without changing the .ini; if you're running multiple virtual servers, each virtual server has its own configuration, which is maintained internally by Murmur (see below).
  
'''screen -AmS murmur'''
+
The default port for a Murmur server is UDP and TCP 64738.
 +
<br>
 +
Have a look at [[Mumble URL]] to see how to publish links to your server, and [[SRV_Record | SRV Record configuration]].
  
Then start murmur, and then do a Ctrl-A D. This will disconnect the screen.  To get back into the screen at a later date.
+
Adding an authenticated user can be done through various means. Unless you need automated registration of users or authentication against an external database using the functionality built into the client is the easiest method. If you need more control you can use [[Ice]] or [[DBus]].
  
'''screen -r'''
+
== Setting the SuperUser Password ==
 +
{{Notice
 +
|message=Note this command can be run seperately while the server is running to change the password without restarting.  Also note that in 1.2.2 at least, you must run the server normally at least once before trying to set this.
 +
}}
  
== Adding Registered Users ==
+
{{Notice
 +
|message=For older versions the SuperUser account is disabled until you setup the password. You don't need the SuperUser account to run a simple server, but you do need it if you want to give your regular user account any privileges.
 +
}}
  
The default way to setup registered users is to use the '''murmur.pl''' perl script. You need to setup a webserver and make sure its is configured to execute it as CGI.
+
In version >=1.2.4 the SuperUser password is generated automatically on the first server start. You can find it in the logfile. Search for an entry like <code><W>2013-09-03 11:23:44.516 1 => Password for 'SuperUser' set to 'supersecretpassword'</code>. You can of course change this password.
  
If you just want to add,remove,edit users there is a linux bash script for easy adding below:
+
To set/change the password on the Linux static server, run
Copy the following content in a file named '''config.sh''', place it in your murmur direcotry, make it executable and see '''./config.sh --help''' for further instructions.
+
murmur.x86 -ini <path to configuration file> -supw <password> [srv]
 +
To set the password on Debian-based systems, run
 
<pre>
 
<pre>
#!/bin/bash
+
# EITHER use the dpkg management facilities
#
+
sudo dpkg-reconfigure mumble-server
# -> config.sh
 
#
 
#  version: 1.1
 
#  author: Massimo Mund
 
#  date: 21.12.2007
 
#  description: a script to easily add, remove and edit users from a murmur server
 
#
 
  
#information
+
# OR run the server binary manually
version="1.0"
+
sudo -i murmurd -ini /etc/mumble-server.ini -supw <password> [srv]
 +
</pre>
 +
To set the password on Windows systems, run
 +
<path to murmur.exe> -ini <path to configuration file> -supw <password> [srv]
 +
 
 +
Make sure the <tt>-ini</tt> parameter is the same as for running the server normally to make sure the password gets set in the right database file. If the command does not seem to work, double-check that you are supplying the right path.
 +
 
 +
The <tt>[srv]</tt> parameter is the ID of the virtual Mumble-Server you want to change password for. If omitted, ID 1 is used (for the first virtual server).
 +
 
 +
This will only set the password and then terminate, it will not start the server. To run the server, start it without the <tt>-supw</tt> parameter.
 +
 
 +
== Starting Murmur ==
 +
 
 +
To start Murmur,
  
#settings
+
On a static Linux build, cd to the directory where you extracted the files and do
bin="sqlite3"
+
murmur.x86
dbfile="./murmur.sqlite"
+
On Debian-based,
 +
sudo dpkg-reconfigure mumble-server
 +
On Windows,
 +
<path to murmur.exe> (usually C:\Program Files\Mumble\Murmur.exe)
  
function checkforsqlite() {
+
For debugging or real time logging, you might want to add ''-fg -v'' to the command line, which will stop the program from running in the background.
  
if [ ! -f /usr/bin/sqlite3 ]; then
+
By default, Murmur opens its configuration file, database file and logfile in your current directory. The configuration file can be overridden with the ''-ini'' parameter, and the database and logfile can be set from the ini file, using their respective parameters.
echo "it seems that there is no sqlite3 installed, which is necessary for this script! "
 
echo "install sqlite3 and try it again!"
 
exit
 
fi
 
  
}
+
= Advanced Configuration and Administration=
  
function help () {
+
To make use of a strong server certificate the users will not have to manually accept, please see [[Obtaining a Let's Encrypt Murmur Certificate]] and [[Obtaining a Comodo Murmur certificate]].
  
echo ""
+
{{Notice
echo " usage: config.sh <cmd> | --help | --version"
+
|message=Most of these interfaces are created and maintained by third parties and the Mumble developers have no influence on the stability and/or security of these projects.  
echo ""
 
echo " commands:"
 
echo "  showusers"
 
echo "  adduser <username> <pw> [<serverid>] [<email>]"
 
echo "  deluser <username> [<serverid>]"
 
echo "  setpw <username> <newpw> [<serverid>]"
 
echo "  setemail <username> <newemail> [<serverid>]"
 
echo ""
 
exit
 
  
}
+
Also, nearly all of the basic administration tasks can be completed '''through the client''' when using > Mumble 1.2.x.
 +
}}
 +
== Compatibility With RPC-Interfaces ==
  
function version() {
+
For full functionality with an RPC interface, Murmur requires either a working [[DBus]] daemon or [[Ice]] installation that is enabled. We recommend using the [[Ice]] interface; [[DBus]] is considered deprecated and although it will not be removed in the near future, it is not receiving any new functionality. Once you have Murmur working with the RPC interface, you can install a compatible web interface; see below for possible options.
  
echo "config.sh : version: $1"
+
== Authenticating With an External Database/Forum ==
exit
 
}
 
  
function invalidoption () {
+
===Ice===
 +
For phpBB3, there is [https://github.com/mumble-voip/mumble-scripts/tree/master/Authenticators/phpBB3 phpBB3auth]. You must point the python script to the ini file; read the in-source documentation for more infomation.
  
echo "config.sh : invalid option -- $*"
+
For SMF (Simple Machines Forum), there is [https://github.com/mumble-voip/mumble-scripts/tree/master/Authenticators/SMF smfauth]. You must point the python script to the ini file; read the in-source documentation for more infomation.
echo "Try 'config.sh --help' for more information."
 
exit
 
  
}
+
===DBus===
  
checkforsqlite
+
There is an extended example of how to use the authenticator called ''scripts/dbusauth.pl''. You'll need to configure where your phpBB3 database resides, but once that is done you'll simply have to run the script after starting murmur to allow authentication to be done through the phpBB3 database.
  
while [ "$#" -gt "0" ]; do
+
Any group associations the user has on phpBB3 is copied to a temporary group on a root channel (and by default inherited to all subchannels). Please note that this is a temporary group membership and as such will not show up in the Edit ACL dialogs.
        case $1 in
 
showusers)
 
$bin $dbfile "select * from players;"
 
exit
 
;;
 
                adduser)
 
shift
 
                        username="$1"
 
                        email="$4"
 
pw="$2"
 
serverid="$3"
 
playerid=$($bin $dbfile "select MAX(player_id)+1 as id from players WHERE player_id < 10000;")
 
  
if [ "$serverid" == "" ]; then
+
== 3rd Party Applications ==
serverid="1"
 
fi
 
  
$bin $dbfile "insert into players (server_id, player_id, name, email, pw) values($serverid, $playerid, '$username', '$email', '$pw');"
+
If you are planning to administrate your Murmur server with an external 3rd Party Application, see the following pages for further information.
exit
 
                ;;
 
deluser)
 
shift
 
username="$1"
 
serverid="$2"
 
  
                        if [ "$serverid" == "" ]; then
+
* '''[[3rd_Party_Applications#Web-Interfaces|Web-Interfaces]]'''
                                serverid="1"
+
* '''[[3rd_Party_Applications#Standalone Applications|Standalone Applications]]'''
                        fi
+
* '''[[3rd_Party_Applications#Commandline-Interfaces|Commandline-Interfaces]]'''
  
$bin $dbfile "delete from players where name='$username';"
+
{{Notice
exit
+
|message=The aforementioned categories have been moved to the page '''[[3rd_Party_Applications|3rd Party Applications]]'''.
;;
+
}}
setpw)
 
shift
 
username="$1"
 
newpw="$2"
 
serverid="$3"
 
  
                        if [ "$serverid" == "" ]; then
+
== Manual Configuration Using DBus ==
                                serverid="1"
 
                        fi
 
 
$bin $dbfile "update players set pw='$newpw' where name='$username';"
 
exit
 
;;
 
setemail)
 
                        shift
 
                        username="$1"
 
                        newemail="$2"
 
                        serverid="$3"
 
  
                        if [ "$serverid" == "" ]; then
+
If you are not able to use an additional application for administrating Murmur there is still the possibility of manually communicating with the server using [[DBus]]. You can find detailed information on this in our [[DBus|DBus article]].
                                serverid="1"
 
                        fi
 
  
                        $bin $dbfile "update players set email='$newemail' where name='$username';"
+
= Alternative Murmur Implementations =
exit
+
The Mumble team appreciates and supports the implementation of the Mumble protocol. Unlike other proprietary applications, everyone is free to implement their own Mumble server software and add it to this list.
;;
+
--help)
+
== uMurmur ==
help
+
uMurmur is a minimalistic Murmur implementation without dependency on QT-core. It lacks features of Murmur but aims at working well on embedded devices like routers.
;;
 
--version)
 
version $version
 
;;
 
                *)
 
invalidoption $*
 
                    break
 
                ;;
 
        esac
 
done
 
  
invalidoption $*
+
It supports 1.2.x Mumble clients in the uMurmur 0.2.x releases and 1.1.x clients in 0.1.x releases. Packages are available for [https://dev.openwrt.org/ticket/6829 OpenWRT], [http://trac.freetz.org/ticket/714 Freetz] and [http://www.nas-forum.com/forum/index.php/files/file/252-umurmur-021-ds-207/ Synology].
</pre>
+
 
 +
Read more at [http://umurmur.net the uMurmur project page].
 +
 
 +
 
 +
[[Category:Documentation English]]

Revision as of 09:33, 12 November 2019

If you find anything incorrect or missing in this article feel free to add it yourself. After you register, you must wait three days before you can edit a page.

Introduction

Icons oxygen 48x48 actions view-pim-notes.png
Note:
For a step-by-step guide to setting up a Murmur server, read Murmur Guide.

Murmur is the server component for Mumble. This article is meant to give you the necessary information to configure and run your own server.

Distribution-Specific Murmur

By default, Murmur is configured to run from a regular user account, and on Windows and OSX this is the only way it works.

However, on distributions with prepackaged Murmur (Debian/Ubuntu), Murmur is configured to run as a system service, just like your webserver, mailserver and whatever else you have running. This "global" installation is a ready, turn-key solution, most of the information here does not apply to you. Most packages also include the 'murmur-user-wrapper' script, which does all of the below for you if you want to run as a regular user (including starting DBus).

So, on these systems, you can still run Murmur manually, but you will then not benefit from the extensive care that has gone into preparing those packages.

If you need to register users externally, or change the settings of a virtual server, read the section on Advanced Configuration.

Basic Configuration

Settings, Ports, and Authentication

The default settings for a Murmur server are configured in murmur.ini. Here, you can configure the welcome text, port number and other settings. However, these are just default settings and can be overwritten via the Ice RPC without changing the .ini; if you're running multiple virtual servers, each virtual server has its own configuration, which is maintained internally by Murmur (see below).

The default port for a Murmur server is UDP and TCP 64738.
Have a look at Mumble URL to see how to publish links to your server, and SRV Record configuration.

Adding an authenticated user can be done through various means. Unless you need automated registration of users or authentication against an external database using the functionality built into the client is the easiest method. If you need more control you can use Ice or DBus.

Setting the SuperUser Password

Icons oxygen 48x48 actions view-pim-notes.png
Note:
Note this command can be run seperately while the server is running to change the password without restarting. Also note that in 1.2.2 at least, you must run the server normally at least once before trying to set this.
Icons oxygen 48x48 actions view-pim-notes.png
Note:
For older versions the SuperUser account is disabled until you setup the password. You don't need the SuperUser account to run a simple server, but you do need it if you want to give your regular user account any privileges.

In version >=1.2.4 the SuperUser password is generated automatically on the first server start. You can find it in the logfile. Search for an entry like <W>2013-09-03 11:23:44.516 1 => Password for 'SuperUser' set to 'supersecretpassword'. You can of course change this password.

To set/change the password on the Linux static server, run

murmur.x86 -ini <path to configuration file> -supw <password> [srv]

To set the password on Debian-based systems, run

 # EITHER use the dpkg management facilities
 sudo dpkg-reconfigure mumble-server

 # OR run the server binary manually
 sudo -i murmurd -ini /etc/mumble-server.ini -supw <password> [srv]

To set the password on Windows systems, run

<path to murmur.exe> -ini <path to configuration file> -supw <password> [srv]

Make sure the -ini parameter is the same as for running the server normally to make sure the password gets set in the right database file. If the command does not seem to work, double-check that you are supplying the right path.

The [srv] parameter is the ID of the virtual Mumble-Server you want to change password for. If omitted, ID 1 is used (for the first virtual server).

This will only set the password and then terminate, it will not start the server. To run the server, start it without the -supw parameter.

Starting Murmur

To start Murmur,

On a static Linux build, cd to the directory where you extracted the files and do

murmur.x86

On Debian-based,

sudo dpkg-reconfigure mumble-server

On Windows,

<path to murmur.exe> (usually C:\Program Files\Mumble\Murmur.exe)

For debugging or real time logging, you might want to add -fg -v to the command line, which will stop the program from running in the background.

By default, Murmur opens its configuration file, database file and logfile in your current directory. The configuration file can be overridden with the -ini parameter, and the database and logfile can be set from the ini file, using their respective parameters.

Advanced Configuration and Administration

To make use of a strong server certificate the users will not have to manually accept, please see Obtaining a Let's Encrypt Murmur Certificate and Obtaining a Comodo Murmur certificate.

Icons oxygen 48x48 actions view-pim-notes.png
Note:
Most of these interfaces are created and maintained by third parties and the Mumble developers have no influence on the stability and/or security of these projects. Also, nearly all of the basic administration tasks can be completed through the client when using > Mumble 1.2.x.

Compatibility With RPC-Interfaces

For full functionality with an RPC interface, Murmur requires either a working DBus daemon or Ice installation that is enabled. We recommend using the Ice interface; DBus is considered deprecated and although it will not be removed in the near future, it is not receiving any new functionality. Once you have Murmur working with the RPC interface, you can install a compatible web interface; see below for possible options.

Authenticating With an External Database/Forum

Ice

For phpBB3, there is phpBB3auth. You must point the python script to the ini file; read the in-source documentation for more infomation.

For SMF (Simple Machines Forum), there is smfauth. You must point the python script to the ini file; read the in-source documentation for more infomation.

DBus

There is an extended example of how to use the authenticator called scripts/dbusauth.pl. You'll need to configure where your phpBB3 database resides, but once that is done you'll simply have to run the script after starting murmur to allow authentication to be done through the phpBB3 database.

Any group associations the user has on phpBB3 is copied to a temporary group on a root channel (and by default inherited to all subchannels). Please note that this is a temporary group membership and as such will not show up in the Edit ACL dialogs.

3rd Party Applications

If you are planning to administrate your Murmur server with an external 3rd Party Application, see the following pages for further information.

Icons oxygen 48x48 actions view-pim-notes.png
Note:
The aforementioned categories have been moved to the page 3rd Party Applications.

Manual Configuration Using DBus

If you are not able to use an additional application for administrating Murmur there is still the possibility of manually communicating with the server using DBus. You can find detailed information on this in our DBus article.

Alternative Murmur Implementations

The Mumble team appreciates and supports the implementation of the Mumble protocol. Unlike other proprietary applications, everyone is free to implement their own Mumble server software and add it to this list.

uMurmur

uMurmur is a minimalistic Murmur implementation without dependency on QT-core. It lacks features of Murmur but aims at working well on embedded devices like routers.

It supports 1.2.x Mumble clients in the uMurmur 0.2.x releases and 1.1.x clients in 0.1.x releases. Packages are available for OpenWRT, Freetz and Synology.

Read more at the uMurmur project page.