bbb-install.sh
是一个shell脚本,它自动执行设置了BigBlueButton 2.2服务器的分步安装。
只需要几个参数,bbb-install.sh
就可以在30分钟内设置并准备好使用BigBlueButton服务器(取决于您的服务器下载和安装包的网络速度)。
例如,给定一个有公共IP地址的Ubuntu 16.04 64位服务器,安装/更新到最新版本的BigBlueButton2.2,通过SSH登录到服务器,先以root身份运行以下命令:
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -a
该命令将下拉最新版本的bbb-install.sh
,将其发送到BASH shell解释器,并传递参数-v xenia -22
,该参数指定希望安装最新版本的BigBlueButton 2.2.N,-a
指定想要安装API演示(这使得在服务器上进行一些快速测试变得很容易)。
注意:如果您的服务器位于防火墙之后(如企业防火墙之后或AWS安全组之后),那么在启动客户端之前,您需要手动确定防火墙,以便将特定的internet连接转发到BigBlueButton服务器。
当bbb-install.sh
完成时,您将看到一条消息,该消息向您提供一个测试URL,以启动BigBlueButton客户端并加入一个名为“Demo meeting”的会议。
# Warning: The API demos are installed and accessible from:
#
# http://xxx.xxx.xxx.xxx
#
# and
#
# http://xxx.xxx.xxx.xxx/demo/demo1.jsp
#
# These API demos allow anyone to access your server without authentication
# to create/manage meetings and recordings. They are for testing purposes only.
# If you are running a production system, remove them by running:
#
# sudo apt-get purge bbb-demo
当您打开URL时,您应该会看到一个登录来加入 Demo Meeting
。
输入您的名字并单击Join。BigBlueButton客户机应该在浏览器中加载并提示您加入音频。
点击[x]跳过加入音频。为什么?使用上面的命令,BigBlueButton服务器被配置为只使用一个IP地址(没有安全性),因此,浏览器将阻止对webcam和麦克风的访问。
对于BigBlueButton的生产设置,服务器需要使用传输级别安全性(transport level security, TLS)为web页面提供服务。换句话说,您只能通过HTTP
(未加密)而不是HTTPS
(加密)访问此服务器,因为服务器当前缺乏为服务器主机名配置的安全套接字级别(SSL)证书。
没有TLS/SSL支持,浏览器将不允许通过内置实时通信(WebRTC)库访问用户的webcam或麦克风。
bbb-install.sh
可以自动请求TLS/SSL证书(来自Let’s Encrypt),并配置BigBlueButton服务器以使用该证书。下面几节将向您展示如何进行。
在运行bbb-install.sh
之前,我们强烈建议您:
bbb.example.com
要设置FQDN,您需要从域名系统(DNS)提供商(如GoDaddy或Network Solutions)购买一个域名。一旦购买,您将使用DNS提供商提供的web工具创建A Record
,该记录解析为您的BigBlueButton服务器的公共IP地址。(有关如何设置A Record
的详细信息,请查看DNS提供商的文档。)
有了FQDN域名的地方,你可以传递一些额外的参数给bbb-install.sh
来拥有它:
一旦BigBlueButton服务器配置了TLS/SSL证书,您的用户就可以使用FireFox和Chrome(推荐的浏览器)通过WebRTC在BigBlueButton会话中访问和共享他们的音频、视频和屏幕。
这里有bbb-install.sh
的完整源代码。为了让任何人都可以轻松地使用单个命令运行脚本,我们在https://ubuntu.bigbluebutton.org/bbb.install.sh上托管脚本的最新版本。
有很多可以提供你虚拟专用服务器托管公司BigBlueButton运行。我们在下面列出了一些流行的选择。注意:我们在这里没有做任何推荐,只是列出了一些更受欢迎的选择。
为了快速安装,Digital Ocean提供了两个虚拟服务器,一个是ubuntu16.04 64位,另一个是一个公共IP地址(没有防火墙)。Hetzner提供单一IP地址的专用服务器。
其他流行的选择,如ScaleWay(选择Bare Metal或Pro servers )和谷歌计算引擎,提供了设置在网络地址转换(NAT)之后的服务器。也就是说,它们都有一个内部和外部IP地址。在这些服务器上安装时,bbb-install.sh
将检测内部/外部地址并相应地配置BigBlueButton。
另一个流行的选择是亚马逊弹性计算云。我们推荐c5.xlarge
(或更大)实例。默认情况下,所有EC2服务器都位于防火墙之后(Amazon称之为安全组)。在EC2上安装BigBlueButton之前,您需要手动确定安全组,在Azure和谷歌计算引擎(GCE)上以类似的方式安装BigBlueButton。(请参见下一节的屏幕截图。)
最后,如果bbb-install.sh
无法在NAT之后配置服务器,我们建议按步骤安装BigBlueButton。(完成这些步骤也是了解BigBlueButton如何工作的好方法)。
如果你想在防火墙后的服务器上安装BigBlueButton,比如Amazon的EC2安全组,你首先需要确定防火墙转发下列端口的传入流量:
如果您正在使用EC2,您还应该为服务器分配一个弹性IP地址,以防止它在重新启动时获得新的IP地址。
在Microsot Azure上,创建实例时,需要添加以下入站端口规则,以便在端口80、443和UDP端口范围16384-32768上启用入站连接:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vUxpmZWy-1589724453424)(assets/azure-firewall.png)]
在谷歌计算引擎上,当您创建实例时,您需要启用端口80和443。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QGFtQOmt-1589724453430)(assets/gce-80-443.png)]
创建实例之后,您需要添加一个防火墙规则,以允许端口范围为16384-32768的传入UDP通信。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jsuSgipp-1589724453439)(assets/gce-firewall.png)]
以 Digital Ocean 为例,我们把这个视频放在一起,让你快速上手:使用bbb-install.sh
在Digital Ocean 上设置BigBlueButton。
使用Amazon EC2,请参阅在EC2上使用bbb-install.sh
进行安装。
您可以通过传递-h
选项来获得帮助。
$ wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -h
Installer script for setting up a BigBlueButton 2.2 server.
This script also supports installation of a separate coturn (TURN) server on a separate server.
USAGE:
bbb-install.sh [OPTIONS]
OPTIONS (install BigBlueButton):
-v Install given version of BigBlueButton (e.g. 'xenial-22') (required)
-s Configure server with
-e Email for Let's Encrypt certbot
-x Use Let's Encrypt certbot with manual dns challenges
-a Install BBB API demos
-g Install GreenLight
-c : Configure with coturn server at using
-p Use apt-get proxy at
-r Use alternative apt repository (such as packages-eu.bigbluebutton.org)
-d Skip SSL certificates request (use provided certificates from mounted volume)
-h Print help
OPTIONS (install coturn):
-c : Configure coturn with and (required)
-e Email for Let's Encrypt certbot (required)
EXAMPLES
Setup a BigBlueButton server
./bbb-install.sh -v xenial-22
./bbb-install.sh -v xenial-22 -s bbb.example.com -e [email protected]
./bbb-install.sh -v xenial-22 -s bbb.example.com -e [email protected] -g
./bbb-install.sh -v xenial-22 -s bbb.example.com -e [email protected] -g -c turn.example.com:1234324
Setup a coturn server
./bbb-install.sh -c turn.example.com:1234324 -e [email protected]
SUPPORT:
Source: https://github.com/bigbluebutton/bbb-install
Community: https://bigbluebutton.org/support
安装BigBlueButton 2.2(没有主机名或TLS/SSL证书):
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22
就是这样。安装应该在大约15分钟内完成(取决于服务器的internet连接),并显示以下消息:
** Potential problems described below **
......
# Warning: The API demos are installed and accessible from:
#
# http://xxx.xxx.xxx.xxx/demo/demo1.jsp
#
# These API demos allow anyone to access your server without authentication
# to create/manage meetings and recordings. They are for testing purposes only.
# If you are running a production system, remove them by running:
#
# sudo apt-get purge bbb-demo
该脚本还安装了bbb-demo
包,以便您可以立即测试安装。如果要删除API演示,请使用该命令:
sudo apt-get purge bbb-demo
如果希望将此服务器与第三方集成(如Moodle)一起使用,可以使用命令sudo bbb-conf --secret
获得BigBlueButton服务器的主机名和共享机密。
# bbb-conf --secret
URL: http://xxx.xxx.xxx.xxx/bigbluebutton/
Secret: yyy
Link to the API-Mate:
http://mconf.github.io/api-mate/#server=http://xxx.xxx.xxx.xxx/bigbluebutton/&sharedSecret=yyy
由于bbb-install.sh
的默认用法不支持SSL/TLS证书,虽然您可以登录到服务器,但您不能共享音频/视频,因为WebRTC需要SSL/TLS证书。
在bbb-install.sh
之前,可以安装SSL/TLS证书,您需要提供以下两项信息:
bbb.example.com
,它解析为您的服务器的公共IP地址。设置好FQDN之后,使用dig
命令检查它是否正确解析为服务器的外部IP地址。
dig bbb.example.com @8.8.8.8
注意:我们使用bbb.example.com
作为示例主机名。您可以用真正的主机名来代替检查(以及下面的命令)。
只需要这两部分信息——FQDN 和电子邮件地址——就可以使用bbb-install.sh
自动配置带有TLS/SSL证书的BigBlueButton服务器。例如,要使用来自Let’s Encrypt 的TLS/SSL证书安装BigBlueButton 2.2,请使用bbb.example.com
和info@example
,输入命令:
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -s bbb.example.com -e [email protected]
(同样,你可以用bbb.example.com
和[email protected]
代替您的服务器的FQDN和您的电子邮件地址)。bbb-install.sh
脚本还将安装一个核心工作,该作业将自动更新 Let’s Encrypt 证书,这样它就不会过期。酷。
默认安装是针对公开可用的服务器的。这是因为Let’s Encrypt 需要访问nginx,以便自动验证提供的FQDN。
当安装BigBlueButton私有网络,可以手动验证FODN,通过添加选项-x
命令行。如:
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -s bbb.example.com -e [email protected] -x
确认电子邮件帐号的使用。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o:
确认IP地址的使用
Are you OK with your IP being logged?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o:
将生成一个challenge
并显示在控制台中。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.bbb.example.com with the following value:
0bIA-3-RqbRo2EfbYTkuKk7xq2mzszUgVlr6l1OWjW8
Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
在点击Eneter之前,在DNS中创建一条TXT记录,记录下生成的challenge
。
_acme-challenge.bbb.example.com. TXT "0bIA-3-RqbRo2EfbYTkuKk7xq2mzszUgVlr6l1OWjW8" 60
这样做的缺点是,由于SSL证书在90天后过期,因此必须手动更新证书。在这种情况下,电子邮件在过期前几天发送,下一个命令必须通过控制台执行。
certbot --email [email protected] --agree-tos -d bbb.example.com --deploy-hook 'systemctl restart nginx' --no-bootstrap --manual-public-ip-logging-ok --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory certonly
您可以通过添加-a
选项来安装API演示。
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -s bbb.example.com -e [email protected] -a
警告:这些API演示允许任何人访问您的服务器,而无需身份验证来创建/管理会议和记录。它们仅用于测试目的。完成测试后,可以使用sudo apt-get purge bbb-demo
删除API演示。
Greenlight是Ruby on Rails编写的一个简单的BigBlueButton前端。它允许用户创建帐户,拥有永久的房间,并管理他们的录音。它还允许作为管理员的您管理用户帐户(例如批准或拒绝用户)。
您可以通过添加-g
选项来安装Greenlight。
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -s bbb.example.com -e [email protected] -g
安装Greenlight后,它将把默认主页重定向到Greenlight。您还可以配置GreenLight来使用OAuth2身份验证。
要启动Greenlight,只需打开服务器的URL,例如https://bbb.example.com/。您应该会看到Greenlight登录页面。
要为Greenlight设置管理员帐户(以便您可以批准/拒绝注册),请输入以下命令:
cd greenlight/
docker exec greenlight-v2 bundle exec rake admin:create
这个命令将创建一个管理帐户并设置一个默认密码。运行此命令后,使用给定的用户名/密码登录并更改默认密码。接下来,选择“Administrator”并选择“Organization”。
然后您可以选择’Site Settings '在左手边,并改变Registration Method 为’Approve/Decline '。
现在可以控制谁在BigBlueButton服务器上创建帐户。有关更多信息,请参见Greenlight管理。
安装脚本允许您传递一个路径,该路径将用于用/var/bigbluebutton
创建一个符号链接
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -m /mnt/test
这允许用户存储/var/bigbluebutton
的内容,该内容在单独的卷中可能会变得非常大。
如果你想用TLS/SSL证书和GreenLight来设置BigBlueButton 2.2,你可以用一个命令来完成:
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -s bbb.example.com -e [email protected] -g
此外,您可以重新运行相同的命令后更新服务器到最新版本的BiąBlueButton 2.2。我们宣布BiaBlueButton更新到BiaBlueButton-dey
邮件列表。
您可以使用bbb-install.sh
自动化设置BigBlueButton的TURN服务器的步骤。
注意:此步骤是可选的,但如果您的BigBlueButton服务器在internet上是公开可执行的,并且可能被限制防火墙后的用户访问,则建议这样做。
BigBlueButton通常需要大量UDP端口才能用于WebRTC通信。在一些受网络限制的站点或开发环境中,例如NAT或防火墙后面的那些限制传出UDP连接的站点,用户可能无法将传出UDP连接到您的BigBlueButton服务器。
TURN协议的设计目的是允许基于udp的通信流(如WebRTC)绕过NAT或防火墙,方法是让客户机连接到TURN服务器,然后让TURN服务器代表它们连接到目的地。
您需要一个单独的服务器(而不是BigBlueButton服务器)来设置为TURN服务器。具体你需要:
在TURN服务器上,您需要有以下端口(在端口22中)用于BigBlueButton连接(端口3478和443),以及用于coturn(穿透)连接到您的BigBlueButton服务器(49152- 65535)。
Ports | Protocol | Description |
---|---|---|
3478 | TCP/UDP | coturn listening port |
443 | TCP/UDP | TLS listening port |
49152-65535 | UDP | relay ports range |
我们推荐Ubuntu 18.04,因为它有一个比Ubuntu 16.04更新的coturn版本。此外,这个TURN服务器不需要非常强大,因为它只会在必要时将通信从BigBlueButton客户端转发到BigBlueButton服务器。例如,Digital Ocean上的双核服务器是一个不错的选择,它提供具有公共IP地址的服务器。
接下来,配置你需要的 TURN 服务器:
有了上面的信息,您可以使用bbb-install.sh
为BigBlueButton设置一个TURN服务器,如下所示:
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -c : -e
注意,我们省略了-v
选项,这导致bbb-install.sh
只安装和配置coturn。例如,turn.example.com
使用FQDN, 1234abcd
作为共享秘密,[email protected]
作为电子邮件地址,您可以使用该命令为BigBlueButton设置一个TURN 服务器:
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -c turn.example.com:1234abcd -e [email protected]
bbb-install.sh
使用Let’s Encrypt 来配置coturn以使用SSL证书。这一个SSL证书,coturn可以访问BigBlueButton服务器在TCP / IP的端口443上。这意味着,如果用户在一个限制所有UDP连接的防火墙后面,TURN服务器可以通过TCP / IP的端口443接受用户的连接,并通过UDP将数据转发到您的BigBlueButton服务器。
有了TURN服务器,您可以通过再次运行bbb-install.sh
命令并添加相同的 -c
来配置BigBlueButton服务器来使用TURN服务器。例如:
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -s bbb.example.com -e [email protected] -g -c turn.example.com:1234abcd
您可以为多个BigBlueButton安装共用一个TURN服务器。
如果您打算将此服务器用于生产,则应该使用该命令卸载API演示:
apt-get purge bbb-demo
您还可以对服务器进行许多定制。
我们目前在一个Digital Ocean servlet上托管打包,但最近Digital Ocean servlet的IP范围在一些国家被封锁。
如果在安装时遇到困难,可以尝试运行bbb-install.sh
命令,但是要更改值
把
https://ubuntu.bigbluebutton.org/bbb-install.sh
改为
https://packages-eu.bigbluebutton.org/bbb-install.sh
如果在第一次安装Greenlight时出现500 error
,您可以重新启动Greenlight。
如果在初始安装时看到
# Not running: tomcat7 or grails LibreOffice
只要再次运行 sudo bbb-conf --check
。Tomcat7的启动时间可能要长一些,而且它不是第一次运行sudo bbb-conf --check
。
如果您对脚本有反馈,或者需要使用它的帮助,请将问题的详细信息(包括重现错误的步骤等相关信息)发布到BigBlueButton安装邮件列表。
如果您遇到脚本错误(例如没有完成或抛出错误),请打开GitHub问题并提供重现问题的步骤。
如果您在防火墙后运行BigBlueButton,例如在EC2上,此脚本将不会配置您的防火墙。您需要手动配置防火墙。