From 65f81391324831320ecadf50499a579559796053 Mon Sep 17 00:00:00 2001 From: Stefan Otto Date: Fri, 29 Jun 2018 11:32:37 +0200 Subject: [PATCH] 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