Tin tức, hướng dẫn và chia sẻ về công nghệ

Hướng dẫn cài đặt và sử dụng cơ bản BigBlueButton

https://avatars3.githubusercontent.com/u/230228?s=400&v=4

BigBlueButton thường được viết tắt là BBB một mã nguồn mở chạy trên web phục vụ cho hội nghị trực tuyến, dạy học online (hay lớp học online) và các dịch vụ trực tuyến khác.

BBB hỗ trợ chia sẽ audio, video, presentation, chat, và thậm chí là màn hình desktop thời gian thực, giúp việc thao tác được hỗ trợ đầy đủ nhất có thể.
xây dựng lớp học online

Giao diện sử dụng của users

Hướng dẫn dưới đây sẽ giúp các bạn có thể dựng một server BBB

MỤC LỤC

  1. Yêu cầu cài đặt
  2. Chuẩn bị OS
  3. Cài đặt BBB
  4. Cài đặt Greenlight themes
    1. Cài đặt Docker
    2. Cài đặt Greenlight 2.0
    3. Update Greenlight
  5. Đăng kí tài khoản và truy cập
  6. Tắt tính năng đăng ký
  7. Kết luận

1. Yêu cầu cài đặt

  • BBB cài đặt và hoạt động ổn định trên Ubuntu16.04
  • Cấu hình tối thiểu để cài đặt BBB là RAM4GB 4Core và 40GB disk
  • Yêu cầu có kết nối Internet để cài đặt
  • Yêu cầu đăng nhập tài khoản có quyền root để thao tác
  • Đương nhiên Server cài đặt BBB cần yêu cầu Server trắng (Chưa cài đặt dịch vụ gì)

2. Chuẩn bị OS

Tạm thời disable firewalld

sudo apt-get install ufw -y
sudo ufw disable

Đổi timezone về Asia/Ho_Chi_Minh

dpkg-reconfigure tzdata

Bổ sung env locale

echo "export LC_ALL=C" >>  ~/.bashrc

Cài đặt CMDlog

curl -Lso- https://raw.githubusercontent.com/nhanhoadocs/ghichep-cmdlog/master/cmdlog.sh | bash

Cài đặt Chronyd

apt install chrony -y
service chrony restart
hwclock --systohc

Update

sudo apt-get update -y 
sudo apt-get upgrade -y 
sudo apt-get dist-upgrade -y
sudo apt-get autoremove 

3. Cài đặt BBB

Tài liệu cài đặt BBB đã được hướng dẫn chi tiết tại trang chủ https://docs.bigbluebutton.org/2.2/install.html. Bạn có thể cài đặt step by step hoặc cài đặt bằng script. Trong hướng dẫn dưới Cloud365 sẽ hướng dẫn các bạn cài đặt bằng cách đơn giản nhất đó là cài đặt bằng Scripts

Cài đặt yq

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6657DBE0CC86BB64
sudo apt update

Cài đặt và start session byobu

sudo apt install -y byobu
byobu

Cài đặt BBB bằng scripts

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-220 -a

Quá trình cài đặt hoàn tất

Cài đặt hoàn tất

4. Cài đặt Greenlight themes

4.1. Cài đặt Docker

Update

sudo apt-get update -y

Cho phép apt sử dụng https

 sudo apt-get -y install \
     apt-transport-https \
     ca-certificates \
     curl \
     gnupg-agent \
     software-properties-common 

Thêm Docker’s official GPG key:

 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 

Kiểm tra

 sudo apt-key fingerprint 0EBFCD88

Kết quả

root@ubuntu:~# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 
OK 

root@ubuntu:~# sudo apt-key fingerprint 0EBFCD88 
pub   4096R/0EBFCD88 2017-02-22       
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88 uid                  Docker Release (CE deb) <docker@docker.com> 
sub   4096R/F273FCD8 2017-02-22 

Add repo

 sudo add-apt-repository \
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) \
    stable" 

Update

 sudo apt-get update -y 

Cài đặt Docker

 sudo apt-get -y install docker-ce docker-ce-cli containerd.io  

Kiểm tra

docker -v

Kết quả

root@ubuntu:~# docker -v 
Docker version 19.03.8, build afacb8b7f0 

Cài đặt docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose 

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose 

Kiểm tra

 docker-compose --version 

Kết quả

