From c80e44a469373708166f80bcd116148da149b66e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A5var=20Aamb=C3=B8=20Fosstveit?= Date: Tue, 19 Jun 2018 14:26:32 +0200 Subject: [PATCH 1/3] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 912f30c..105696d 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ A WebRTC meeting service using [mediasoup](https://mediasoup.org) as its backend. -Try it online at https://mediasoup.akademia.no. +Try it online at https://akademia.no. You can add /roomname to the URL for specifying a room. ## Installation From 65f81391324831320ecadf50499a579559796053 Mon Sep 17 00:00:00 2001 From: Stefan Otto Date: Fri, 29 Jun 2018 11:32:37 +0200 Subject: [PATCH 2/3] Update README.md --- README.md | 66 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 105696d..3021a89 100644 --- a/README.md +++ b/README.md @@ -14,25 +14,29 @@ $ git clone https://github.com/havfo/multiparty-meeting.git $ cd multiparty-meeting ``` -* Set up the server: +* Copy `server/config.example.js` to `server/config.js` : ```bash -$ cd server -$ npm install +$ cp server/config.example.js server/config.js ``` -* Copy `config.example.js` as `config.js` and customize it for your scenario: +* Copy `app/config.example.js` to `app/config.js` : ```bash -$ cp config.example.js config.js +$ cp app/config.example.js app/config.js ``` +* Edit your two `config.js` with appropriate settings (listening IP/port, logging options, **valid** TLS certificate, etc). + * Set up the browser app: ```bash $ cd app $ npm install +$ export NODE_ENV=production +$ gulp dist ``` +This will build the client application and copy everythink to `server/public` from where the server can host client code to browser requests. (no apache/NGINX needed) * Globally install `gulp-cli` NPM module (may need `sudo`): @@ -40,41 +44,57 @@ $ npm install $ npm install -g gulp-cli ``` +* Set up the server: + +```bash +$ cd .. +$ cd server +$ npm install +``` ## Run it locally * Run the Node.js server application in a terminal: ```bash -$ cd server $ node server.js ``` - -* In another terminal build and run the browser application: - -```bash -$ cd app -$ gulp live -``` - -* Enjoy. - +* test your service in a webRTC enabled browser: `https://yourDomainOrIPAdress:3443/roomname` ## Deploy it in a server -* Build the production ready browser application: - +* Stop your locally running server. Copy systemd-service file `multiparty-meeting.service` to `/etc/systemd/system/` and dobbel check location path settings: ```bash -$ cd app -$ gulp dist +$ cp multiparty-meeting.service /etc/systemd/system/ +$ edit /etc/systemd/system/multiparty-meeting.service ``` -* Upload the entire `server` folder to your server and make your web server (Apache, Nginx...) expose the `server/public` folder. +* reload systemd configuration and start service: -* Edit your `server/config.js` with appropriate settings (listening IP/port, logging options, **valid** TLS certificate, etc). +```bash +$ systemctl daemon-reload +$ systemctl start cdrReceiver +``` -* Within your server, run the server side Node.js application. We recommend using the [pm2](https://www.npmjs.com/package/pm2) NPM daemon launcher, but any other can be used. +* if you want to start multiparty-meeting at boot time: +```bash +$ systemctl enable multiparty-meeting +``` +## Ports and firewall + +* 3443/tcp (default https webserver and signaling - adjustable in `server/config.js`) +* 3000/tcp (default `gulp live` port for developing with live browser reload, not needed in production enviroments - adjustable in app/gulpfile.js) +* 40000-49999/udp/tcp (media ports - adjustable in `server/config.js`) + +* If you want your service running at standard ports 80/443 you should: + * Make a redirect from HTTP port 80 to HTTPS (with Apache/NGINX) + * Configure a forwarding rule with iptables from port 443 to your configured service port (default 3443) + + +## TURN configuration + +* You need an addtional [TURN](https://github.com/coturn/coturn)-server for clients located behind restrictive firewalls! Add your server and credentials to `app/config.js` ## Author From 369310704f548c85f1c36992cee198e69b558d88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A5var=20Aamb=C3=B8=20Fosstveit?= Date: Fri, 29 Jun 2018 12:33:58 +0200 Subject: [PATCH 3/3] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3021a89..18f3895 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ $ edit /etc/systemd/system/multiparty-meeting.service ```bash $ systemctl daemon-reload -$ systemctl start cdrReceiver +$ systemctl start multiparty-meeting ``` * if you want to start multiparty-meeting at boot time: @@ -99,6 +99,8 @@ $ systemctl enable multiparty-meeting ## Author * Håvar Aambø Fosstveit +* Stefan Otto +* Mészáros Mihály This is heavily based on the [work](https://github.com/versatica/mediasoup-demo) done by: