在BigBlueButton服务器上安装GreenLight
BigBlueButton服务器要求
在安装Greenlight之前,您必须具有BigBlueButton服务器才能对其进行安装。该服务器必须:
- 具有BigBlueButton 2.0(或更高版本)的版本。
- 具有完全限定的主机名。
- 拥有有效的SSL证书(HTTPS)。
1.安装Docker
使用存储库安装
在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
设置存储库
- 更新
apt
软件包索引并安装软件包以允许apt
通过HTTPS使用存储库:
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
- 添加Docker的官方GPG密钥:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥 。
$ sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
- 使用以下命令来设置稳定的存储库。要添加其他存储库,请在以下命令中的单词后面添加
nightly
或test
(或两者)stable
。了解每晚和测试频道。
注意:下面的
lsb_release -cs
子命令返回Ubuntu发行版的名称,例如xenial
。有时,在Linux Mint等发行版中,您可能需要更改$(lsb_release -cs)
为父Ubuntu发行版。例如,如果您使用Linux Mint Tessa
,则可以使用bionic
。Docker对未经测试和不受支持的Ubuntu发行版不提供任何保证。
- x86_64 / amd64
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
- 更新
apt
程序包索引,并安装最新版本的Docker Engine和容器,或转到下一步以安装特定版本:
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
有多个Docker存储库?
如果启用了多个Docker存储库,则在未在
apt-get install
orapt-get update
命令中指定版本的情况下进行安装或更新将始终安装可能的最高版本,这可能不适合您的稳定性需求。
- 要安装特定版本的Docker Engine,请在存储库中列出可用版本,然后选择并安装:
一种。列出您的仓库中可用的版本:(当前测试docker版本Docker version 20.10.2, build 2291f61)
$ apt-cache madison docker-ce
docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.0~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
...
- b。使用第二列中的版本字符串安装特定版本,例如
5:18.09.1~3-0~ubuntu-xenial
。
$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
- 通过运行
hello-world
映像来验证是否正确安装了Docker Engine 。
$ sudo docker run hello-world
- 此命令下载测试图像并在容器中运行它。容器运行时,它会打印参考消息并退出。
2.安装Greenlight
首先,创建Greenlight目录以供其使用。
mkdir ~/greenlight && cd ~/greenlight
Greenlight将从.env
文件中读取其环境配置。要生成此文件并安装Greenlight Docker映像,请运行:
docker run --rm bigbluebutton/greenlight:v2 cat ./sample.env > .env
配置Greenlight
如果打开.env
文件,您将看到它包含所有Greenlight配置选项的信息。其中一些是强制性的。
在第二步中安装时,该.env
文件是在生成的~/greenlight/.env
。
生成密钥
Greenlight需要一个秘密密钥才能在生产中运行。要生成此代码,请运行:
docker run --rm bigbluebutton/greenlight:v2 bundle exec rake secret
在.env
文件内部,将SECRET_KEY_BASE
选项设置为此键。您无需将其用引号引起来。
设置BigBlueButton凭证
默认情况下,test-install.blindsidenetworks.com
如果未指定BigBlueButton凭据,您的Greenlight实例将自动连接。要将Greenlight设置为连接到BigBlueButton服务器(安装该服务器的服务器),您需要为Greenlight提供端点和密码。要获取凭据,请运行:
sudo bbb-conf --secret
在.env
文件中,将设置BIGBLUEBUTTON_ENDPOINT
为URL,然后将其设置BIGBLUEBUTTON_SECRET
为密钥。
设置允许的主机
出于与安全相关的原因,您还需要指定可从中访问应用程序的域。
在.env
文件中,将设置SAFE_HOSTS
为您的域。如果https://bbb.example.com/b
那时可以访问GreenlightSAFE_HOSTS=bbb.example.com
配置特定设置
除了上面列出的3种配置外,还有许多其他配置Greenlight的选项。.env
文件中列出了所有可能的配置。
您可以在此处找到有关特定设置的更多信息。
3.配置Nginx路由到Greenlight
Greenlight将配置为部署在/b
子目录中。这是必需的,因此它不会与其他BigBlueButton组件冲突。此子目录的Nginx配置存储在Greenlight映像中。要将此配置文件添加到您的BigBlueButton服务器,请运行:
docker run --rm bigbluebutton/greenlight:v2 cat ./greenlight.nginx | sudo tee /etc/bigbluebutton/nginx/greenlight.nginx
验证Nginx配置文件(/etc/bigbluebutton/nginx/greenlight.nginx
)是否到位。如果是这样,请重新启动Nginx,以获取新配置。
sudo systemctl restart nginx
这会将所有请求路由https://<hostname>/b
到Greenlight应用程序。如果您希望使用其他相对根,则可以按照此处概述的步骤进行操作。
(可选)如果希望将BigBlueButton服务器的根目录中的默认登录页面重定向到Greenlight,请/etc/nginx/sites-available/bigbluebutton
在最后一个}
字符之前的底部添加以下条目。
location = / {
return 307 /b;
}
为了使此更改生效,您必须再次重新启动Nginx。
4.启动Greenlight 2.0
要启动Greenlight Docker容器,必须安装docker-compose
,以简化Docker容器的启动和停止过程。
安装docker-compose
通过以下步骤为在Linux上安装docker-compose的文档。您可能需要docker-compose
使用sudo运行所有命令。如果要更改此设置,请签出以非root用户身份管理docker。不要安装(通过apt-get
)docker-compose
Ubuntu 16.04中打包的版本,因为它太旧了。
安装docker-compose
从Github的Compose存储库下载Docker Compose二进制文件,如果要安装不同版本的1.24.0,请在命令中替换
为要使用的Compose版本。(当前开发测试版本docker-compose version 1.28.2, build 67630359)
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
对二进制文件执行权限
sudo chmod +x /usr/local/bin/docker-compose
如果这一步遇到问题,可以创建/usr/bin路径建立链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
检查版本
docker-compose --version
使用 docker-compose
在继续之前,请docker-compose
通过运行以下命令验证是否已安装:
cd ~/greenlight
docker-compose -v
接下来,您应该将docker-compose.yml
文件从Greenlight映像复制到~/greenlight
目录中。为此,请运行:
docker run --rm bigbluebutton/greenlight:v2 cat ./docker-compose.yml > docker-compose.yml
最后,随机生成PostgreSQL数据库的密码,.env
并.docker-compose.yml
使用此命令替换and文件中的条目
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
完成这些步骤后,从~/greenlight
目录中使用以下命令启动应用程序:
注意:由于自定义域名DNS无法解析,所以需要在docker-compose.yml配置extra_hosts映射。
services:
app:
entrypoint: [bin/start]
image: bigbluebutton/greenlight:v2
container_name: greenlight-v2
env_file: .env
restart: unless-stopped
ports:
- 127.0.0.1:5000:80
extra_hosts:
- "bigbluebutton.example.com:192.168.0.1"
docker-compose up -d
这将启动Greenlight,您应该可以通过访问它https://<hostname>/b
。
数据库已保存到BigBlueButton服务器,因此重新启动时数据仍然存在。可以在找到~/greenlight/db
。
来自应用程序的所有日志也都保存到BigBlueButton服务器,该服务器位于~/greenlight/log
。
如果您不希望其中任何一个持久存在,只需从docker-compose.yml
文件中删除卷即可。
要停止应用程序,请运行:
docker-compose down