BigBlueButton 3.0 is now available for NethServer 8.
Web conferencing with audio, video, screen sharing, shared notes, polls and recording. Greenlight is the front end. Everything runs rootless under podman.
The module is a port of the community bigbluebutton/docker stack. Seventeen containers, a mediasoup SFU and a FreeSWITCH audio mixer.
Install
Add my repository first. See the manual page and use this URL:
https://forge.de-labrusse.fr/ns8/updates/
Then install from the Software Center, or from the shell:
add-module ghcr.io/stephdl/bigbluebutton:1.0.0 1
What you get
Conferencing. Audio, video, screen sharing, chat, shared notes, polls, breakout rooms. External videos can be played in sync.
Recording. On by default. Recordings are kept forever unless you set a retention. The web player is produced, not MP4.
Learning analytics dashboard. Per participant: connection time, talking time, chat messages, raised emojis, poll answers. A page in the module UI lists every report with its link. Access is by shared link, not by role.
Retention, both configurable. A slider from 1 to 180 days, or unlimited. A timer enforces it every 30 minutes. Recordings are deleted through bbb-record, so the database and the published tree stay consistent.
Spoken announcements in 8 languages. Selectable, and the “you are muted” and “you are alone” prompts can be turned off individually.
Welcome message and footer, shown in the chat when a meeting starts.
Backup and restore. Recordings, presentations, the Greenlight database and uploads, the raw recorder output. Clone is supported too.
UI in 8 languages, translated on Weblate.
Before you install
NethServer 8 core 3.20.1 or later.
One instance per node. The module asks for 9216 UDP ports. An SFU plus an audio mixer saturate a node long before its ports.
A public IP reachable over UDP. WebRTC media does not travel over the Traefik HTTPS port. The firewall rule on the node is created for you. Any router in front of it needs the range forwarded.
A certificate the browser trusts, matching the site name. WebRTC only grants microphone and camera access in a secure context. Let’s Encrypt, or an internal CA with a verifiable chain. Traefik’s default self-signed certificate carries the node name, not the site name, so it will not do.
No TURN server is included. Participants behind a firewall that blocks UDP cannot join unless you point the module at an external TURN server. STUN is empty by default on purpose: a public STUN server would receive the IP address of every participant.
Sizing. BigBlueButton asks for 8 cores and 16 GB. The stack holds about 3.2 GB at rest, before anybody joins. Memory runs out before CPU. On 8 vCPU and 7.5 GB expect roughly 25 to 40 participants with cameras, or 60 to 80 with audio only. That is reasoning from the measured idle footprint, not a load test.
Differences from upstream
coturn is dropped, its template hardcodes port 443 and collides with Traefik. haproxy is replaced by Traefik. SIP dial-in is disabled, so port 5060 never collides with ns8-nethvoice-proxy. Collabora, webhooks and the Prometheus exporter are not included.
First sign-in
Greenlight migrates its database but never seeds it, so the module creates a bootstrap administrator:
admin@nethserver.org / Nethesis,1234
That password ships with the module, so everyone knows it. Sign in, create your own account, give it the Administrator role, then change or delete the bootstrap one. The UI keeps warning until you do.
Links
Code and full documentation: GitHub - stephdl/ns8-bigbluebutton: BigBlueButton 3.0 module for NethServer 8 · GitHub
Bugs: Issues · stephdl/ns8-bigbluebutton · GitHub
Feedback welcome, especially on sizing under real load.