🔧

bigbluebutton

4 notes  •  Tools & Utilities

Configure the Greenlight .env File for BigBlueButton

Greenlight is the default front-end web application for BigBlueButton. Its configuration is managed through an .env file in the Greenlight directory.

Key .env Settings

# BigBlueButton server URL and secret
BIGBLUEBUTTON_ENDPOINT=https://bbb.example.com/bigbluebutton/api/
BIGBLUEBUTTON_SECRET=your_bbb_secret_key

# Database (PostgreSQL)
DB_ADAPTER=postgresql
DB_HOST=db
DB_NAME=greenlight_production
DB_USERNAME=postgres
DB_PASSWORD=your_db_password

# Application secret key
SECRET_KEY_BASE=your_secret_key_base

# SMTP for email
SMTP_SERVER=smtp.example.com
SMTP_PORT=587
SMTP_DOMAIN=example.com
SMTP_USERNAME=your_smtp_user
SMTP_PASSWORD=your_smtp_password

Apply Changes

cd ~/greenlight
docker-compose down
docker-compose up -d

Verify

docker-compose logs -f app

Check that the app starts without errors and the Greenlight web interface loads at your BBB domain.

Notes

  • Get your BBB secret with: bbb-conf --secret on the BBB server.
  • Generate a random SECRET_KEY_BASE: openssl rand -hex 64.

Install BigBlueButton with Greenlight and SSL

BigBlueButton (BBB) is an open-source web conferencing system. The official install script handles the full installation including Nginx, SSL, and optionally Greenlight.

Prerequisites

  • Ubuntu 16.04 (Xenial) — required for BBB 2.2; Ubuntu 18.04 for BBB 2.3+
  • A domain name with DNS pointing to the server
  • Ports 80, 443, and 16384-32768/udp open in the firewall
  • At least 4 GB RAM, 4 CPU cores, 50 GB disk

Install with SSL Only

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- \
  -v xenial-22 \
  -s bbb.example.com \
  -e admin@example.com \
  -w

Install with SSL and Greenlight

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- \
  -v xenial-22 \
  -s bbb.example.com \
  -e admin@example.com \
  -g

Install with SSL, API Demos, and UFW Firewall

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- \
  -v xenial-22 \
  -s bbb.example.com \
  -e admin@example.com \
  -w -a

Verify

bbb-conf --check
bbb-conf --status

Notes

  • For AWS deployments, use AMI ami-08cec7c429219e339 (Ubuntu 16.04 BBB-ready).
  • For Contabo servers, run enable_ipv6 as root before installing.
  • Install BBB only after the domain DNS has propagated — certbot will fail otherwise.

Update and Customize Greenlight for BigBlueButton

To customize Greenlight (the BBB frontend), switch from the standard Docker image to a custom build, then apply your changes and commit them to a new image.

Switch to a Custom Greenlight Version

# Stop and back up the current Greenlight
cd ~/greenlight
docker-compose down
cd ..
mv greenlight/ greenlight-old/

# Clone the Greenlight source
git clone https://github.com/bigbluebutton/greenlight.git

# Restore config and database from old install
cp ~/greenlight-old/.env ~/greenlight/.env
cp -r ~/greenlight-old/db ~/greenlight/

Use a Custom Docker Image

cd ~/greenlight
nano docker-compose.yml

Replace the image line:

# Change from:
image: bigbluebutton/greenlight:release-v2

# To your custom image:
image: bigbluebutton/greenlight:release-v3

Commit Container Changes to a New Image

# Find the running container ID
docker ps

# Commit it to a new image
docker commit <container_id> my-greenlight:custom

# Tag it
docker tag my-greenlight:custom my-greenlight:latest
docker images

Restart Greenlight

docker-compose down
docker-compose up -d

Notes

  • Always back up .env and db/ before re-cloning Greenlight.
  • For production customizations, build a proper Docker image from the Greenlight source rather than using docker commit.

Copy BigBlueButton Recordings to Another Server

When migrating a BigBlueButton server, recordings must be copied separately from the application files. Use rsync to transfer raw, published, and unpublished recordings.

Prerequisites

  • SSH access to both source and destination servers
  • rsync installed on both servers
  • Sufficient disk space on the destination

Steps

# Copy raw recordings (unprocessed)
rsync -avz -P /var/bigbluebutton/recording/raw/ \
  user@DESTINATION_IP:/var/bigbluebutton/recording/raw/

# Copy published recordings (viewable by users)
rsync -avz -P /var/bigbluebutton/published/ \
  user@DESTINATION_IP:/var/bigbluebutton/published/

# Copy unpublished recordings
rsync -avz -P /var/bigbluebutton/unpublished/ \
  user@DESTINATION_IP:/var/bigbluebutton/unpublished/

Verify

On the destination server, check that recordings appear:

bbb-conf --check
ls /var/bigbluebutton/published/presentation/

Notes

  • Use -P (progress + partial) to resume interrupted transfers.
  • After copying, trigger reprocessing if needed: bbb-record --rebuild <recording-id>.
  • Ensure the destination BBB server URL and secret are correct before testing playback.