Murmur is the official server software for the Mumble voice communication protocol. This official implementation is stable and efficient. This guide will describe step-by-step the process of installing and configuring a Murmur server for communication with Mumble clients on FreeBSD 11.2.
Prerequisites
Any RCS VPS
An SSH client:
ssh
in a terminal for Linux, Mac, and Unix (including BSD) usersThe PuTTY SSH client for Windows
SSH to your RCS FreeBSD server and log in as root, or as a sudo
user. If using a sudo
user, prepend commands with sudo
:
home-desktop$ ssh root@198.51.100.21
Note: Replace 198.51.100.21
with your own IP address.
Installing the Murmur package
Note: This section will install a vanilla Murmur server with no D-Bus
/Bonjour
support.
To add Murmur and its dependencies to the system, run the following command:
pkg install murmur
Since you've installed the server software from the binary distribution, you can skip the next section and proceed to Configuring Murmur.
Installing from ports
If you've followed the rest of the guide up to this point, and you don't want to enable D-Bus
or Bonjour
support, or disable Ice/MySQL/SQLite support, feel free to follow the previous section instead and then skip to Configuring Murmur.
Getting the ports tree
Run this command to check for and download any updates to your ports tree (you'll need this if you don't have ports setup yet):
portsnap fetch
If the output ends with 'No updates needed
', you can skip to the next step. Otherwise, you don't have an up-to-date ports tree prepared, and will need to extract the newly downloaded snapshot:
portsnap extract
Building and installing the server application
Compiling the Murmur port is easy, but will take some time. The following commands will put you in the directory of the port, build it, install the generated files, and remove unnecessary files after they are built:
cd /usr/ports/audio/murmur
make install clean
During the early parts of the installation, you will see one or more text dialogs asking about features you'd like to enable or disable. To navigate the menus, use the UP and DOWN arrows to highlight an entry, SPACE to toggle the entry's enabled/disabled status, or ENTER to use the default action. To change the default action (usually to 'Cancel'), use the LEFT and RIGHT arrows.
The murmur configuration dialog window will present the options to disable Bonjour
, enable D-Bus
, enable Ice, and disable MySQL or SQLite support. It also allows you to disable building the documentation, but this is generally a bad idea.
Summary of Murmur build configuration options
The name of the option and the official package's choices for those options are shown here, if you're unsure about any of them.
Bonjour
is a protocol for discovery of local network services. Unless you'll be accessing your Murmur server through a VPN, or you want another VPS on the same Private Network to find Murmur automatically, this is okay todisable
.D-Bus
is a way for applications, typically on the same machine, to communicate with each other. In Murmur, the D-Bus interface is deprecated and should be leftdisabled
, unless you're certain you have an application which requires Murmur's D-Bus interface.Documentation
should be leftenabled
unless you specifically don't want the manual pages to be available to you. This option will not change anything from the client's point of view, and is only relevant to the system administrator.Ice
is a newer RPC protocol which allows you to remotely administrate Murmur using alternative means like web interfaces. If youenable
this, you can later choose to configure an RPC solution which will allow you to do things like online user registration and remote channel moderation. RPC configuration will not be handled in this guide, and usually requires a web server with PHP support.MySQL
is a powerful, scalable database management system. This should be leftdisable
, unless if you have a remote database you would like Murmur to use instead of a local file, or if you plan to have many thousands of users. This guide will not cover MySQL configuration.SQLite
is a lightweight alternative to larger database management solutions like MySQL. It allows fast access to a database stored in a local file for up to hundreds of thousands of records, and as such, is quite suitable for a Murmur server. This should be leftenabled
, and the configuration section of this guide will assume it is.
When you're satisfied with these options, use LEFT and RIGHT and then press ENTER to select OK
at the bottom of the window. If you're presented with the option to configure dependencies, the defaults are the safest options, so you can just press ENTER to dismiss them with their default options selected. After configuration, building Murmur and its dependencies (especially Boost) can sometimes take a very long time.
Configuring Murmur
There are some things you might want to tweak before starting your server for the first time. This section will use FreeBSD's Easy Editor, as the preferred text editor, but you can use anything else instead.
Open the murmur configuration file in a text editor:
ee /usr/local/etc/murmur.ini
Most of the configuration is explained in the file, and defaults to normal values, but we'll briefly touch a few important options.
Note: All the options listed below have defaults. You don't need to change them for the server to run.
Welcome text (MOTD)
One thing you might want to change is the welcome text, or as it's called by some, the "Message of the Day". To do so, find the line beginning with welcometext=
and replace the existing message with something new. Mumble can display a limited selection of HTML tags, like <br />
to signify a new line:
welcometext="<br /> Check out this cool RCS VPS! <br />"
Port number
Clients connecting have to specify a port number if the server isn't listening on the default port. If you'd like to change this port so your users have to know it to connect, use the port=
option. Otherwise, leave it at the default of 64738
so your users only have to remember the address:
port=443
Maximum allowed users
The default maximum of 100 users is pretty reasonable, but if you'd like to limit the server to just you and a few friends, you can lower this maximum - or raise it, of course - with the users
option:
users=5
Message length
If you need to send messages in text chat longer than 5000 characters, you'll want to change the textmessagelimit
option. You can also set it to 0 to remove the limit entirely:
textmessagelimit=12345
Remember to remove the #
character at the start of the line to uncomment it, or the line won't take effect.
Image size
This option is right below the message length option, if you're uncommenting lines from the default configuration file. With the default image size limit of 128 kilobytes, you might find yourself struggling to send images. I'd recommend turning this up, but not to so high a value that someone could send a large enough image to slow down the connection of any users with lower-bandwidth internet connections. Like the last option, you can set the value of this one to 0 to allow images of any size. Of course, this is only a good idea when you know everyone's connection can handle it:
# 768KiB:
imagemessagelength=786432
Don't forget to remove the #
character at the start of this line, as well.
SSL/TLS Encryption
If you have a proper TLS key and certificate, you can specify them here. If you don't, Murmur will generate its own and present them, which may cause certificate errors for your users.
For example, for a Let's Encrypt that is setup in /usr/local/etc/letsencrypt
:
# make sure the cert & key are readable by the user/group 'murmur'
sslCert=/usr/local/etc/letsencrypt/live/chat.example.com/fullchain.pem
sslKey=/usr/local/etc/letsencrypt/live/chat.example.com/privkey.pem
Starting Murmur for the first time
Now that your server is installed and configured, there's not much left to do but test it. Since the service is not yet 'enabled', the regular 'start' command won't run. So to start the server once, run the following:
service murmur onestart
With the server running, you can try to connect to it. In Mumble, add it as a server using its domain name or IP address and connect. If you can log in, and are visible in the Root channel, everything works. If not, check the server address and the config file for typos or errors, and make sure the murmur
user can read the SSL key if you set your own, and try again:
service murmur onerestart
After you're done, shut down the server to we can test starting it in the next section:
service murmur onestop
Starting Murmur on boot
If you can connect to your new server, then you're ready to enable the service so Murmur will automatically start when you reboot (after an upgrade, for example).
To do so, edit /etc/rc.conf
:
ee /etc/rc.conf
Press CTRL+E, followed by ENTER to put a blank line on the second line of the file, and type:
murmur_enable="YES"
Then press ESC, ENTER, ENTER to save and quit. To test the configuration, try the regular service start command:
service murmur start
If this doesn't work, there is typo in rc.conf
. go back and double-check it.
If it does work, then there's nothing left to do. To test it, reboot:
sync && reboot
Wait a few seconds for the server to start up again until you can connect with SSH, then try to reconnect with Mumble. Congratulations, you just installed and configured Murmur from scratch.