Skip to content

Install

Brent Baccala edited this page Feb 15, 2021 · 27 revisions

How to install this package

  1. Installation requirements

    Ubuntu 18 is the only supported operating system.

    One possible configuration uses an Amazon EC2 instance. Start an c5.2xlarge instance based on standard Ubuntu 18, as much disk space as you'd like (the system can't quite fit into the 8 GB default, so I often use 10 GB for testing), a fairly open security group (more so than the default which only allows ssh).

    I also run this system successfully on a rack-mount server (12 cores, 96 GB RAM) at my home using a broadband Internet link.

    bigbluebutton.org recommends the following minimum requirements:

    • 16 GB of memory with swap enabled
    • 8 CPU cores, with high single-thread performance
    • 500 GB of free disk space (or more) for recordings, or 50GB if session recording is disabled on the server.
    • TCP ports 80 and 443 are accessible
    • UDP ports 16384 - 32768 are accessible
    • 250 Mbits/sec bandwidth (symmetrical) or more
    • TCP port 80 and 443 are not in use by another web application or reverse proxy
    • A hostname (such as bbb.example.com) for setup of a SSL certificate
    • Dedicated (bare metal) hardware
  2. Configure DNS

    All major web browsers limit WebRTC audio and video connections to SSL-enabled sites.

    While the Big Blue Button install script can automatically obtain an SSL certificate for you, it can not provision a DNS name and ensure that it points to your server.

    It is important to complete this step before running the install script, or the script will fail when it attempts to obtain an SSL certificate.

    See here for more information about this step.

  3. Install Big Blue Button

    Use a current copy of the bbb-install script. It's under active development, so I recommend against saving a copy locally. In particular, you'll need the version from my github repository instead of the standard version from bigbluebutton.org.

    Download and run bbb-install, something like this:

    wget -O- -q https://raw.githubusercontent.com/BrentBaccala/bbb-install/master/bbb-install.sh | sudo bash -s -- -v bionic-230-dev -r www.freesoft.org -w -s YOUR-SITE-NAME -e YOUR-EMAIL

    The install script has a help function that explains its options:

    wget -O- -q https://raw.githubusercontent.com/BrentBaccala/bbb-install/master/bbb-install.sh | sudo bash -s -- -h

  4. Configure authentication into Big Blue Button

    There are several ways to do this.

    1. I recommend the bbb-auth-jwt package, installed like this:

      sudo apt install bbb-auth-jwt

      Now only users with links generated by the bbb-mklogin script can use the system.

      Since the bbb-vnc-collaborate package gives UNIX accounts out to Big Blue Button users, this approach provides the greatest control.

    2. BigBlueButton's standard front end is Greenlight, which can be installed by adding a -g switch to the bbb-install.sh call above. Check the Greenlight documentation for more information about what to do next (like adding users). The default Greenlight configuration allows anybody to sign up as a user, so Greenlight probably isn't what you want if using bbb-vnc-collaborate.

      Incidentally, you can re-run the install script with altered switches (like -g) without harm.

  5. Install one or the other of the VNC services

    1. sudo apt install bbb-vnc-collaborate

      This is the flagship product, designed for classroom use where each student gets a UNIX account and remote desktop, and the teacher can view and interact with all of the student desktops.

    2. sudo apt install bbb-wss-proxy

      This is a simple proxy that allows connections to existing VNC servers without giving out UNIX user accounts.

    You can install both, since they listen on two different URLs.

  6. (The remaining steps assume that you're using bbb-vnc-collaborate)

  7. Only those packages that are strictly required to run remote desktops are now installed, but some other packages are useful:

    1. A terminal; sudo apt install gnome-terminal
    2. The DBUS server: sudo apt install dbus-x11 (required for gnome-terminal)
    3. A web browser; sudo apt install chromium-browser
    4. A whiteboard; sudo apt install xournal
    5. anything else you'd like to run on your desktops
  8. Put the following one-line config in /etc/skel/.fvwm/config (and create the directory /etc/skel/.fvwm):

    PipeRead 'python3 -m vnc_collaborate print fvwm_config'

    This isn't strictly required, but gives you a window manager configuration that I think is better than the default, at least for remote desktops.

  9. At this point, the remote desktops should be working.

    From a Big Blue Button session, "share remote desktop" and use the URL wss://HOST/vnc/{jwt}. Type the string {jwt} into the URL just like it appears - those five characters.

  10. Inside the teacher (and the student) desktops, you may want to run set-gnome-terminal-fonts to get more convenient control over the display fonts.

    You might want to run xrandr to set the display geometry. I like to use xrandr --fb 1280x768.

    You might want to set the default display geometry in /etc/vnc.conf.

  11. To obtain "teacher mode" access (a grid view of all student desktops), add the teacher account to the bigbluebutton group, using a command like this:

    sudo adduser BrentBaccala bigbluebutton

    Then hide and restore the teacher's desktop to obtain the grid view.

    1. Clicking on a student's desktop brings that desktop full screen and allows interaction with it.
    2. SHIFT-ALT-Q escapes back to the grid view. You can also get back to the grid view by hiding and restoring the teacher's remote desktop.
    3. The right button menu includes a screenshare option that can be used to project any desktop (teacher or student) to all of the other desktops.
    4. Students (viewers) can be selectively deafed using the right button pull down menu in the grid view. Clicking on a student's desktop undeafs that student, while escaping back to the grid re-deafs them (if they were deafed in the first place). This feature can be used to facilitate break-out or lab sessions, where the students are working independently and the teacher wishes to speak with them individually.
  12. Drop me a line at [email protected].

    In particular, I'm changing the design of the scripts fairly frequently right now (February 2021), so let me know so I can let you know when these instructions change.

Finally, here's a video walk-through of the installation process on an Amazon EC2 instance:

AWS installation video

Clone this wiki locally