Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
WebRTC audio/video call and conferencing server.
JavaScript Go CSS HTML Other
Failed to load latest commit information.
build Updated r.js to 2.1.15.
debian 0.23.7
doc Added missing strict mode.
html Added modules section to config file to allow to disable screensharin…
m4 Use autoconf macro to compare versions.
src Detect full screen exit properly and use :fullscreen style instead of…
static Detect full screen exit properly and use :fullscreen style instead of…
.gitignore Don't create config.h, it's not needed for a golang only project.
.gitmodules Get rid of submodule and directly added sleepy milestone1.
.hound.yml Point hound to correct config.
.javascript_ignore Ignore vendor javascripts in hound validation.
.jshint Merge branch 'release-0.23'
.travis.yml Fix building in Travis.
COPYING Added autoconf/automake support.
ChangeLog Added autoconf/automake support.
Dockerfile The Dockerfile now even works.
LICENSE Initial public release. Added support for scss-lint in Hound and Makefile.
NEWS Added autoconf/automake support.
README Added autoconf/automake support. Minor improvements and typo fixes. Added autoconf/automake support. Added support for scss-lint in Hound and Makefile.
package.json Fix building in Travis. Contacts can now be disabled on server module level (server.conf).
spreed-webrtc-server Changed name of project to Spreed WebRTC.

Spreed WebRTC

Spreed WebRTC implements a WebRTC audio/video call and conferencing server and web client.

The latest version of Spreed WebRTC can be found on GitHub:

Build prerequisites

Runtime dependencies

Spreed WebRTC compiles directly to native code and has no external runtime dependencies. See here for details.


Build Status

If you got spreed-webrtc from the git repository, you will first need to run the included script to generate the configure script.

Configure does try to find all the tools on your system at the standard locations. If the dependencies are somewhere else, add the corresponding parameters to the ./configure call.

$ ./configure
$ make

Build seperately

There are several make targets available. Get Go external dependencies at least once with make get, all the other targets depend on this.

$ make get
$ make assets
$ make binary

Server startup

spreed-webrtc-server [OPTIONS]


-c="./server.conf": Configuration file.
-cpuprofile="": Write cpu profile to file.
-h=false: Show this usage information and exit.
-l="": Log file, defaults to stderr.
-memprofile="": Write memory profile to this file.
-v=false: Display version number and exit.

An example configuration file can be found in


Connect to the server URL and port with a web browser and the web client will launch.


To build styles and translations, further dependencies are required. The source tree contains already built styles and translations, so these are only required if you want to make changes.

The following Node.js modules are required, these may be installed locally by running npm install from the project root. Consult the package.json file for more details.

Styles can be found in src/styles. Translations are found in src/i18n. Each folder has its own Makefile to build the corresponding files. Check the templates for available make targets.

Running server for development

Copy the to server.conf.

Build styles, javascript and binary using make. Then run ./spreed-webrtc-server

The server runs on http://localhost:8080/ per default.

HTML changes and Go rebuilds need a server restart. Javascript and CSS reload directly.

Running for production

Spreed WebRTC should be run through a SSL frontend proxy with support for Websockets. Example configuration for Nginx can be found in doc/NGINX.txt.

In addion for real world use, one also needs a STUN/TURN server configured (with shared secret support).

See for a free open source TURN server implementation. Make sure to use a recent version (We recommend 3.2). Versions below 2.5 are not supported.


  1. "Fork" develop branch.
  2. Create a feature branch.
  3. Make changes.
  4. Do your commits (run make fmt and make jshint before commit).
  5. Send "pull request" for develop branch.


Spreed WebRTC uses the AGPL license, see our LICENSE file.

Something went wrong with that request. Please try again.