mediasoup-demo v3
A demo application of mediasoup v3.
Try it online at https://v3demo.mediasoup.org.
Resources
- mediasoup website and documentation: mediasoup.org
- mediasoup support forum: mediasoup.discourse.group
Installation
- Clone the project:
$ git clone https://github.com/versatica/mediasoup-demo.git
$ cd mediasoup-demo
$ git checkout v3
-
Ensure you have installed the dependencies required by mediasoup to build.
-
Set up the mediasoup-demo server:
$ cd server
$ npm install
- Copy
config.example.js
asconfig.js
and customize it for your scenario:
$ cp config.example.js config.js
NOTE: To be perfectly clear, "customize it for your scenario" is not something "optional". If you don't set proper values in config.js
the application won't work.
- Set up the mediasoup-demo browser app:
$ cd app
$ npm install
Run it locally
- Run the Node.js server application in a terminal:
$ cd server
$ npm start
- In a different terminal build and run the browser application:
$ cd app
$ npm start
- Enjoy.
Deploy it in a server
- Globally install
gulp-cli
NPM module (may needsudo
):
$ npm install -g gulp-cli
- Build the production ready browser application:
$ cd app
$ gulp dist
-
Upload the entire
server
folder to your server and make your web server (Apache, Nginx, etc) expose theserver/public
folder. -
Edit your
server/config.js
with appropriate settings (listening IP/port, logging options, valid TLS certificate, etc). -
Within your server, run the Node.js application by setting the
DEBUG
environment variable according to your needs (more info):
$ DEBUG="*mediasoup* *ERROR* *WARN*" node server.js
-
If you wish to run it as daemon/service you can use pm2 process manager. Or you can dockerize it among other options.
-
The Node.js application exposes an interactive terminal. When running as daemon (in background) the host administrator can connect to it by entering into the
server
folder and running:
$ npm run connect
Run mediasoup server with Docker
- Required environment variables: server/DOCKER.md.
- Build the Docker image: server/docker/build.sh.
- Run the Docker image: server/docker/run.sh.
$ cd server
$ docker/build.sh
$ MEDIASOUP_ANNOUNCED_IP=192.168.1.34 ./docker/run.sh
Considerations for (config.js)[server/config.example.js]
- Make sure https.listenIp is set to
0.0.0.0
. - Make sure TLS certificates reside in
server/certs
directory with namesfullchain.pem
andprivkey.pem
. - The default mediasoup port range is just 2000-2020, which is not suitable for production. You should increase it, however you should then run the container in
network="host"
mode.
Authors
License
MIT