Skip to main content
Version: 2.7

Configuration Files

Overview

This document gives an overview of the BigBlueButton configuration files.

We recommend you make changes only to the override files (/etc/bigbluebutton) so that when you update to a newer version of BigBlueButton your configuration changes are not overwritten by the new packages.

Local overrides for configuration settings

Starting with BigBlueButton 2.3 many of the configuration files have local overrides so the administrator can specify the local equivalents. We recommend you make changes only to the override files (/etc/bigbluebutton) so that when you update to a newer version of BigBlueButton your configuration changes are not overwritten by the new packages.

PackageOverrideNotes
/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties/etc/bigbluebutton/bbb-web.propertiesMinimum containing general configuration (securitySalt and serverURL)
/usr/share/bbb-apps-akka/conf/application.conf/etc/bigbluebutton/bbb-apps-akka.conf
/usr/share/bbb-fsesl-akka/conf/application.conf/etc/bigbluebutton/bbb-fsesl-akka.conf
/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml/etc/bigbluebutton/bbb-html5.ymlArrays are merged by replacement (as of 2.4-rc-5)
/usr/share/meteor/bundle/bbb-html5-with-roles.conf/etc/bigbluebutton/bbb-html5-with-roles.conf
/usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml/etc/bigbluebutton/turn-stun-servers.xmlReplaces the original file
/usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml/etc/bigbluebutton/bbb-webrtc-sfu/production.ymlArrays are merged by replacement
/usr/local/bigbluebutton/bbb-pads/config/settings.json/etc/bigbluebutton/bbb-pads.jsonArrays are merged by replacement
/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml/etc/bigbluebutton/recording/recording.yml
/usr/local/bigbluebutton/core/scripts/presentation.yml/etc/bigbluebutton/recording/presentation.yml
/etc/cron.daily/bigbluebutton/etc/default/bigbluebutton-cron-configOnly variables allowed in the override


For bbb-web.properties, the settings are name/value pair. For example, the following bbb-web.properties overrides the settings for bigbluebutton.web.serverURL and securitySalt (shared secret).

#
# Use this file to override default entries in /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties
#

bigbluebutton.web.serverURL=https://droplet-7162.meetbbb.com
securitySalt=UsanRxRk938d02cTWfAqSM9Cvin7bnzsREfqFfzpf2U

This override will ensure that bbb-web uses the above values regardless of changes the packaging scripts make to the upgrade.

For bbb-apps-akka and bbb-fsesl-akka, the settings file are formatted as shown below. For example, the file bbb-apps-akka.conf overrides the settings for /usr/share/bbb-apps-akka/conf/application.conf.

// include default config from upstream
include "/usr/share/bbb-apps-akka/conf/application.conf"

// you can customize everything here. API endpoint and secret have to be changed
// This file will not be overridden by packages

services {
bbbWebAPI="https://bbb.example.com/bigbluebutton/api"
sharedSecret="UsanRxRk938d02cTWfAqSM9Cvin7bnzsREfqFfzpf2U"
}

HTML5 Client

Configuration files

For bbb-html5.yml the settings file are YAML formatted. Any setting in this file overrides the corresponding setting in /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml. For example, the following bbb-html5.yml overrides the values for public.kurento.screenshare.constraints.audio to true.

public:
kurento:
screenshare:
constraints:
audio: true

Log files

Log monitoring for server logs (bbb-html5)

Since BigBlueButton 2.3 we run multiple nodejs processes in production mode, so tailing logs is slightly different from journalctl -f bbb-html5.service which was used in 2.2. Rather than listing all the services ( bbb-html5-backend@1.service bbb-html5-backend@2.service bbb-html5-frontend@1.service bbb-html5-frontend@2.service bbb-html5-frontend@3.service bbb-html5-frontend@4.service ... ) you can use the wildcard operator *. Notice the different process id for each bbb-html5-* service. Also notice systemd_start_frontend.sh signifying a log from a frontend process vs systemd_start.sh - backend process.

# journalctl -f -u bbb-html5-*
-- Logs begin at Mon 2021-03-15 12:13:05 UTC. --
Mar 15 15:14:18 demo2 systemd_start_frontend.sh[3881]: debug: Redis: SendCursorPositionEvtMsg completed sync
Mar 15 15:14:18 demo2 systemd_start_frontend.sh[3891]: debug: Redis: SendCursorPositionEvtMsg completed sync
Mar 15 15:14:18 demo2 systemd_start_frontend.sh[3888]: debug: Publishing Polls {"meetingId":"37d0fb4f4617b3c97948d717435f9e1cf6998477-1615821214341","userId":"w_el87iar97iwa"}
...
Mar 15 15:30:18 demo2 systemd_start.sh[3869]: debug: Redis: UpdateBreakoutUsersEvtMsg completed sync

