A websocket-based signaling server in Go.
Install the Go tools and workspaces as documented at http://golang.org/doc/install and http://golang.org/doc/code.html
Checkout the apprtc
repository
git clone https://github.com/webrtc/apprtc.git
Make sure to set the $GOPATH according to the Go instructions in step 1
E.g. export GOPATH=$HOME/goWorkspace/
mkdir $GOPATH/src
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
Install dependencies
go get collidermain
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.
var roomSrv = flag.String("room-server", "https://your.apprtc.server", "The origin of the room server")
/collider
)./cert
).$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
1. Add a /collider/start.sh
file:
#!/bin/sh - /collider/collidermain 2>> /collider/collider.log
2. Make it executable by running chmod 744 start.sh
.
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):
coll:2:respawn:/collider/start.sh
4. Run init q
to apply the inittab change without rebooting.
5. Create a service by doing sudo nano /lib/systemd/system/collider.service
and adding the following:
[Unit] Description=AppRTC signalling server (Collider) [Service] ExecStart=/collider/start.sh StandardOutput=null [Install] WantedBy=multi-user.target Alias=collider.service
6. Enable the service: sudo systemctl enable collider.service
7. Verify it's up and running: sudo systemctl status collider.service
To enable rotation of the /collider/collider.log
file add the following contents to the /etc/logrotate.d/collider
file:
/collider/collider.log { daily compress copytruncate dateext missingok notifempty rotate 10 sharedscripts }
The log is rotated daily and removed after 10 days. Archived logs are in /collider
.