Setup and Configure Murmur (Mumble Server) On FreeBSD 11
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.
- Any Vultr VPS
- An SSH client:
sshin a terminal for Linux, Mac, and Unix (including BSD) users
- The PuTTY SSH client for Windows
SSH to your Vultr FreeBSD server and log in as root, or as a
sudo user. If using a
sudo user, prepend commands with
home-desktop$ ssh email@example.com
198.51.100.21 with your own IP address.
Installing the Murmur package
Note: This section will install a vanilla Murmur server with no
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
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):
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:
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
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.
Bonjouris 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 to
D-Busis 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 left
disabled, unless you're certain you have an application which requires Murmur's D-Bus interface.
Documentationshould be left
enabledunless 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.
Iceis a newer RPC protocol which allows you to remotely administrate Murmur using alternative means like web interfaces. If you
enablethis, 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.
MySQLis a powerful, scalable database management system. This should be left
disable, 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.
SQLiteis 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 left
enabled, 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.
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:
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 Vultr VPS! <br />"
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:
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
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:
Remember to remove the
# character at the start of the line to uncomment it, or the line won't take effect.
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.
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
# 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
Press CTRL+E, followed by ENTER to put a blank line on the second line of the file, and type:
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.