Main features
- Camera, microphone and an extra video stream per participant
- Screen sharing
- Chat with private messages that are not stored on the server
- Peer-to-peer file sharing between participants
- Lobby for locked rooms and breakout rooms
- Drawing board
- Local recording in the browser (off by default)
- Optional live transcription using the browser's speech recognition
- Login with OIDC, SAML or a local database
- Webinar mode with a view-only audience spread across media nodes
- Multi-tenant management server with per-room settings
What eduMEET does
eduMEET is a browser meeting service built for the research and education community. The code is copyrighted by the GÉANT Association, and its development was funded through the GÉANT project under EU Horizon 2020, with the webinar work funded by NLnet’s NGI0 Core Fund.
In a meeting, participants can send their camera, microphone and an extra video stream, share their screen, chat (private messages are not stored on the server), share files peer-to-peer and draw on a shared board. Locked rooms send newcomers to a lobby, and moderators can open breakout rooms. Recording happens locally in the browser and is off by default. Live transcription uses the browser’s own speech recognition, which in Chrome or Edge sends audio to Google or Microsoft. A webinar mode keeps the audience view-only, promotes presenters when needed and spreads viewers across several media nodes.
Architecture and federation
eduMEET is split into a React client, a room server and one or more mediasoup media nodes, with an optional management server for tenants, login and room settings. The edumeet/edumeet repository tracked here holds the Docker deployment and the project documentation; the components live in their own repositories. One room server can route the participants of a meeting across several media nodes according to location and load, including media nodes operated by other organizations, so institutions can share capacity. Login works with OIDC, SAML or a local database, which fits university identity federations.
Security and encryption
Without end-to-end encryption, media nodes terminate SRTP and handle the decoded media, as with any SFU. The repository documents an optional end-to-end encryption design, off by default and enabled per tenant or per room: keys are agreed with Messaging Layer Security (RFC 9420) and frames are encrypted with AES-GCM-256 using SFrame-style headers. The project is candid about the limits. The room server is still trusted for membership, the design has not been independently audited, and browsers without the WebRTC Encoded Transform API cannot join rooms that require it. The changelog lists end-to-end encryption, along with server recording, streaming and transcription through external bot providers, under the upcoming release.
Self-hosting eduMEET
Deployment uses Docker Compose with a run-first.sh script. You need Docker, a public IP address, two DNS names (one for the service, one for TURN) and TCP ports 80 and 443; UDP and TCP ports 40000 to 40249 are recommended for better connectivity. The default Compose file starts Nginx, certbot, coturn, the client, the room server and a media node. The optional management server needs PostgreSQL or MySQL. Releases are Docker images with rolling stable tags.
Hosted version
There is no hosted service from the project. The README links a public demo instance.
Limitations
eduMEET runs in the browser only, with no native mobile apps. Its end-to-end encryption is new, opt-in and unaudited, and server-side recording and streaming depend on an external bot provider. The community is smaller than Jitsi’s, and the documentation is spread across several component repositories.
Who it suits
eduMEET suits universities and research networks that want a meeting service tied into SAML or OIDC federations, with the option of sharing media capacity between institutions. For a classroom tool with slides and polls, see BigBlueButton; for a lighter lecture server, see Galene.
License details
MIT. Copyright GÉANT Association. The client, room server, media node and management server are separate repositories, also MIT.
Technical details
Self-hosting needs
- Docker
- coturn
- Nginx
Built with
- TypeScript
- React
- Node.js
- mediasoup
GitHub topics
- chat
- material-design
- material-ui
- mediasoup
- meeting
- react
- redux
- screensharing
- sfu
- webrtc
Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.