Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
React Native Webrtc | 4,260 | 104 | 52 | 14 days ago | 82 | September 23, 2022 | 25 | mit | Java | |
The WebRTC module for React Native | ||||||||||
Filepizza | 3,944 | 1 | 6 months ago | 8 | October 22, 2019 | 50 | other | JavaScript | ||
:pizza: Peer-to-peer file transfers in your browser | ||||||||||
Twilio Video App React | 1,724 | 3 months ago | 33 | apache-2.0 | TypeScript | |||||
A collaboration application built with the twilio-video.js SDK and React.js | ||||||||||
Front End Canteen | 1,142 | a year ago | ||||||||
你的前端食堂,吃好每一顿饭🍥 | ||||||||||
Edumeet | 1,105 | 20 days ago | 4 | February 02, 2022 | 62 | mit | JavaScript | |||
edumeet - multiparty web-meetings using mediasoup and WebRTC | ||||||||||
React Qr Reader | 1,009 | 8 days ago | 130 | mit | TypeScript | |||||
React component for reading QR codes from webcam. | ||||||||||
Free4chat | 910 | 8 days ago | 5 | mit | Elixir | |||||
free4.chat is a real-time audio chat service. It is designed by the local first and privacy first principle, and is very easy to use. | ||||||||||
Chitchatter | 808 | 20 days ago | 25 | gpl-2.0 | TypeScript | |||||
A simple peer-to-peer chat app that is serverless, decentralized, and ephemeral | ||||||||||
Deershare | 718 | 5 months ago | 61 | mit | JavaScript | |||||
小鹿快传,一款在线P2P文件传输工具,使用WebSocket + WebRTC技术 | ||||||||||
Skyoffice | 699 | 3 months ago | 14 | mit | TypeScript | |||||
Immersive virtual office built with Phaser, React, Redux, PeerJS, and Colyseus. |
Official website: edumeet.org
Try it online at letsmeet.no
Feature | Description |
---|---|
A/V streaming | Share your microphone and camera + additional video stream |
Video layouts | Choose between Democratic and Filmstrip views. More in progress. |
Screen sharing | Share your screen to make some presentation right from your desktop |
File sharing | Share your files with the peers (torrent solution under the hood) |
Chat messages | Text conversation with other participants |
Local Recording | Record window/tab/screen content in browser supported formats with room audio and save them (disabled by default) |
Authentication | Supported types: OIDC, SAML, local db (text-based) |
"settings.language": null,
"settings.language": "Select language",
copy en.json to "two letter country code".json and translate to your languange
Thank you in advance!
Local Recording records the browser window video and audio. From the list of media formats that your browser supports you can select your preferred media format in the settings menu advanced video menu setting. MediaRecorder makes small chucks of recording and these recorded blob chunks temporary stored in IndexedDB, if IndexedDB implemented in your browser. Otherwise it stores blobs in memory in an array of blobs. Local Recording creates a local IndexedDB with the name of the starting timestamp (unix timestamp format) And a storage called chunks. All chunks read in an array and created a final blob that you can download. After blobs array concatenation as a big blob, this big blob saved as file, and finally we delete the temporary local IndexedDB.
Local recording is disabled by default. It could be enabled by setting localRecordingEnabled to true in (./app/public/config/config.js)
WARNING: Take care that local recording will increase cpu, memory and disk space consumption. Enough free disk space has to be provided!!! Keep in mind that Browsers don't allow to use all the disk free capacity! See more info about browsers storage limits:
See here for Docker or Ansible (based on Docker) installation procedures
# Unzip the file
unzip edumeet.zip
# Install the package
sudo apt install edumeet/edumeet.deb
# After package installation, don't forget to edit configuration files.
sudo nano /etc/educonf/client-config.js
sudo nano /etc/educonf/server-config.js
sudo nano /etc/educonf/server-config.yaml
# Finally, start the service by (it's enabled by default)
sudo systemctl start edumeet
Installation example is based on Debian/Ubuntu Linux operating system.
# Using Ubuntu
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
# Using Debian, as root
curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
apt-get install -y nodejs
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn
sudo apt update && sudo apt install -y curl git python python3-pip build-essential redis openssl libssl-dev pkg-config
git clone https://github.com/edumeet/edumeet.git
cd edumeet
(switch to the "develop" branch to get the latest features)
git checkout develop
eduMEET will start and run normally with just default settings. If there is no configuration files, it will automatically detect your host IP address, and listen on port 443 (https). In order to change default values (e.g. certificates), or activate features (e.g. authentication), use appropriate configuration file (see below for details).
⚠️ Note: There are separate configuration files for eduMEET application and eduMEET server:
eduMEET application (app) for: enabling login, change logo or background, adjust A/V parameters, etc...
Copy example template and edit values (see all available parameters in ./app/public/config/README.md)
cp app/public/config/config.example.js app/public/config/config.js
eduMEET server require ⚠️two configuration files: config.js, and config.{json, yaml or toml} (multiple format supported)
1. config.js for setting authentication methods and user roles.
Copy example template and edit values (see additional details in example file)
cp server/config/config.example.js server/config/config.js
2. config.{json, yaml or toml} for configuring: server port, server certificates, STUN/TURN configuration, monitoring, etc... (See below examples of different configuration styles).
👉 config.yaml example:
listeningPort: 443
tls:
key: /opt/edumeet/server/certs/privkey.pem
cert: /opt/edumeet/server/certs/cert.pem
👉 config.json example:
{
"listeningPort" : "443",
"tls" : {
"cert" : "/opt/edumeet/server/certs/cert.pem",
"key" : "/opt/edumeet/server/certs/privkey.pem"
}
}
👉 config.toml example:
listeningPort = "443"
[tls]
cert = "/opt/edumeet/server/certs/cert.pem"
key = "/opt/edumeet/server/certs/privkey.pem"
🔴 IMPORTANT: Use only one type for second configuration file (yaml
file format is highly recommended)
Copy only one example template file and edit values (see all available parameters in ./server/config/README.md)
cp server/config/config.example.yaml server/config/config.yaml
OR!!!
cp server/config/config.example.json server/config/config.json
OR!!!
cp server/config/config.example.toml server/config/config.toml
⚠️ NOTE: application and server components has to be rebuild if configuration parameter is changed (see build steps). Rebuild is not necessary for Docker or Debian (.deb) version, just restart container/service.
Note: It is highly recommended to use yarn package manager.
cd app
yarn && yarn build
cd ../server
yarn && yarn build
Run on server (as root or with sudo)
# Run the Node.js server application in a terminal:
cd server
sudo yarn start
Run locally (for development)
# run a live build from app folder:
app$ yarn start
# and run server in server folder:
server$ yarn start
Note: To avoid running server as root, redirects privileged ports with firewall rules:
#adjust ports to your needs
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
sudo iptables -t nat -A OUTPUT -p tcp --dport 443 -o lo -j REDIRECT --to-port 8443
sudo iptables -t nat -A PREROUTING -p tcp --dport 3443 -j REDIRECT --to-ports 8443
sudo iptables -t nat -A OUTPUT -p tcp --dport 3443 -o lo -j REDIRECT --to-port 8443
# make it persistent
sudo apt install iptables-persistent
sudo iptables-save > /etc/iptables/rules.v4
sudo ip6tables-save > /etc/iptables/rules.v6
https://yourDomainOrIPAdress:3443/roomname
Run as a service (systemd)
# Stop your locally running server. Copy systemd-service file `edumeet.service` to `/etc/systemd/system/` and check location path settings:
cp edumeet.service /etc/systemd/system/
# modify the install paths, if required
sudo edit /etc/systemd/system/edumeet.service
# Reload systemd configuration and start service:
sudo systemctl daemon-reload
sudo systemctl start edumeet
# If you want to start edumeet at boot time:
sudo systemctl enable edumeet
Port | protocol | description |
---|---|---|
443 | tcp | default https webserver and signaling - adjustable in server/config/config.yaml ) |
4443 | tcp | default yarn start port for developing with live browser reload, not needed in production environments - adjustable in app/package.json) |
40000-49999 | udp, tcp | media ports - adjustable in server/config/config.yaml
|
To deploy this as a load balanced cluster, have a look at HAproxy.
To integrate with an LMS (e.g. Moodle), have a look at LTI.
If you are part of the GEANT eduGAIN, you can request your turn api key at https://turn.geant.org/
You need an additional TURN-server for clients located behind restrictive firewalls!
Add your server and credentials to server/config/config.yaml
Type | |
---|---|
Open mailing list | [email protected] |
Subscribe | lists.edumeet.org/sympa/subscribe/community/ |
Open archive | lists.edumeet.org/sympa/arc/community/ |
This started as a fork of the work done by:
MIT License (see LICENSE.md
)
Contributions to this work were made on behalf of the GÉANT project, a project that has received funding from the European Union’s Horizon 2020 research and innovation programme under Grant Agreement No. 731122 (GN4-2). On behalf of GÉANT project, GÉANT Association is the sole owner of the copyright in all material which was developed by a member of the GÉANT project.
GÉANT Vereniging (Association) is registered with the Chamber of Commerce in Amsterdam with registration number 40535155 and operates in the UK as a branch of GÉANT Vereniging. Registered office: Hoekenrode 3, 1102BR Amsterdam, The Netherlands. UK branch address: City House, 126-130 Hills Road, Cambridge CB2 1PQ, UK.