Rename to edumeet, ref #492

This commit is contained in:
Håvar Aambø Fosstveit 2020-06-26 12:40:39 +02:00
parent 5a4bd1f4f5
commit 08c54ee713
25 changed files with 62 additions and 61 deletions

View file

@ -1,7 +1,7 @@
# Howto deploy a (room based) load balanced cluster
This example will show how to setup an HA proxy to provide load balancing between several
multiparty-meeting servers.
edumeet servers.
## IP and DNS
@ -21,7 +21,7 @@ In this basic example we use the following names and ips:
* `meet.example.com` <=> `192.0.2.5`
## Deploy multiple multiparty-meeting servers
## Deploy multiple edumeet servers
This is most easily done using Ansible (see below), but can be done
in any way you choose (manual, Docker, Ansible).
@ -31,14 +31,14 @@ Read more here: [mm-ansible](https://github.com/misi/mm-ansible)
## Setup Redis for central HTTP session store
### Use one Redis for all multiparty-meeting servers
### Use one Redis for all edumeet servers
* Deploy a Redis cluster for all instances.
* We will use in our actual example `192.0.2.4` as redis HA cluster ip. It is out of scope howto deploy it.
OR
* For testing you can use Redis from one the multiparty-meeting servers. e.g. If you plan only for testing on your first multiparty-meeting server.
* For testing you can use Redis from one the edumeet servers. e.g. If you plan only for testing on your first edumeet server.
* Configure Redis `redis.conf` to not only bind to your loopback but also to your global ip address too:
``` plaintext
@ -60,7 +60,7 @@ OR
* **Set a password, or if you don't (like in this basic example) take care to set strict firewall rules**
## Configure multiparty-meeting servers
## Configure edumeet servers
### Server config
@ -84,7 +84,7 @@ trustProxy : ['192.0.2.5'],
* Add to /etc/haproxy/haproxy.cfg config
``` plaintext
backend multipartymeeting
backend edumeet
balance url_param roomId
hash-type consistent
@ -97,5 +97,5 @@ trustProxy : ['192.0.2.5'],
bind 192.0.2.5:443 ssl crt /root/certificate.pem
http-request redirect scheme https unless { ssl_fc }
reqadd X-Forwarded-Proto:\ https
default_backend multipartymeeting
default_backend edumeet
```

View file

@ -57,5 +57,5 @@ Open fully the settings **Click on show more!!**
## moodle plugin
Alternatively you can use multipartymeeting moodle plugin:
Alternatively you can use edumeet moodle plugin:
[https://github.com/misi/moodle-mod_multipartymeeting](https://github.com/misi/moodle-mod_multipartymeeting)

View file

@ -1,4 +1,4 @@
# multiparty-meeting
# edumeet
A WebRTC meeting service using [mediasoup](https://mediasoup.org).
@ -29,21 +29,21 @@ If you want the ansible approach, you can find ansible role [here](https://githu
If you want to install it on the Debian & Ubuntu based operating systems.
* Prerequisites:
multiparty-meeting will run on nodejs v10.x and later versions. (v12.x has a know issue for now, please until it will be fixed use the 10.x version)
edumeet will run on nodejs v10.x and later versions. (v12.x has a know issue for now, please until it will be fixed use the 10.x version)
To install see here [here](https://github.com/nodesource/distributions/blob/master/README.md#debinstall).
* Download .deb package from [here](https://github.com/havfo/multiparty-meeting/actions?query=workflow%3ADeployer+branch%3Amaster+is%3Asuccess) (job artifact)
* Download .deb package from [here](https://github.com/edumeet/edumeet/actions?query=workflow%3ADeployer+branch%3Amaster+is%3Asuccess) (job artifact)
* Unzip the file
```bash
$ unzip multiparty-meeting.zip
$ unzip edumeet.zip
```
* Install the package
```bash
$ sudo apt install multiparty-meeting/multiparty-meeting.deb
$ sudo apt install edumeet/edumeet.deb
```
* After package installation, don't forget the configure ip address in config file.
@ -55,13 +55,13 @@ $ sudo nano /etc/meeting/server-config.js
* Finally, start the service by (it's enabled by default)
```bash
$ sudo systemctl start multiparty-meeting
$ sudo systemctl start edumeet
```
## Manual installation
* Prerequisites:
Currently multiparty-meeting will only run on nodejs v13.x
Currently edumeet will only run on nodejs v13.x
To install see here [here](https://github.com/nodesource/distributions/blob/master/README.md#debinstall).
```bash
@ -71,8 +71,8 @@ $ sudo apt install git npm build-essential redis
* Clone the project:
```bash
$ git clone https://github.com/havfo/multiparty-meeting.git
$ cd multiparty-meeting
$ git clone https://github.com/edumeet/edumeet.git
$ cd edumeet
```
* Copy `server/config/config.example.js` to `server/config/config.js` :
@ -121,24 +121,24 @@ $ npm start
## Deploy it in a server
* Stop your locally running server. Copy systemd-service file `multiparty-meeting.service` to `/etc/systemd/system/` and check location path settings:
* Stop your locally running server. Copy systemd-service file `edumeet.service` to `/etc/systemd/system/` and check location path settings:
```bash
$ cp multiparty-meeting.service /etc/systemd/system/
$ edit /etc/systemd/system/multiparty-meeting.service
$ cp edumeet.service /etc/systemd/system/
$ edit /etc/systemd/system/edumeet.service
```
* Reload systemd configuration and start service:
```bash
$ systemctl daemon-reload
$ systemctl start multiparty-meeting
$ systemctl start edumeet
```
* If you want to start multiparty-meeting at boot time:
* If you want to start edumeet at boot time:
```bash
$ systemctl enable multiparty-meeting
$ systemctl enable edumeet
```
## Ports and firewall

View file

@ -1,8 +1,8 @@
{
"name": "multiparty-meeting",
"name": "edumeet",
"version": "3.3.0",
"private": true,
"description": "multiparty meeting service",
"description": "edumeet meeting service",
"author": "Håvar Aambø Fosstveit <h@fosstveit.net>",
"license": "MIT",
"homepage": "./",

View file

@ -147,7 +147,7 @@ var config =
lockLastN : false,
// Add file and uncomment for adding logo to appbar
// logo : 'images/logo.svg',
title : 'Multiparty meeting',
title : 'edumeet',
// Service & Support URL
// if not set then not displayed on the about modals
supportUrl : 'https://support.example.com',

View file

@ -6,14 +6,14 @@
name='viewport'
content='width=device-width, initial-scale=1, shrink-to-fit=no'
/>
<meta name='description' content='multiparty meeting - Simple web meetings'>
<meta name='description' content='edumeet - Simple web meetings'>
<meta name='theme-color' content='#000000' />
<link rel='preconnect' href='https://fonts.googleapis.com/css?family=Roboto' rel='stylesheet'>
<link rel='shortcut icon' href='%PUBLIC_URL%/favicon.ico' />
<link rel='manifest' href='%PUBLIC_URL%/manifest.json' />
<title>Multiparty Meeting</title>
<title>edumeet</title>
<script src='%PUBLIC_URL%/config/config.js' type='text/javascript'></script>
@ -57,6 +57,6 @@
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id='multiparty-meeting'></div>
<div id='edumeet'></div>
</body>
</html>

View file

@ -1,6 +1,6 @@
{
"short_name": "Multiparty Meeting",
"name": "Multiparty Meeting - Simple web meetings",
"short_name": "edumeet",
"name": "edumeet - Simple web meetings",
"icons": [
{
"src": "favicon.ico",

View file

@ -1,6 +1,6 @@
import debug from 'debug';
const APP_NAME = 'multiparty-meeting';
const APP_NAME = 'edumeet';
export default class Logger
{

View file

@ -35,7 +35,7 @@ class ElectronScreenShare
if (source.name === 'Entire Screen')
{
return navigator.mediaDevices.getUserMedia({
audio : false,
audio : true,
video :
{
mandatory :
@ -112,7 +112,8 @@ class DisplayMediaScreenShare
_toConstraints(options)
{
const constraints = {
video : {}
video : {},
audio : true
};
if (isFinite(options.width))

View file

@ -125,7 +125,7 @@ const ChooseRoom = ({
}}
>
<DialogTitle>
{ window.config.title ? window.config.title : 'Multiparty meeting' }
{ window.config.title ? window.config.title : 'edumeet' }
<hr />
</DialogTitle>
<DialogContent>

View file

@ -307,7 +307,7 @@ const TopBar = (props) =>
color='inherit'
noWrap
>
{ window.config.title ? window.config.title : 'Multiparty meeting' }
{ window.config.title ? window.config.title : 'edumeet' }
</Typography>
<div className={classes.grow} />
<div className={classes.sectionDesktop}>

View file

@ -228,7 +228,7 @@ const JoinDialog = ({
}}
loggedIn={loggedIn}
>
{ window.config.title ? window.config.title : 'Multiparty meeting' }
{ window.config.title ? window.config.title : 'edumeet' }
<hr />
</DialogTitle>
<DialogContent>

View file

@ -74,8 +74,8 @@ class NewWindow extends React.PureComponent
static defaultProps =
{
url : '',
name : 'Multiparty Meeting',
title : 'Multiparty Meeting',
name : 'edumeet',
title : 'edumeet',
features : { width: '800px', height: '600px' },
onBlock : null,
onUnload : null,

View file

@ -33,7 +33,7 @@ body
margin: 0;
}
#multiparty-meeting
#edumeet
{
height: 100%;
width: 100%;

View file

@ -205,7 +205,7 @@ function run()
/>
</RawIntlProvider>
</MuiThemeProvider>,
document.getElementById('multiparty-meeting')
document.getElementById('edumeet')
);
return;
@ -253,7 +253,7 @@ function run()
</RawIntlProvider>
</MuiThemeProvider>
</Provider>,
document.getElementById('multiparty-meeting')
document.getElementById('edumeet')
);
}

View file

@ -1,15 +1,15 @@
[Unit]
Description=multiparty-meeting is a audio / video meeting service running in the browser and powered by webRTC
Description=edumeet is a audio / video meeting service running in the browser and powered by webRTC
After=network.target
[Service]
ExecStart=/usr/local/src/multiparty-meeting/server/server.js
ExecStart=/usr/local/src/edumeet/server/server.js
Restart=always
User=nobody
Group=nogroup
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/usr/local/src/multiparty-meeting/server
WorkingDirectory=/usr/local/src/edumeet/server
AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]

View file

@ -52,8 +52,8 @@ if [ "$1" = "config" ]; then
exit 0
fi
ROOMS=`docker exec -t mm_mm_1 /opt/multiparty-meeting/server/connect.js --stats | grep 'rooms' | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" | sed -E 's/rooms:([0-9]+)/\1/g'`
PEERS=`docker exec -t mm_mm_1 /opt/multiparty-meeting/server/connect.js --stats | grep 'peers' | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" | sed -E 's/peers:([0-9]+)/\1/g'`
ROOMS=`docker exec -t mm_mm_1 /opt/edumeet/server/connect.js --stats | grep 'rooms' | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" | sed -E 's/rooms:([0-9]+)/\1/g'`
PEERS=`docker exec -t mm_mm_1 /opt/edumeet/server/connect.js --stats | grep 'peers' | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" | sed -E 's/peers:([0-9]+)/\1/g'`
echo "rooms.value ${ROOMS}"
echo "peers.value ${PEERS}"

View file

@ -13,14 +13,14 @@ for closed connections but that `prom-client`
custom collectors.
This version has been ported from an earlier Python version that was not part
of `multiparty-meeting` but connected as an interactive client.
of `edumeet` but connected as an interactive client.
## Configuration
See `prometheus` in `server/config/config.example.js` for options and
applicable defaults.
If `multiparty-meeting` was installed with
If `edumeet` was installed with
[`mm-absible`](https://github.com/misi/mm-ansible)
it may be necessary to open the `iptables` firewall for incoming TCP traffic
on the allocated port (see `/etc/ferm/ferm.conf`).

View file

@ -55,7 +55,7 @@ module.exports =
client_id : '',
client_secret : '',
scope : 'openid email profile',
// where client.example.com is your multiparty meeting server
// where client.example.com is your edumeet server
redirect_uri : 'https://client.example.com/auth/callback'
}
@ -88,7 +88,7 @@ module.exports =
redisOptions : {},
// session cookie secret
cookieSecret : 'T0P-S3cR3t_cook!e',
cookieName : 'multiparty-meeting.sid',
cookieName : 'edumeet.sid',
// if you use encrypted private key the set the passphrase
tls :
{

View file

@ -4,7 +4,7 @@ exports.loginHelper = function(data)
<html>
<head>
<meta charset='utf-8'>
<title>Multiparty Meeting</title>
<title>edumeet</title>
</head>
<body>
<script type='text/javascript'>
@ -26,7 +26,7 @@ exports.logoutHelper = function()
<html>
<head>
<meta charset='utf-8'>
<title>Multiparty Meeting</title>
<title>edumeet</title>
</head>
<body>
<script type='text/javascript'>

View file

@ -1,6 +1,6 @@
const debug = require('debug');
const APP_NAME = 'multiparty-meeting-server';
const APP_NAME = 'edumeet-server';
class Logger
{

View file

@ -2,8 +2,8 @@ const net = require('net');
const os = require('os');
const path = require('path');
const SOCKET_PATH_UNIX = '/tmp/multiparty-meeting-server.sock';
const SOCKET_PATH_WIN = path.join('\\\\?\\pipe', process.cwd(), 'multiparty-meeting-server');
const SOCKET_PATH_UNIX = '/tmp/edumeet-server.sock';
const SOCKET_PATH_WIN = path.join('\\\\?\\pipe', process.cwd(), 'edumeet-server');
const SOCKET_PATH = os.platform() === 'win32'? SOCKET_PATH_WIN : SOCKET_PATH_UNIX;
module.exports = async function()

View file

@ -8,8 +8,8 @@ const mediasoup = require('mediasoup');
const colors = require('colors/safe');
const pidusage = require('pidusage');
const SOCKET_PATH_UNIX = '/tmp/multiparty-meeting-server.sock';
const SOCKET_PATH_WIN = path.join('\\\\?\\pipe', process.cwd(), 'multiparty-meeting-server');
const SOCKET_PATH_UNIX = '/tmp/edumeet-server.sock';
const SOCKET_PATH_WIN = path.join('\\\\?\\pipe', process.cwd(), 'edumeet-server');
const SOCKET_PATH = os.platform() === 'win32' ? SOCKET_PATH_WIN : SOCKET_PATH_UNIX;
// Maps to store all mediasoup objects.

View file

@ -1,8 +1,8 @@
{
"name": "multiparty-meeting-server",
"name": "edumeet-server",
"version": "3.3.0",
"private": true,
"description": "multiparty meeting server",
"description": "edumeet server",
"author": "Håvar Aambø Fosstveit <h@fosstveit.net>",
"license": "MIT",
"main": "lib/index.js",

View file

@ -1,6 +1,6 @@
#!/usr/bin/env node
process.title = 'multiparty-meeting-server';
process.title = 'edumeet-server';
const config = require('./config/config');
const fs = require('fs');