Update README.md

master
Stefan Otto 2018-06-29 11:32:37 +02:00 committed by GitHub
parent a40f0569ac
commit 65f8139132
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 43 additions and 23 deletions

View File

@ -14,25 +14,29 @@ $ git clone https://github.com/havfo/multiparty-meeting.git
$ cd multiparty-meeting $ cd multiparty-meeting
``` ```
* Set up the server: * Copy `server/config.example.js` to `server/config.js` :
```bash ```bash
$ cd server $ cp server/config.example.js server/config.js
$ npm install
``` ```
* Copy `config.example.js` as `config.js` and customize it for your scenario: * Copy `app/config.example.js` to `app/config.js` :
```bash ```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: * Set up the browser app:
```bash ```bash
$ cd app $ cd app
$ npm install $ 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`): * Globally install `gulp-cli` NPM module (may need `sudo`):
@ -40,41 +44,57 @@ $ npm install
$ npm install -g gulp-cli $ npm install -g gulp-cli
``` ```
* Set up the server:
```bash
$ cd ..
$ cd server
$ npm install
```
## Run it locally ## Run it locally
* Run the Node.js server application in a terminal: * Run the Node.js server application in a terminal:
```bash ```bash
$ cd server
$ node server.js $ node server.js
``` ```
* test your service in a webRTC enabled browser: `https://yourDomainOrIPAdress:3443/roomname`
* In another terminal build and run the browser application:
```bash
$ cd app
$ gulp live
```
* Enjoy.
## Deploy it in a server ## 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 ```bash
$ cd app $ cp multiparty-meeting.service /etc/systemd/system/
$ gulp dist $ 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 ## Author