root@ubuntu:~# docker-compose --version 
docker-compose version 1.25.4, build 8d51620a 

4.2. Cài đặt Greenlight 2.0

Tạo thư mục để chứa các config

mkdir ~/greenlight && cd ~/greenlight 

Pull images bigbluebutton/greenlight:v2

docker pull bigbluebutton/greenlight:v2 
docker pull postgres:9.5 

Greenlight sẽ đọc cấu hình .env trong folder ~/greenlight. Để tạo ra file .env mặc định chúng ta thực hiện

docker run --rm bigbluebutton/greenlight:v2 cat ./sample.env > .env 

Generating cấu hình secretkey cho Greenlight

docker run --rm bigbluebutton/greenlight:v2 bundle exec rake secret 

Kết quả

root@ubuntu:~/greenlight# docker run --rm bigbluebutton/greenlight:v2 bundle exec rake secret 

7966bac6381007662a9281062d9d0510a01bbb54a3746cbdce2cd5c61fda58acc206163ac4a52c0455d4e1182abeea3c3dc66d4ce4b741c9d2695e60c413c04f 

Cấu hình secret key vừa gen phía trên vào SECRET_KEY_BASE của file .env

Cấu hình xác thực giữa BBB và Greenlight

 sudo bbb-conf --secret 

Kết quả

root@ubuntu:~/greenlight# sudo bbb-conf --secret
   URL: http://10.10.30.155/bigbluebutton/
   Secret: 3e2ac3b7d5b85d3582afcac40b63c18d 

Cấu hình file /root/greenlight/.env 2 tham số trên BIGBLUEBUTTON_ENDPOINTBIGBLUEBUTTON_SECRET

Kiểm tra config

docker run --rm --env-file .env bigbluebutton/greenlight:v2 bundle exec rake conf:check 

Kết quả kết nối thành công

root@ubuntu:~/greenlight# docker run --rm --env-file .env bigbluebutton/greenlight:v2 bundle exec rake conf:check
 
Checking environment: Passed 
Checking Connection: Passed 
Checking Secret: Passed 

Greenlight sẽ hoạt động trên /b để tránh xung đột các thành phần khác. Gen file cấu hình của NGINX

docker run --rm bigbluebutton/greenlight:v2 cat ./greenlight.nginx | sudo tee /etc/bigbluebutton/nginx/greenlight.nginx 

Kiểm tra

cat /etc/bigbluebutton/nginx/greenlight.nginx 

Restart NGINX

 sudo systemctl restart nginx 

Cấu hình để nginx mặc định sử dụng Greenlight. Bổ sung cuối file config /etc/nginx/sites-available/bigbluebutton ngay trước dấu } cuối cùng

vi /etc/nginx/sites-available/bigbluebutton 

Restart NGINX

sudo systemctl restart nginx 

Khởi tạo file docker-compose

docker run --rm bigbluebutton/greenlight:v2 cat ./docker-compose.yml > docker-compose.yml 

Random gen password cho PostgreSQL

export pass=$(openssl rand -hex 8); sed -i 's/POSTGRES_PASSWORD=password/POSTGRES_PASSWORD='$pass'/g' docker-compose.yml;sed -i 's/DB_PASSWORD=password/DB_PASSWORD='$pass'/g' .env 

Start GreenLight

docker-compose up -d 

Lưu ý:

  • Database lưu tại ~/greenlight/db
  • Thư mục log ~/greenlight/log

Cấu hình để docker tự động start mỗi lần restart máy. Chỉnh config trong docker-compose.yml ở mỗi services

 restart: always  

4.3. Update Greenlight

cd ~/greenlight
docker pull bigbluebutton/greenlight:v2
docker-compose down 
docker-compose up -d 

5. Đăng kí và truy cập

Giao diện đăng nhập ban đầu

Chọn Sign up để đăng ký tài khoản mới

Đăng ký tài khoản
Start cuộc họp
Giao diện vào room họp
Giao diện tương tác

Lưu ý: BBB chỉ hỗ trợ Micro, Webcam, và chia sẻ màn hình khi có SSL/HTTPS.

6. Tắt tính năng đăng ký

