
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本文档提供在本地环境部署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允许用户切换"等候主持人"选项;设为其他值隐藏该选项;不设置则显示 |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务