Skip to content

Install27

Brent Baccala edited this page Aug 13, 2024 · 2 revisions

How to install this package: Version 2.7

  1. Installation requirements

    Ubuntu 20 is the only supported operating system.

    One possible configuration uses an Amazon EC2 instance. Start an c5.2xlarge instance based on standard Ubuntu 20, 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).

    If you use Amazon EC2, you may want to enable hibernation, to suspend the server while it's not in use and reduce your bill. If you do so, hibernation must be selected when the instance is created.

    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. Setup the system locale (recommended by the BigBlueButton installation instructions)

    sudo apt-get install -y language-pack-en
    sudo update-locale LANG=en_US.UTF-8
    echo LANG=en_US.UTF-8 | sudo tee /etc/default/locale
    

    ...and reboot.

  3. 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.

  4. Install Big Blue Button

    Download and run bbb-install, something like this:

    wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v2.7.x-release/bbb-install.sh | sudo bash -s -- -w -v focal-270 -r www.freesoft.org -s YOUR-SITE-NAME -e YOUR-EMAIL

    This is exactly the installation procedure used for BigBlueButton, except for the -r www.freesoft.org option, which specifies use of the freesoft.org repository, containing a patched bbb-html5 package as well as the other packages described below.

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

  5. 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.

      For example, bbb-mklogin -e "never" -m "Brent Baccala" will print a login link. The -e option sets the link's expiration date, so pick a date in the future or "never", and the -m option makes you a moderator.

      Check to make sure that the hostname used in the URL is the same as your DNS name.

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

    2. An alternative is Greenlight, BigBlueButton's standard front end, 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.

  6. 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.

      All the students get different desktops, and the teachers can work on any desktop.

      At this time, UNIX only

    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.

      Everybody shares a single desktop, but the teacher can control who can work on it and who can only view it.

      Works with any VNC server

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

  7. You can set a default remote desktop URL in /etc/bigbluebutton/bbb-html5.yml, that will appear as a suggestion to the user when they attempt to share a desktop. For example, something like this is appropriate if you're using bbb-vnc-collaborate:

    public:
      remoteDesktop:
        startLocked: false
        defaultUrl: wss://collaborate.freesoft.org/vnc
    
  8. You can configure your remote desktops how you'd like. If you want a GNOME desktop configured to be familiar to Windows users (toolbar on the bottom; an Application menu on the lower left), run:

    sudo apt install freesoft-gnome-desktop

  9. Since the desktops will appear as a panel within a web page, I also suggest using a lower resolution desktop than the 1900x1200 default in the vnc package, perhaps 800x600:

    sudo sed -i -E '/^.geometry/s/[0-9]+x[0-9]+/800x600/' /etc/vnc.conf

  10. At this point, the remote desktops should be working. See the usage instructions for bbb-vnc-collaborate and/or bbb-wss-proxy. You also might want to look at instructions for sharing a local desktop.

  11. Drop me a line at [email protected].

Clone this wiki locally