Signaling server made for broadcasting. It is the implementation of my B.Sc. thesis idea.
Linted with ESLint (with standard JS guidelines), transpiled with Babel, tested with Mocha and using Backpack as the build system (supports recompilation at saving).
- Node.js version 14.16.1 (older versions may work too) - make sure you have npm installed
- Clone (or download) the repo wherever you want on your computer
npm install
from the root folder of the cloned repo- Provide the SSL certificate for making HTTPS work properly, as following:
cert.pem
- the certificatechain.pem
- the intermediate signing authorityprivkey.pem
- the private key
npm build
- compiles the server to old-school JSnpm start
- starts the server normally (on port 8000). The port can be modified using the PORT environment variablenpm run start-local
- starts the server as an HTTP server (for local testing of the app)npm test
- runs all the testsnpm run coverage
- runs all the tests and get a coverage log
- Clone the repo
- Set up the external URL to the WebSocket server. It should use this pattern:
https://<domain-name>/wsapp
Please ensure that you provide it under a SERVER_URL
variable in the client/.env
file.
docker-compose build --no-cache
. The--no-cache
argument enforces running all steps, including cloning this repo: https://github.com/haja-fgabriel/webrtc-broadcast-client (TODO add the frontend as a submodule)
In this step, the JS files are compiled to singular source files.
- Bring an SSL certificate and put it into a new
certs/
folder. The full-chain certificate should be namedfullchain1.pem
and the private key should beprivkey1.pem
.
You can generate one using Let's Encrypt (certbot). Provide your e-mail address and the domain name. You can generate a domain name for free using freemyip.com
docker-compose up
- starts all the containers