How to Install Murmur
What is Murmur?
Murmur is the server component of the Mumble communications platform; a federated Voice over IP (VOIP) application that provides low latency, high bitrate audio communication. This tutorial instructs you how to install and configure Murmur on Debian, though you can apply these instructions to other operating systems by changing commands where necessary.
Obtaining a Server
If you or your organization doesn’t have a server, you must obtain one. Many hosting providers are available, but I recommend Vultr. Take the following steps:
- Navigate to https://vultr.com
- Create an account
- Go to the Products tab and click on the blue ‘+’ button toward the upper right hand part of the page
- Select the following options:
- Choose Server - Cloud Compute
- Location - Your preferred location. For example, Chicago
- Server Type - 64 bit OS Debian
- Server Size - $5/mo
- If you have an SSH key, add it by clicking on the ‘Add new’ box
- Enter your desired server hostname and label in the text boxes below the previous configuration options
- Click ‘Deploy Now’
NOTE: You may need to increase the server size if you intend on having a room larger than 100 people and have large bandwidth requirements.
Server Configuration
Now that you deployed the server, go back to the Products page in the dashboard and click on your server. Access it with the given credentials. It’s best to create a non-root user, so we run
useradd -G wheel samplename
. Then, run visudo
and delete the ‘#’ next to %wheel under “## Uncomment to allow members of group wheel to execute any command” in this section. It needs to look like this:
Then, save and exit. Log out of the root user and log back in as your new user. Next, configure a firewall. If you’re unfamiliar with nftables, install and configure uncomplicated firewall by running the following:
sudo apt-get update && sudo apt-get install ufw
sudo systemctl enable ufw.service && sudo systemctl start ufw.service
sudo ufw allow 64738 # This is the default mumble server port. Change it if you choose a different port
sudo systemctl restart ufw.service
Setting up Mumble Server
We’re ready to set up mumble server. Install it by running sudo apt-get install mumble-server
. Let’s edit the configuration file by running sudo nano /etc/mumble-server.ini
. Most of the defaults are sufficient, but
we want to set a few options ourselves. We’re going to change three options:
- Registration information
- SSL certificates
- Superuser password
First, Scroll down to the section starting with “# To enable public server registration”. For the option “registerName”, enter your desired server name (changes the root channel name). Fill out the rest of this if you want your server to be publicly visible. Next, we set up our SSL certificates with Lets Encrypt. You need to exit out of the configuration file for this part. If your organization already has their own SSL certificates, skip this part. If you do not have one, obtain a domain. You can lease them from domain registrars like Namecheap or Gandi. Lets install and configure certbot:
sudo apt-get install certbot
sudo certbot certonly --standalone
Certbot automatically renews your SSL certifications, so nothing else needs to be done here. Now, run sudo nano /etc/mumble-server.ini
again and scroll down to the options “sslCert” and “sslKey”. Uncomment these and
enter the full path to the fullchain.pem and privkey.pem files cerbot generated. A correct configuration looks something like this:
sslCert=/etc/letsencrypt/live/mumble.example.com/fullchain.pem
sslKey=/etc/letsencrypt/live/mumble.example.com/privkey.pem
Remember to change “mumble.example.com” to whatever you told certbot your domain is. We’re almost done! Now, launch the server by running the following:
sudo murmurd -ini /etc/mumble-server.ini -supw mypassword # This generates a password for the SuperUser
sudo systemctl enable mumble-server.service && sudo systemctl start mumble-server.service
Congratulations! You’ve successfully configured murmur. Share the domain with friends and enjoy quality audio communication.