Logs sent directly from the client

To assist with monitoring and debugging, the HTML5 client can send its logs to the BigBlueButton server via the logger function. Here's an example of its use:

The client logger accepts three targets for the logs: console, server and external.

NameDefault ValueAccepted ValuesDescription
target"console""console", "external", "server"Where the logs will be sent to.
level"info""debug", "info", "warn", "error"The lowest log level that will be sent. Any log level higher than this will also be sent to the target.
url--The end point where logs will be sent to when the target is set to "external".
method-"POST", "PUT"HTTP method being used when using the target "external".

The default values are:

clientLog:
server: { enabled: true, level: info }
console: { enabled: true, level: debug }
external:
{
enabled: false,
level: info,
url: https://LOG_HOST/html5Log,
method: POST,
throttleInterval: 400,
flushOnClose: true,
}

Notice that the external option is disabled by default - you can enable it on your own server after a few configuration changes.

When enabling the external logging output, the BigBlueButton client will POST the log events to the URL endpoint provided by url. To create an associated endpoint on the BigBlueButton server for the POST request, create a file /etc/bigbluebutton/nginx/html5-client-log.nginx with the following contents:

location /html5Log {
access_log /var/log/nginx/html5-client.log postdata;
echo_read_request_body;
}

Then create a file in /etc/nginx/conf.d/html5-client-log.conf with the following contents:

log_format postdata '$remote_addr [$time_iso8601] $request_body';

Next, install the full version of nginx.

$ sudo apt-get install nginx-full

You may also need to create the external output file and give it the appropriate permissions and ownership:

$ sudo touch /var/log/nginx/html5-client.log
$ sudo chown www-data:adm /var/log/nginx/html5-client.log
$ sudo chmod 640 /var/log/nginx/html5-client.log

Restart BigBlueButton with sudo bbb-conf --restart and launch the BigBlueButton HTML5 client in a new session. You should see the logs appearing in /var/log/nginx/html5-client.log as follows

99.239.102.0 [2018-09-09T14:59:10+00:00] [{\x22name: .. }]

You can follow the logs on the server with the command

$ tail -f /var/log/nginx/html5-client.log | sed -u -e 's/\\x22/"/g' -e 's/\\x5C/\\/g'

Here's a sample log entry

      "requesterUserId":"w_klfavdlkumj8",
"fullname":"Ios",
"confname":"Demo Meeting",
"externUserID":"w_klfavdlkumj8"
},
"url":"https://demo.bigbluebutton.org/html5client/users",
"userAgent":"Mozilla/5.0 (iPad; CPU OS 11_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1",
"count":1
}

nginx

Configuration files

Located in /etc/nginx/sites-enabled/bigbluebutton

This configures nginx to use /var/www/bigbluebutton-default/assets as the default site. (src)

Log files

LogDescription
/var/log/nginx/bigbluebutton.access.logWeb log of access to BigBlueButton HTML pages.
/var/log/nginx/error.logWeb log of errors generated by nginx based on browser requests.

bbb-web

Configuration files

 /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties
/etc/bigbluebutton/bbb-web.properties

This is one of the main configuration files for BigBlueButton applications.

https://github.com/bigbluebutton/bigbluebutton/blob/main/bigbluebutton-web/grails-app/conf/bigbluebutton.properties

Log files

Located in /var/log/bigbluebutton/bbb-web

LogDescription
catalina.yyyy-mm-dd.logGeneral log information from startup.
localhost.yyyy-mm-dd.logGeneral log information from startup of applications.
/var/log/syslogAlso contains output from bbb-web.
/var/log/bigbluebuttonContains BigBlueButton Web and Recording processing logs.

FreeSWITCH

Configuration Files

/opt/freeswitch/conf/vars.xml

Setup host and external IP values.

/opt/freeswitch/conf/autoload_configs/conference.conf.xml

Setup voice conference properties.

/opt/freeswitch/conf/dialplan/default
/opt/freeswitch/conf/dialplan/public

Recording

Log files

For each workflow and meeting we have a different logfile, they come in the form: <workflow>-<meetingId>.log, as specified below:

LogDescription
/var/log/bigbluebutton/archive-<meetingId>.logAll logs for archive phase
/var/log/bigbluebutton/presentation/process-<meetingId>.logAll logs for process phase
/var/log/bigbluebutton/presentation/publish-<meetingId>.logAll logs for publish phase