本文档提供在本地环境部署Rooms工具和LTI-Broker应用,并配置与Moodle等学习管理系统(LMS)集成的详细步骤,包括环境准备、仓库配置、数据库设置、Nginx部署及LMS集成流程。
适用于需要在本地环境中部署Rooms工具和LTI-Broker,并将其与学习管理系统集成的开发者、系统管理员或教育机构技术人员。
在开始部署前,需确保本地环境已满足以下条件:
1.1 克隆仓库
克隆Rooms和LTI-Broker的代码仓库:
bashgit clone https://github.com/bigbluebutton/bbb-app-rooms.git git clone https://github.com/bigbluebutton/bbb-lti-broker.git
1.2 配置Rooms应用环境变量
进入Rooms应用目录并配置环境变量:
bashcd bbb-app-rooms cp dotenv .env sudo vi .env # 使用文本编辑器编辑.env文件
编辑以下必要变量值:
## 应用配置 # 运行openssl rand -hex 32生成密钥 SECRET_KEY_BASE= RELATIVE_URL_ROOT=apps ## 数据库配置 # DB_ADAPTER=[postgresql] # DB_HOST=<localhost> # DB_NAME= # DB_USERNAME=<root> # DB_PASSWORD= # BigBlueButton配置 BIGBLUEBUTTON_ENDPOINT=https://bbb.<your-name>.blindside-dev.com/bigbluebutton/api BIGBLUEBUTTON_SECRET=<服务器密钥> BIGBLUEBUTTON_MODERATOR_ROLES=Instructor,Faculty,Teacher,Mentor,Administrator,Admin # BigBlueButton LTI Broker配置 OMNIAUTH_BBBLTIBROKER_SITE=https://lti.<JOHN>.blindside-dev.com OMNIAUTH_BBBLTIBROKER_ROOT=lti # 需与添加到Broker时的参数匹配 # rake db:apps:add[rooms,key,secret,https://lti.<JOHN>.blindside-dev.com/apps/rooms/auth/bbbltibroker/callback] OMNIAUTH_BBBLTIBROKER_KEY=<自定义key> OMNIAUTH_BBBLTIBROKER_SECRET=<自定义secret> ## 设置域名(必填) URL_HOST=lti.<JOHN>.blindside-dev.com ## 日志输出到标准输出(可选) RAILS_LOG_TO_STDOUT=true ## 通过应用提供静态资源(当前必填) RAILS_SERVE_STATIC_FILES=true ## 启用开发环境特性(可选) # RAILS_ENV=production
1.3 配置LTI-Broker环境变量
进入LTI-Broker目录并配置环境变量:
bashcd ~/bbb-lti-broker cp dotenv .env sudo vi .env # 使用文本编辑器编辑.env文件
配置内容:
POSTGRES_PASSWORD=<PostgreSQL数据库密码> POSTGRES_USER=postgres # 创建Rails密钥 # 可通过Greenlight Docker镜像生成: # docker run --rm bigbluebutton/greenlight:v2 bundle exec rake secret SECRET_KEY_BASE= # 应用配置 RELATIVE_URL_ROOT=lti # LTI工具配置 # DEFAULT_LTI_TOOL=rooms # DEVELOPER_MODE_ENABLED=true # WHITELIST_HOST=broker.example.com ## 设置域名(必填) URL_HOST=lti.<JOHN>.blindside-dev.com ## 连接外部PostgreSQL实例(可选) # DATABASE_URL=postgres://postgres:password@localhost ## 日志输出到标准输出(可选) RAILS_LOG_TO_STDOUT=true ## 通过应用提供静态资源(当前必填) RAILS_SERVE_STATIC_FILES=true ## 启用开发环境特性(可选) # RAILS_ENV=development
1.4 数据库初始化
为两个应用创建并迁移数据库:
bash# 在Rooms应用目录执行 cd ~/bbb-app-rooms rake db:create db:migrate db:seed # 在LTI-Broker目录执行 cd ~/bbb-lti-broker rake db:create db:migrate db:seed
1.5 将Rooms应用添加到LTI-Broker
使用Rooms环境变量中配置的OMNIAUTH_BBBLTIBROKER_KEY和OMNIAUTH_BBBLTIBROKER_SECRET执行以下命令:
bashcd ~/bbb-lti-broker rake db:apps:add[rooms,https://lti.<JOHN>.blindside-dev.com/apps/rooms/auth/bbbltibroker/callback,<key>,<secret>] # 添加密钥到密钥集 rake db:keys:add[<key>:<secret>]
编辑Nginx配置文件:
bashsudo vim /etc/nginx/conf.d/default.conf
使用https://github.com/jfederico/bbb-lti-run/blob/master/nginx/.sites.template.local%E6%9B%BF%E6%8D%A2%E6%96%87%E4%BB%B6%E5%86%85%E5%AE%B9%EF%BC%8C%E4%BF%9D%E5%AD%98%E5%90%8E%E9%87%8D%E5%90%AFNginx%EF%BC%9A
bashsudo systemctl restart nginx
3.1 运行应用
分别启动Rooms和LTI-Broker应用:
bash# 启动Rooms(端口3012) cd ~/bbb-app-rooms rails s -b 0.0.0.0 -p 3012 # 启动LTI-Broker(端口3011) cd ~/bbb-lti-broker rails s -b 0.0.0.0 -p 3011
3.2 获取LMS配置URL
lti.<JOHN>.blindside-dev.com/ltihttps://lti.<JOHN>.blindside-dev.com/lti/default/xml_configdefault替换为rooms,刷新页面:https://lti.<JOHN>.blindside-dev.com/lti/rooms/xml_config3.3 在LMS中配置
secure_launch_urlconsumer_key和shared_secret对应Rooms环境变量中的OMNIAUTH_BBBLTIBROKER_KEY和OMNIAUTH_BBBLTIBROKER_SECRET启动时支持以下自定义参数控制会议行为:
| 参数 | 说明 |
|---|---|
custom_recording | 设置为true时默认勾选"录制"选项;不设置则使用默认值 |
custom_all_moderators | 设置为true时默认勾选"所有用户为主持人"选项;不设置则使用默认值 |
custom_wait_moderator | 设置为true时默认勾选"等候主持人"选项;不设置则使用默认值 |
custom_allow_all_moderators | 设置为true允许用户切换"所有用户为主持人"选项;设为其他值隐藏该选项;不设置则显示 |
custom_allow_wait_moderator | 设置为true允许用户切换"等候主持人"选项;设为其他值隐藏该选项;不设置则显示 |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务