Skip to content
Branch: master
Find file History
Latest commit 45d37ba Jun 12, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
collider Adding back TLS1.x ciphers to increase compatability Nov 2, 2016
collidermain Escape HTML in error message and update room server URL Sep 9, 2016
collidertest Restructre the apprtc repo Feb 3, 2015 Update Jun 12, 2017


A websocket-based signaling server in Go.


  1. Install the Go tools and workspaces as documented at and

  2. Checkout the apprtc repository

     git clone
  3. Make sure to set the $GOPATH according to the Go instructions in step 1

E.g. export GOPATH=$HOME/goWorkspace/ mkdir $GOPATH/src

  1. Link the collider directories into $GOPATH/src

     ln -s `pwd`/apprtc/src/collider/collider $GOPATH/src
     ln -s `pwd`/apprtc/src/collider/collidermain $GOPATH/src
     ln -s `pwd`/apprtc/src/collider/collidertest $GOPATH/src
  2. Install dependencies

     go get collidermain
  3. Install collidermain

     go install collidermain


$GOPATH/bin/collidermain -port=8089 -tls=true


go test collider


These instructions assume you are using Debian 7/8 and Go 1.6.3.

  1. Change roomSrv to your AppRTC server instance e.g.
var roomSrv = flag.String("room-server", "https://your.apprtc.server", "The origin of the room server")
  1. Then repeat step 6 in the Building section.

Install Collider

  1. Login on the machine that is going to run Collider.
  2. Create a Collider directory, this guide assumes it's created in the root (/collider).
  3. Create a certificate directory, this guide assumes it's created in the root (/cert).
  4. Copy $GOPATH/bin/collidermain from your development machine to the /collider directory on your Collider machine.


If you are deploying this in production, you should use certificates so that you can use secure websockets. Place the cert.pem and key.pem files in /cert/. E.g. /cert/cert.pem and /cert/key.pem

Auto restart

1. Add a /collider/ file:

#!/bin/sh -
/collider/collidermain 2>> /collider/collider.log

2. Make it executable by running chmod 744

If using inittab otherwise jump to step 5:

3. Add the following line to /etc/inittab to allow automatic restart of the Collider process (make sure to either add coll as an user or replace it below with the user that should run collider):


4. Run init q to apply the inittab change without rebooting.

If using systemd:

5. Create a service by doing sudo nano /lib/systemd/system/collider.service and adding the following:

Description=AppRTC signalling server (Collider)

6. Enable the service: sudo systemctl enable collider.service

7. Verify it's up and running: sudo systemctl status collider.service

Rotating Logs

To enable rotation of the /collider/collider.log file add the following contents to the /etc/logrotate.d/collider file:

/collider/collider.log {
    rotate 10

The log is rotated daily and removed after 10 days. Archived logs are in /collider.

You can’t perform that action at this time.