• Stars
    star
    197
  • Rank 190,783 (Top 4 %)
  • Language
    Erlang
  • License
    Apache License 2.0
  • Created almost 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

STUN / TURN standalone server

eturnal TURN Server

CI

eturnal is a modern, straightforward STUN and TURN server. For authentication, the mechanism described in the REST API for Access to TURN Services specification is implemented. The server can easily be tested in a Linux shell or using Docker. For a persistent installation, see the following section.

Installation

Note: Running eturnal in container environments such as Docker or Kubernetes is described on a separate documentation page.

On APT-based Linux distributions, run:

sudo apt install extrepo
sudo extrepo enable eturnal
sudo apt update
sudo apt install eturnal

On DNF-based Linux distributions, run:

sudo dnf config-manager --add-repo https://eturnal.net/eturnal.repo
sudo dnf install eturnal
sudo systemctl --now enable eturnal

On YUM-based Linux distributions, run:

sudo yum-config-manager --add-repo https://eturnal.net/eturnal.repo
sudo yum install eturnal
sudo systemctl --now enable eturnal

On SUSE Linux Enterprise and openSUSE systems, distribution repositories can be used instead. There's also an official Alpine package. On other Linux systems, the binary release can be installed as described in the reference documentation. For Windows, an installer is available.

On macOS, homebrew can be used like this:

brew tap processone/eturnal https://github.com/processone/eturnal
brew install processone/eturnal/eturnal

On other platforms, eturnal is built from source.

Configuration

The eturnal server is configured by editing the /etc/eturnal.yml file. This file uses the (indentation-sensitive!) YAML format. For TURN relaying to work, you'll have to specify the shared authentication secret and (if autodetection fails) also the relay_ipv4_addr option, which should be set to the server's external IPv4 address. As an example, a configuration for offering STUN and TURN services on port 3478 (UDP and TCP) might look like this:

eturnal:
  secret: "long-and-cryptic"     # Shared secret, CHANGE THIS.
  relay_ipv4_addr: "203.0.113.4" # The server's public IPv4 address.
  relay_ipv6_addr: "2001:db8::4" # The server's public IPv6 address (optional).

A more detailed, commented example configuration is shipped with the eturnal server.

Running eturnal

On Linux systems, the eturnal server is usually invoked by systemd. For non-systemd platforms, example init and OpenRC scripts are shipped below the etc directory.

For controlling eturnal, the eturnalctl command can be used; see:

eturnalctl help

Logging

If eturnal was started by systemd, log files are written into the /var/log/eturnal directory by default. In order to log to the journal instead, the log_dir option can be set to stdout in the configuration file.

Documentation

For a detailed description of eturnal's configuration options and the eturnalctl tool, see the reference documentation. For notable changes between eturnal releases, see the change log.

Feedback/Support

Please use our issue tracker for bug reports and feature requests. Feel free to (ab)use it for usage questions as well. If you happen to be using XMPP, you could also join our public room [email protected]. Otherwise, just use the web client. As an alternative, there's an #eturnal channel on Slack.

More Repositories

1

ejabberd

Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)
Erlang
5,849
star
2

tsung

Tsung is a high-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc.
Erlang
2,499
star
3

ejabberd-contrib

Growing and curated ejabberd contributions repository - PR or ask to join !
Erlang
244
star
4

stun

STUN and TURN library for Erlang / Elixir
Erlang
239
star
5

xmpp-messenger-ios

iOS XMPP Messenger Framework
Swift
219
star
6

exmpp

Erlang XMPP library
Erlang
182
star
7

fast_xml

Fast Expat based Erlang XML parsing library
Erlang
127
star
8

xmpp

Erlang/Elixir XMPP parsing and serialization library on top of Fast XML
Erlang
122
star
9

oneteam

OneTeam XMPP multi-platform client. This is a Mozilla / XUL based platform, developed mostly in Javascript and C++ XPCOM.
C
101
star
10

grapherl

ejabberd monitoring server
Erlang
90
star
11

docker-ejabberd

Set of ejabberd Docker images
Shell
89
star
12

fast_tls

TLS / SSL OpenSSL-based native driver for Erlang / Elixir
C
81
star
13

demo-xmpp-ios

XMPPFramework Basic client relying using CocoaPods package
Swift
56
star
14

iconv

Fast encoding conversion library for Erlang / Elixir
Shell
51
star
15

fast_yaml

Fast YAML native library for Erlang / Elixir
Erlang
50
star
16

rtb

Benchmarking tool to stress real-time protocols
Erlang
48
star
17

eimp

Erlang Image Manipulation Process
Erlang
46
star
18

cache_tab

In-memory cache Erlang / Elixir library
Erlang
44
star
19

oms

Erlang-based Flash media server supporting video streaming, video conferencing, RPC call from client and from server, Remote Shared objects.
JavaScript
43
star
20

ejabberd-vagrant-dev

Vagrant and Ansible script to create a VM preconfigured for ejabberd development
31
star
21

go-erlang

Go library for Erlang/Elixir interop
Go
30
star
22

ejabberd-api

ejabberd API library in Go and multi-platform command-line tool
Go
23
star
23

xmpp-websocket-client

Test XMPP Websocket client
JavaScript
21
star
24

p1_pgsql

Pure Erlang PostgreSQL driver
Erlang
19
star
25

oneweb

OneWeb firefox extension to interact with browser and share content over XMPP
JavaScript
18
star
26

p1_mysql

Pure Erlang MySQL driver
Erlang
18
star
27

p1_utils

Erlang Utility Modules from ProcessOne
Erlang
18
star
28

esip

ProcessOne SIP server component in Erlang
Erlang
18
star
29

stringprep

Fast Stringprep implementation for Erlang / Elixir
C
16
star
30

fast_ts

Fast TS is a fast Time Series Event Stream Processor
Elixir
16
star
31

jamler

OCaml
15
star
32

docs.ejabberd.im

This is documentation site for ejabberd messaging server
Makefile
14
star
33

mysql

Erlang MySQL driver
Erlang
13
star
34

xml

Fast Expat based Erlang XML parsing library
Erlang
12
star
35

mqtree

Index tree for MQTT topic filters
C
12
star
36

ezlib

Native zlib driver for Erlang / Elixir
Erlang
11
star
37

p1_acme

ACME client library for Erlang
Erlang
11
star
38

eiconv

iconv Erlang binding
Shell
10
star
39

tls

TLS / SSL native driver for Erlang / Elixir
C
10
star
40

p1pp

ProcessOne Push Platform Command Line
Ruby
10
star
41

dpk

Analyse & convert data from online services for backup, indexing or migration purpose
Go
9
star
42

epam

epam helper for Erlang / Elixir PAM authentication support
Erlang
9
star
43

pkix

PKIX certificates management for Erlang
Erlang
9
star
44

httpmock

HTTP recorder and mock library
HTML
9
star
45

pgsql

Pure Erlang PostgreSQL driver
Erlang
8
star
46

xmpp-notifier

Github Action to send repository notifications to XMPP
Go
8
star
47

p1_yaml

Fast Yaml native library for Erlang / Elixir
Erlang
7
star
48

p1pp-js

ProcessOne Push Platform Javascript library
JavaScript
7
star
49

android-wave-client

Wave client for Android mobile
Java
6
star
50

elixir_experiments

This is a repository containing Elixir experiments for ejabberd
Elixir
5
star
51

eredis_queue

Erlang Async Job Processing
Erlang
5
star
52

zlib

Native zlib driver for Erlang
Erlang
5
star
53

bfile

An interface to fast FILE I/O
C
5
star
54

ecrdt

CRDT compliant data structures
Erlang
4
star
55

yconf

YAML configuration processor
Erlang
4
star
56

p1_sip

ProcessOne SIP server component
Erlang
4
star
57

rebar3_exunit

A plugin to run Elixir ExUnit tests from rebar3 build tool
Erlang
2
star
58

google-wave-api

Wave API ported for Android
Java
2
star
59

dns-tools

Provides a programmer-friendly API for a number of undocumented OTP dns lookup, resolution, caching and configuration functions.
Erlang
2
star
60

ejabberd-po

Translation files for ejabberd
Erlang
2
star
61

soundcloud

Minimal library to implement SoundCloud client in Go
Go
1
star
62

OpenfireExporter

Export users from Openfire
1
star
63

p1_logger

ProcessOne logger for ejabberd
Erlang
1
star
64

jorge

Jorge is set of php scripts that are front-end for Oleg Palij ejabberd mod_logdb
PHP
1
star
65

ejabberdOSXPrefs

ejabberd preference panel for OSX
Objective-C
1
star
66

boxcar-ios-framework

iOS Push Framework for Boxcar
Objective-C
1
star
67

jira-security-level-plugin

This is a JIRA plugin to automatically set security level based on group of the reporter
Java
1
star