Digital Ocean TURN server: 3 Easy Steps

Digital Ocean is a premier Cloud Server provider.

Cloud servers can be used for a variety of purposes and today we are going to learn about TURN servers and how to set up a TURN server in Digital Ocean

Here is a broad list of things we are going to cover

  1. What are TURN servers?

  2. Step 1: Creating a VM

  3. Step 2: Installing the TURN server

  4. Step 3: Testing the TURN server

What are TURN servers?

WebRTC communication requires traffic to be relayed through servers if connection can not be established due to firewall or NAT

TURN servers are required to act as an intermediary to transfer data from one peer to another when the devices are behind separate NATs

The TURN servers have become increasingly essential as WebRTC communications have become popular

Metered TURN server

Metered TURN servers is a TURN server provider. An alternative to creating a TURN server on Digital Ocean you can subscribe to Metered TURN server service

With Metered TURN server you get a secure service, maintenance free with 99.999% Uptime

You can check out the Metered TURN server

Step 1: Creating a VM on Digital Ocean

First we need to create an account on the Digital Ocean website

go to digitalocean.com and create an account. Once you have created an account you will land up in the dashboard area

There you can create an instance called a droplet in digital ocean

  1. Click on the create button on the top corner and select a droplets

  2. then select a location where you want the TURN server to be

  3. then select an operating system any linux preferable Debian or Ubuntu

  4. select a dedicated server for better performance and TURN servers require a lot of CPU and RAM

  5. then we have our droplet or server instance

step 3 Installing the turn server

Next ssh into your machine and type the below commands to install the coturn (free and open source turn server)

sudo apt update

and

sudo apt upgrade

then install the coturn

sudo apt-get install coturn

Now you have installed the coturn. let us start the coturn whenever the server starts

go to file etc/default/coturn

sudo nano /etc/default/coturn

and un comment the line

TURNSERVER_ENABLED=1

and save the file and start the server and thats it

systemctl start coturn

that's it now we have an up and running coturn server

Step 4: Testing the TURN server

You can check whether the turn server is running or not using the Trickle ICE and website and some other methods

go to the Trickle ICE website and enter the information

https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

Now you have created a TURN server in Digital Ocean

You can also use the pre built TURN server service Metered

Benefits of using Metered Over Digital Ocean

  1. Reliability

  2. Scalability

  3. Costs

  4. Maintenance

  5. DDoS Protection

1. Reliability

Reliability is a major factor when deciding whether to build your own TURN server in cloud or purchase a third party service like Metered

Digital Ocean is one of the premier cloud providers but one of the issues in using cloud server is that they could go in limbo

limbo is a state where the instance or the droplet stops responding and needs to be restarted

which results in disruption of service, which you absolutely do not want if you are running a business

This is an issue with all cloud providers and not just Digital Ocean

While TURN services like Metered provide a 99.999% Uptime that is 5 nines. This is one of the best in the industry

2. Scalability
Scaling TURN servers is a task on its own. TURN servers require quite a lot of CPU and RAM as all the data that is going through them is encrypted

Thus you have created an droplet which is fine for normal use but throttles during peak times etc

and if you want to scale up, you need to create a new instance shut down the old one and face some downtime

While Metered TURN servers auto scales to any amount of bandwidth and you don't even need to worry about scalability etc

3. Costs
Running on cloud providers such as digital ocean is quite expensive.

Instance costs are expensive plus you need to pay for the bandwidth as well

and it is difficult to estimate the cost as well.

As requirements change the need for the size of droplets and bandwidth changes as well

So, you might end up with a large droplet that wastes money or a smaller than required droplet that you give you performance issues

Even on dollar by dollar cost metrics the Metered TURN server is cheaper by for than digital ocean

Metered cheapest plan offers 150 GB of TURN use for 99 USD / mo and 0.4 USD per GB after that

there are volume discounts available as well up to 0.1 USD per GB

Lets look at the cost of creating a TURN server on Digital Ocean

Creating a general purpose CPU instance with 4 cores and 16 GB will cost 126 USD / mo plus bandwidth

you might think with more usage your costs might go down in digital ocean but that is not the case

because with more usage you will require a bigger instance or droplet to handle the data going through the sever

4. Maintenance

With TURN server as with any application you need to maintain it.

You will need to update all the dependencies and might even need to restart the server from time to time

With Metered TURN servers that is all handled with.

You don't need to bother with any maintenance or any such thing just plug and play

5. DDoS Protection
TURN servers are prone to DDoS attacks as hacks use a technique called TURN amplification to attack other servers using any TURN servers that they find on the internet

so with Digital Ocean you might even need to purchase a DDoS protection as well

otherwise you are a sitting duck. You are good until you are found by an attacker after that you need to shut down your server and create another one or purchase expensive DDoS protection which might run into thousands of dollars

Open Relay Project

If you are looking for a free solution, you can consider the Open Relay Project

They provide a free turn server that is production ready and bypasses most corporate firewalls

50 GB of TURN usage is free every month with the Open relay project

Here are some of the features of Open Relay Project

Open Relay is a free TURN server provided by Metered Video that you can use in your WebRTC applications. The Open Relay TURN server is highly available, reliable and offers both STUN and TURN Capabilities.

The Open Relay runs on port 80 and 443 to bypass corporate firewalls, many corporate/enterprise firewall only allow port 80 or 443, it also supports turns + SSL for maximum compatibility.

✅ Runs on port 80 and 443
✅ Tested to bypass most firewall rules
✅ Enterprise grade reliability (99.999% uptime)
✅ Support TURNS + SSL to allow connections through deep packet inspection firewalls.
✅ Support STUN
✅ Supports both TCP and UDP
✅ Dynamic routing to the nearest server
✅ Production Ready

Conclusion

In this article we explained how to install and run your own turn server on Digital Ocean

We also gave options and alternatives to running a server on Digital Ocean

  1. Metered TURN server: Excellent paid turn service for 0.4 USD per GB

  2. Open Relay Project: Free TURN server with up to 50 GB free TURN use every month

I hope this article works for you. Thank you for reading