v2.4からv2.6へのアップデート
下記v2.4からv2.6.0.2へのアップデートメモです。
最新安定版のmainブランチ(サブモジュールオプション付)をダウンロード、bbb2602-dockerディレクトリへ移行
$ git clone [email protected]:bigbluebutton/docker.git -b main --recurse-submodules bbb2602-docker
$ cd bbb2602-docker
用意されたスクリプトから.envファイルを作成しますが、STUN/TURNサーバであるCOTURNを使用する場合にはTLS認証による証明書が必要となるため、予めLet’s Encryptによる証明書をCertbotコンテナ(スタンドアローンモード)により取得しておきます。
$ docker run -it --rm --name certbot -v "/etc/letsencrypt:/etc/letsencrypt" -p 80:80 certbot/certbot certonly --standalone -d www.example.com
用意されたスクリプトにより、Docker Composeファイルdocker-compose.ymlと環境変数設定ファイル.envが作成されます。
$ ./scripts/setup
Coturnのファイルパスには、上記Certbotコンテナから出力されたパスを指定して下さい。
COTURN_TLS_CERT_PATH=
/etc/letsencrypt/live/www.example.com/fullchain.pem
COTURN_TLS_KEY_PATH=/etc/letsencrypt/live/www.example.com/privkey.pem
その他必要に応じて.envファイルを編集した場合は、その都度新たにdocke-compose.ymlを以下のコマンドで再構築して下さい。
$ ./scripts/generate-compose
システムの入口としてリバースプロキシサーバを設置します。設置すると言っても既存の nginx にリバースプロキシの設定ファイルを追加して読み込ませるだけです。また、HTTPS接続とするため、既に取得したSSL/TLS証明書をこのファイル内でも利用します。リバースプロキシの設定ファイルは以下に記載されています。
docker/docs/existing-web-server.md at develop · bigbluebutton/docker · GitHub
以下のDockerHubのページを参照して、上記の設定ファイルを、テンプレートファイル nginx_config_temp/reverse-proxy.conf.template として保存します。このテンプレートファイルがコンテナ起動時の設定ファイルとして /etc/nginx/conf.d ディレクトリにコピーされます。
nginx_config_temp/reverse-proxy.conf.template
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
map $remote_addr $endpoint_addr {
"~:" [::1];
default 127.0.0.1;
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name ${NGINX_HOST};
ssl_certificate /etc/letsencrypt/live/${NGINX_HOST}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/${NGINX_HOST}/privkey.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
ssl_prefer_server_ciphers on;
# on the host machine, "$ sudo openssl dhparam -out ./letsencrypt/dhp-4096.pem 4096"
ssl_dhparam /etc/letsencrypt/dhp-4096.pem;
access_log /var/log/nginx/bigbluebutton.access.log;
error_log /var/log/nginx/bigbluebutton.error.log;
location / {
proxy_http_version 1.1;
proxy_pass http://$endpoint_addr:48087;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_cache_bypass $http_upgrade;
}
}
Note) ssl_ciphers, ssl_dhparam を追加。
Docker Composeファイルの nginx サービスの volumes: セクションには以下を追記します。
nginx:
......
......
volumes:
......
......
- /etc/letsencrypt:/etc/letsencrypt
- ./nginx_config_temp:/etc/nginx/templates
environment:
# added below for variables in *.conf.template
- NGINX_HOST=www.example.com
Network Configuration
Services as configured.
| Service | Network | IP address | Other Option |
|---|---|---|---|
| bbb-web | bbb-net | 10.7.7.2 | |
| bbb-pads | bbb-net | 10.7.7.18 | |
| html5-backend-{{$i}} | bbb-net | 10.7.7.{{add 100 $i}} | Port {{ add 4000 $i }} |
| html5-frontend-{{$i}} | bbb-net | 10.7.7.{{add 200 $i}} | Port {{ add 4100 $i }} |
| freeswitch | network_mode: host | ||
| nginx | network_mode: host | extra_hosts: - “host.docker.internal:10.7.7.1” - “core:10.7.7.2” - “etherpad:10.7.7.4” - “webrtc-sfu:10.7.7.10” - “html5:10.7.7.11” |
|
| etherpad | bbb-net | 10.7.7.4 | |
| redis | bbb-net | 10.7.7.5 | |
| mongodb | bbb-net | 10.7.7.6 | |
| kurento | network-mode: host | ||
| webrtc-sfu | bbb-net | network_mode: host | |
| fsesl-akka | bbb-net | 10.7.7.14 | |
| apps-akka | bbb-net | 10.7.7.15 | |
| libreoffice | bbb-net | 10.7.7.7 | |
| periodic | bbb-net | 10.7.7.12 | |
| recordings | bbb-net | 10.7.7.16 | |
| webhooks | bbb-net | 10.7.7.17 | |
| https_proxy | bbb-net | network_mode: host | |
| coturn | network_mode: host | ||
| greenlight | ports: 10.7.7.1:5000:80 | ||
| prometheus | bbb-net | 10.7.7.33 |
networks:
bbb-net:
ipam:
driver: default
config:
- subnet: "10.7.7.0/24"
ネットワークとの整合性に重要な設定ファイル
Docker Compose
docker-compose.yml.env
WebRTC-SFU(Mediasoup)
mod/webrtc-sfu/bbb-webrtc-sfu/config/default.example.yml
Nginx
mod/nginx/bigbluebutton
FreeSwitch(Sofia Configuration files)
mod/freeswitch/conf/vars.xml.tmplmod/freeswitch/conf/sip_profiles/external.xmlmod/freeswitch/conf/sip_profiles/external-ipv6.xmlmod/freeswitch/conf/autoload_configs/event_socket.conf.xmlmod/freeswitch/conf/autoload_configs/acl.conf.xml
Coturn
mod/coturn/turnserver.conf
Greenlight v3
Greenlight SMTP設定(Gmail)
.envファイル内でGmail SMTPサーバの設定をします。
SMTPサーバの設定をしないとメール認証によるユーザ登録が出来ません。
.env
# ====================================
# GREENLIGHT CONFIGURATION
# ====================================
### SMTP CONFIGURATION
# Emails are required for the basic features of Greenlight to function.
# Please refer to your SMTP provider to get the values for the variables below
[email protected]
SMTP_SENDER_NAME=FICUSONLINE
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_DOMAIN=gmail.com
SMTP_USERNAME=google_account_name
SMTP_PASSWORD=password
SMTP_AUTH=plain
SMTP_STARTTLS_AUTO=true
SMTP_SSL_VERIFY=false
Note) サードパーティアプリへのパスワード付与の項目は、以下のメニュー階層に変更されたようです。アカウント画面から
Security → 2-Step-Verification → App password
にアクセスして専用パスワードを取得して下さい。
-
bbb-web – BigBlueButton APIを実装し、プレゼンテーション用のドキュメントの変換を行います。
-
akka-bbb-apps – サーバーサイドアプリケーションであり、サーバー上でのミーティングの状態を処理
-
bbb-html5 – ブラウザに読み込まれるHTML5クライアントです。MongoDBとReact.jsを活用したクライアントサーバーサイドのMeteorアプリケーション
-
bbb-learning-dashboard – モデレーターに利用可能なライブダッシュボードであり、インストラクターに役立つユーザーのアクティビティ情報を表示
-
bbb-fsesl-akka – FreeSWITCHにコマンドを送信するためのコンポーネント
-
bbb-playback-presentation – プレゼンテーションのレコードと再生スクリプトであり、プレゼンテーションのレイアウトを作成
-
bbb-export-annotations – ブレイクアウトコンテンツのキャプチャと注釈付きプレゼンテーションのダウンロードを処理
-
bbb-webrtc-sfu – クライアントからの受信リクエストをKurentoにブリッジするサーバー
-
kurento-media-server – ウェブカムとスクリーン共有のビデオの送受信と録画のためのWebRTCメディアサーバー
-
bbb-freeswitch-core – 音声の送受信と録音のためのWebRTCメディアサーバー




