Reference:

https://docs.bigbluebutton.org/2.3/install.html

Before start installing Bigbluebutton, we need to check

1) Minimum server requirements 2) Pre-installation checks

Install BigBlueButton:

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s – -w -a -v xenial-22 -s example.exphosted.com -e thrikalsamys@peopleone.co

The above command install latest bigbluebutton version 2.3

you can check the status of your server with bbb-conf –check. When you run this command, you should see output similar to the following

sudo bbb-conf –check

You can also use sudo bbb-conf –status to check that all the BigBlueButton processes have started and are running

sudo bbb-conf –status

You can integrate BigBlueButton with one of the 3rd party integrations by providing the integration the server’s address and shared secret. You can use bbb-conf to display this information using bbb-conf –secret

sudo bbb-conf –secret

  URL: http://bbb.example.com/bigbluebutton/
  Secret: 330a8b08c3b4c61533e1d0c334

Restart your server

You can restart and check your BigBlueButton server at any time using the commands

sudo bbb-conf –restart

sudo bbb-conf –check

Assign a hostname

For any production BigBlueButton server, you need to assign it a hostname.

sudo bbb-conf –setip HOSTNAME

For example, if your hostname was bigbluebutton.example.com, the command would be

sudo bbb-conf –setip bigbluebutton.example.com

At this point, you have BigBlueButton server listening to an IP address (or hostname) and responding to API requests. However, if you tried to login from the server’s default page with a browser, you would get an error

Configure SSL

Depending on your certificate authority (CA), you should now have 2 or more files, as follows:

Certificate Private key

Intermediate certificate (there may be more than one, or could be none) The next step is to install the files on the server.

Create the directory /etc/nginx/ssl:

$ sudo mkdir /etc/nginx/ssl

And now create the private key file for nginx to use (replace the hostname in the filename with your own). In addition, fix the permissions so that only root can read the private key:

cat >/etc/nginx/ssl/bigbluebutton.example.com.key «'END' Paste the contents of your key file here END

chmod 0600 /etc/nginx/ssl/bigbluebutton.example.com.key

And the certificate file. Note that nginx needs your server certificate and the list of intermediate certificates together in one file (replace the hostname in the filename with your own):

cat >/etc/nginx/ssl/bigbluebutton.example.com.crt «'END' Paste (in order) the contents of the following files: 1. The signed certificate from the CA 2. In order, each intermediate certificate provided by the CA (but do not include the root). END

In addition, we’ll generate a set of 4096-bit diffie-hellman parameters to improve security for some types of ciphers. This step can take several minutes to complete, particularly if run on a virtual machine.

sudo openssl dhparam -out /etc/nginx/ssl/dhp-4096.pem 4096

Now we can edit the nginx configuration to use SSL. Edit the file /etc/nginx/sites-available/bigbluebutton to add the marked lines. Ensure that you’re using the correct filenames to match the certificate and key files you created above.

server {
  server_name bigbluebutton.example.com;
  listen 80;
  listen [::]:80;
  listen 443 ssl;
  listen [::]:443 ssl;
  ssl_certificate /etc/nginx/ssl/bigbluebutton.example.com.crt;
  ssl_certificate_key /etc/nginx/ssl/bigbluebutton.example.com.key;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 10m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256";
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/ssl/dhp-4096.pem;

For reference, note that the SSL settings used above are based on those proposed in https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/ and provide support for all modern browsers (including IE8, but not IE6, on Windows XP). Please note that recommended SSL settings are subject to change as new vulnerabilities are found.

Configure BigBlueButton to load session via HTTPS

With nginx now configured to use SSL, the next step is to configure FreeSWITCH to use HTTPS for initiating an audio connection.

Edit /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties and update the property bigbluebutton.web.serverURL to use HTTPS:

#—————————————————- # This URL is where the BBB client is accessible. When a user successfully # enters a name and password, she is redirected here to load the client.

bigbluebutton.web.serverURL=https://bigbluebutton.example.com

Next, edit the file /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties and update the property jnlpUrl and jnlpFile to HTTPS:

streamBaseUrl=rtmp://bigbluebutton.example.com/screenshare
jnlpUrl=https://bigbluebutton.example.com/screenshare
jnlpFile=https://bigbluebutton.example.com/screenshare/screenshare.jnlp

You must also update the file /var/www/bigbluebutton/client/conf/config.xml to tell the BigBlueButton client to load components via HTTPS.

You can do the update with a single command

$ sudo sed -e 's|http:|https:|g' -i /var/www/bigbluebutton/client/conf/config.xml

If you would ever need to revert this change, you can run the reverse command:

$ sudo sed -e 's|https:|http:|g' -i /var/www/bigbluebutton/client/conf/config.xml

Open /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml editing and change:

kurento:
  wsUrl: ws://bbb.example.com/bbb-webrtc-sfu

to

kurento:
  wsUrl: wss://bbb.example.com/bbb-webrtc-sfu

Also change:

note:
  enabled: true
  url: http://bbb.example.com/pad

to

note:
  enabled: true
  url: https://bbb.example.com/pad

Next, modify the creation of recordings so they are served via HTTPS.

Edit /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml and change the value for playback_protocol as

follows:

playback_protocol: https

/var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp and change the value of BigBlueButtonURL use HTTPS.

// This is the URL for the BigBlueButton server
String BigBlueButtonURL = "https://bigbluebutton.example.com/bigbluebutton/";

Finally, to apply all of the configuration changes made, you must restart all components of BigBlueButton:

sudo bbb-conf –restart

Uninstall Bigbluebutton

If anytime you need to uninstall bigbluebutton service from the ubuntu server. You can purge and remove each bbb packages one by one

dpkg -l | grep bbb

apt-get purge bbb-apps
apt-get purge bbb-apps-akka
apt-get purge bbb-apps-screenshare
apt-get purge bbb-apps-sip
apt-get purge bbb-apps-video
apt-get purge bbb-apps-video-broadcast
apt-get purge bbb-client
apt-get purge bbb-config
apt-get purge bbb-demo
apt-get purge bbb-etherpad
apt-get purge bbb-freeswitch-core
apt-get purge bbb-freeswitch-sounds
apt-get purge bbb-fsesl-akka
apt-get purge bbb-html
apt-get purge bbb-mkclean
apt-get purge bbb-playback-presentation
apt-get purge bbb-record-core
apt-get purge bbb-red5
apt-get purge bbb-transcode-akka
apt-get purge bbb-web 
apt-get purge bbb-webrtc-sfu