mirror of
https://github.com/edumeet/edumeet.git
synced 2026-01-23 02:34:58 +00:00
Rename to edumeet, ref #492
This commit is contained in:
parent
5a4bd1f4f5
commit
08c54ee713
25 changed files with 62 additions and 61 deletions
14
HAproxy.md
14
HAproxy.md
|
|
@ -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
|
||||
```
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
30
README.md
30
README.md
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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": "./",
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import debug from 'debug';
|
||||
|
||||
const APP_NAME = 'multiparty-meeting';
|
||||
const APP_NAME = 'edumeet';
|
||||
|
||||
export default class Logger
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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}>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ body
|
|||
margin: 0;
|
||||
}
|
||||
|
||||
#multiparty-meeting
|
||||
#edumeet
|
||||
{
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
@ -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}"
|
||||
|
|
|
|||
4
prom.md
4
prom.md
|
|
@ -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`).
|
||||
|
|
|
|||
|
|
@ -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 :
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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'>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
const debug = require('debug');
|
||||
|
||||
const APP_NAME = 'multiparty-meeting-server';
|
||||
const APP_NAME = 'edumeet-server';
|
||||
|
||||
class Logger
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue