https://github.com/palavatv/signaltower
Signaling server for WebRTC video-/audio conferencing using the palava protocol
https://github.com/palavatv/signaltower
elixir hacktoberfest signaling-server webrtc
Last synced: 3 months ago
JSON representation
Signaling server for WebRTC video-/audio conferencing using the palava protocol
- Host: GitHub
- URL: https://github.com/palavatv/signaltower
- Owner: palavatv
- License: gpl-3.0
- Created: 2016-08-10T17:09:44.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2025-11-22T13:32:47.000Z (7 months ago)
- Last Synced: 2025-11-22T15:17:20.686Z (7 months ago)
- Topics: elixir, hacktoberfest, signaling-server, webrtc
- Language: Elixir
- Homepage: https://palava.tv
- Size: 121 KB
- Stars: 39
- Watchers: 6
- Forks: 8
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG
- License: LICENSE
Awesome Lists containing this project
README
# palava | signal tower

---
[palava.tv](https://palava.tv) is a cost-free, simple to use, secure, and open source platform for video calls, built on top of the [WebRTC](https://webrtc.org/) technology.
This repository contains the WebRTC signaling backend of palava.tv. There is an overview of all parts of palava.tv at [palavatv/palava](https://github.com/palavatv/palava).
The signal tower is a signaling server for WebRTC applications written in Elixir. It implements the [palava signaling protocol][palava protocol] over websockets to be used together with the [palava client][palava client].
## Setup
**Install:**
```
mix deps.get
mix deps.compile
```
**Test:**
```
mix test
```
You can also watch file changes and rerun tests automatically:
```
mix test.watch
```
**Start locally:**
```
./start.sh or ./start_daemon.sh
```
**Release and use in production:**
```
mix release production
```
**Options:**
To use a Turn Server, generate a secret key string, e.g. via `openssl rand -base64 30` and set:
```
export SIGNALTOWER_TURN_SECRET=
```
The same secret key must be configured in the turn server.
For example for coturn, use the following configuration in turnserver.conf:
```
use-auth-secret
static-auth-secret=
```
By default, the websocket port 4233 is used, you can change it via:
```
export SIGNALTOWER_PORT=1234
```
By default, the websocket is bound to all interfaces (0.0.0.0), you can also bind it just localhost (127.0.0.1) via:
```
export SIGNALTOWER_LOCALHOST
```
## References
[palava protocol]: https://github.com/palavatv/palava-client/wiki/Protocol
[palava client]: https://github.com/palavatv/palava-client/
[palava project]: https://github.com/palavatv/palava