Getting Started

uTURN is an open source TURN (Traversal Using Relays around NAT) server designed for Kubernetes and other restrictive network environments. Unlike traditional TURN servers that open a wide range of UDP ports, uTURN routes all traffic through a single UDP port, making it easy to deploy behind firewalls and standard load balancers. It is particularly useful for enabling WebRTC peer-to-peer connectivity between clients that cannot establish direct connections.

Available as a managed service in Eyevinn Open Source Cloud.

Prerequisites

Step 1: Create a uTURN instance

Navigate to the uTURN service page and click Create uturn.

Configure the instance:

  • Name — a unique name for this TURN server instance
  • Realm (optional) — the authentication domain used for TURN credential validation. Defaults to uturn. This value is included in the 401 challenge sent to clients and should match what your WebRTC application expects.
  • Users (optional) — one or more user credentials in username:password format. These are the long-term credentials clients present when connecting to the TURN server. You can add multiple users by repeating the field.

Once the instance is running, the dashboard shows the TURN server URL.

Step 2: Configure your WebRTC application

Pass the TURN server URL and credentials to your WebRTC ICE configuration:

const peerConnection = new RTCPeerConnection({
  iceServers: [
    {
      urls: 'turn:<your-uturn-instance-url>',
      username: 'alice',
      credential: 'secretpass'
    }
  ]
});

Replace <your-uturn-instance-url> with the URL shown on the instance card, and alice/secretpass with the credentials you configured in the Users field.

CLI usage

osc create srperens-uturn myrelay \
  -o Realm="myrealm" \
  -o Users="alice:secretpass"

Resources