Ns8-bigbluebutton 1.0.0

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.

1 Like

Version 1.0.2 is released!

  • Fixed incomplete voice support and added French voice support for conferences.
  • Fixed an issue preventing emails from being sent without authentication through the cluster’s SMTP server.

I’d be really pleased to get some testing and feedback. The module is now up and fully workable.

If you want to host your own conference system, BigBlueButton is yours!

2 Likes

i had asked a while back, if it were possible to expose the turn server from the ejabberd module, so that other modules that require it could just reuse or make use of it, never got a reponse

I cannot run it inside the module because it takes the 443 of the traefik module :confused:

yes you mentioned this of the BBG app, i was just wondering something else in relation to existing ejabberd.

Overall, i think we have other documented in the community from running matrix, and nextcloud or even jitsi.