BigBlueButton is sensitive to network, TLS, and media service tuning.
Correct production configuration is required for classroom reliability and recording stability.
| Attribute | Details |
|---|---|
| License | LGPL-3.0 |
| Technical Stack | JavaScript, TypeScript, Scala, Java, Ruby |
| Config Location | /etc/bigbluebutton/ |
| Management Command | bbb-conf |
# Set the server hostname or IP
sudo bbb-conf --setip bbb.example.com
# Verify configuration
sudo bbb-conf --check
| File | Purpose |
|---|---|
/etc/bigbluebutton/bbb-web.properties |
Web application settings |
/etc/bigbluebutton/bbb-webrtc-sfu/production.yml |
Media/SFU configuration |
/etc/bigbluebutton/nginx/sip.nginx_conf |
SIP/media proxy settings |
/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties |
Core BBB properties |
Edit /etc/bigbluebutton/bbb-webrtc-sfu/production.yml:
freeswitch:
sip_ip: 127.0.0.1
sip_port: 5080
mediasoup:
workers: 4 # Adjust based on CPU cores
webrtc:
listenIps:
- ip: 0.0.0.0
announcedIp: bbb.example.com # Your public IP/domain
ports:
tcp:
- 10000
udp:
- 10000-10100
# For Let's Encrypt
sudo certbot renew --dry-run
# Check certificate expiry
sudo openssl x509 -in /etc/letsencrypt/live/bbb.example.com/fullchain.pem -noout -dates
# Display API endpoint and secret
sudo bbb-conf --secret
# Output example:
# URL: https://bbb.example.com/bigbluebutton/api/
# Secret: abc123-def456-ghi789
# Recording directory
/var/bigbluebutton/recording
# Check recording status
sudo bbb-conf --check | grep -i record
# Check recording disk usage
du -sh /var/bigbluebutton/recording/*
# Clean up old recordings (use with caution)
sudo find /var/bigbluebutton/recording -type f -mtime +30 -delete
Create a cron job for automatic cleanup:
# /etc/cron.d/bbb-recording-cleanup
0 2 * * 0 root find /var/bigbluebutton/recording -type f -mtime +90 -delete
Edit /etc/bigbluebutton/bbb-web.properties:
# JVM heap size
JAVA_OPTS="-Xmx4g -Xms2g"
For large meetings, adjust in production.yml:
mediasoup:
workers: 8 # Increase for more CPU cores
maxNumParticipants: 25 # Max per room
Edit /etc/nginx/nginx.conf:
worker_processes auto;
worker_rlimit_nofile 65535;
events {
worker_connections 4096;
use epoll;
multi_accept on;
}
bbb-conf --check reports healthy status# Overall health check
sudo bbb-conf --check
# Service status
sudo bbb-conf --status
# Display configuration
sudo bbb-conf --secret
# Restart all services
sudo bbb-conf --restart
# View recent errors
sudo journalctl -u bbb-web -u freeswitch -u nginx --since "1 hour ago"
Any questions?
Feel free to contact us. Find all contact information on our contact page.