Nếu bạn dùng hệ thống bigbluebutton để sử dụng trong nội bộ. Bạn nên tắt tính năng đăng ký tài khoản. Tạo một tài khoản admin để quản trị. Tự tạo tài khoản cho các người dùng trong công ty, doanh nghiệp và cấp cho họ. Việc này sẽ hạn chế những người không nằm trong công ty, doanh nghiệp của bạn tạo tài khoản ở đây.

Để tạo tài khoản admin, dùng lệnh:

docker exec greenlight-v2 bundle exec rake user:create["name","email","password","admin"]

  • Nhập thông tin vào các trường name, email, password. Giữ nguyên trường admin.

Để tạo user thường, dùng lệnh:

docker exec greenlight-v2 bundle exec rake user:create["name","email","password","username"]

  • Nhập thông tin vào các trường name, email, password, username.

Disable đăng ký tài khoản mới trên giao diện bằng cách chỉnh sửa cấu hình file /root/greenlight/.env

sed -Ei "s|ALLOW_GREENLIGHT_ACCOUNTS=true|ALLOW_GREENLIGHT_ACCOUNTS=false|g" /root/greenlight/.env

cd /root/greenlight

docker-compose down

docker-compose up -d

Đăng nhập vào bằng tài khoản admin
Giao diện quản lý các user khác

7. Kết luận

Việc xây dựng các ứng dụng cung cấp dịch vụ họp trực tuyến mang lại nhiều lợi ích cho các doanh nghiệp và tổ chức, tính ứng dụng vô cùng cao của nó sẽ mang lại sự trải nghiệm tuyệt vời. Còn chần chừ gì nữa hãy liên hệ với Cloud365 để có thể bắt đầu sử dụng dịch vụ ngay hôm nay.

6 Comments

  1. Thien

    Chào Cloud365.

    Mình đang cấu hình tới phần: ” Cấu hình file /root/greenlight/.env 2 tham số trên BIGBLUEBUTTON_ENDPOINT, BIGBLUEBUTTON_SECRET ”

    Thì không biết xử lý tiếp, mong Cloud365 giúp đỡ

    Cám ơn

    • Doãn Bá Dũng

      Chào bạn. Có vẻ như bạn đang gặp vấn đề ở bước cấu hình file /root/greenlight/.env
      Tại file này có 3 tham số bạn cần thay đổi là:
      SECRET_KEY_BASE
      BIGBLUEBUTTON_ENDPOINT
      BIGBLUEBUTTON_SECRET
      Bạn dùng lệnh: docker run –rm bigbluebutton/greenlight:v2 bundle exec rake secret
      Kết quả của lệnh này bạn thay vào thao số SECRET_KEY_BASE
      Và lệnh: sudo bbb-conf –secret
      Kết quả của lệnh này bạn thay vào tham số BIGBLUEBUTTON_ENDPOINT và BIGBLUEBUTTON_SECRET
      Sau đó bạn kiểm tra lại bằnglệnh:
      docker run –rm –env-file .env bigbluebutton/greenlight:v2 bundle exec rake conf:check

      Chúc bạn thành công!

      • Nguyen Quoc Tam

        Xin chào Cloud365!
        Mình có tạo 1 phòng họp và 10 user tham gia họp. Cho mình hỏi có cách nào 10 user này khi login vào BBB qua Greenlight thì thấy Phòng họp này luôn mà không cần phải nhập link hoặc id không? Mình sử dụng họp nội bộ thôi.
        Cảm ơn Cloud365!

  2. Nguyen Quoc Tam

    Xin chào Cloud365!
    Mình có tạo 1 phòng họp và 10 user tham gia họp. Cho mình hỏi có cách nào 10 user này khi login vào BBB qua Greenlight thì thấy Phòng họp này luôn mà không cần phải nhập link hoặc id không? Mình sử dụng họp nội bộ thôi.
    Cảm ơn Cloud365!

    • Đặng Xuân Cảnh

      Chào Tâm
      Hiện Greenlight chỉ quản lý link các phòng họp của chính user đó tạo ra.
      Việc hiển thị các link phòng đã tham gia, hoặc các phòng được invited thì Greenlight chưa hỗ trợ bạn nhé.
      Việc này có thể xử lý bằng cách phát triển riêng giao diện thay thế cho Greenlight và call API của BBB để xử lý.
      Thân mến

      • Nguyen Quoc Tam

        Cảm ơn cloud365!

Leave a Reply

Your email address will not be published. Required fields are marked *