如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Rocket.Chat的Hubot适配器,用于在Rocket.Chat平台上部署和运行聊天机器人。可通过环境变量灵活配置,支持多种监听模式、认证方式及自定义脚本,适用于团队协作自动化、第三方服务集成等场景。
重大变更: v2.x.x版本包含重大突破性变更。从此版本开始:
v1.x.x版本适配器仅兼容Rocket.Chat Server 0.37.1及更高版本。若需继续使用v1.x.x适配器和CoffeeScript机器人,可配合最新版服务器运行。
若使用Rocket.Chat 0.35.0或更早版本,请使用适配器v0.1.4(不推荐在0.35.0至0.37.1版本间使用hubot)。
如需将Rocket.Chat与GitHub或GitLab集成,建议先参考https://github.com/RocketChat/Rocket.-Chat.Ops%E9%A1%B9%E7%9B%AE%EF%BC%8C%E8%AF%A5%E9%A1%B9%E7%9B%AE%E5%B7%B2%E5%8C%85%E5%90%AB%E5%A4%9A%E7%A7%8Dwebhook%E4%BA%8B%E4%BB%B6%E5%A4%84%E7%90%86%E5%8F%8AAPI%E8%AE%BF%E9%97%AE%E8%84%9A%E6%9C%AC%EF%BC%8C%E5%8F%AF%E7%9B%B4%E6%8E%A5%E6%89%A9%E5%B1%95%E7%94%A8%E4%BA%8E%E8%87%AA%E5%AE%9A%E4%B9%89%E9%9C%80%E6%B1%82%E3%80%82
如需要编写CoffeeScript机器人、使用Hubot 2.x及v1.x.x/v0.x.x适配器,请参见v1.x.x和v0.x.x适配器说明。
以下说明仅适用于v2.x.x适配器。
Docker快速部署
可通过以下命令快速启动Docker镜像:
bashdocker run -it -e ROCKETCHAT_URL=<你的RocketChat实例地址>:<端口> \ -e ROCKETCHAT_ROOM='' \ -e LISTEN_ON_ALL_PUBLIC=true \ -e ROCKETCHAT_USER=bot \ -e ROCKETCHAT_PASSWORD=bot \ -e ROCKETCHAT_AUTH=password \ -e BOT_NAME=bot \ -e EXTERNAL_SCRIPTS=hubot-pugme,hubot-help \ rocketchat/hubot-rocketchat
加载自定义脚本
如需包含自定义脚本,可挂载本地脚本目录:
bashdocker run -it -e ROCKETCHAT_URL=<你的RocketChat实例地址>:<端口> \ -e ROCKETCHAT_ROOM='' \ -e LISTEN_ON_ALL_PUBLIC=true \ -e ROCKETCHAT_USER=bot \ -e ROCKETCHAT_PASSWORD=bot \ -e ROCKETCHAT_AUTH=password \ -e BOT_NAME=bot \ -e EXTERNAL_SCRIPTS=hubot-pugme,hubot-help \ -v $PWD/scripts:/home/hubot/scripts \ rocketchat/hubot-rocketchat
需管理员账户创建机器人登录账户:
+创建新用户bot并点击添加角色创建的用户名和密码需分别配置到环境变量ROCKETCHAT_USER和ROCKETCHAT_PASSWORD中。
注意:为避免创建多个***账户,可使用Gmail的+地址功能,例如youremail+botname@gmail.com。
请参考[模板机器人的快速入门文档][getting-started]!
模板项目本质是一个简单的Node.js包,包含Hubot、Rocket.Chat适配器及Coffeescript依赖:
json"dependencies": { "coffeescript": "^2.2.2", "hubot": "3", "hubot-rocketchat": "^2.0.0" }
生产环境中可通过bin文件执行机器人,https://github.com/RocketChat/hubot-rocketchat-boilerplate/tree/master/bin%EF%BC%9B%E6%9C%AC%E5%9C%B0%E5%BC%80%E5%8F%91%E5%8F%AF%E4%BD%BF%E7%94%A8%60npm run local或yarn local`命令。
使用模板示例时,生产环境启动命令:bin/hubot -a rocketchat(将安装依赖并使用当前适配器运行机器人)。
https://hubot.github.com/docs/%E6%8F%90%E4%BE%9B%E6%9B%B4%E5%A4%9A%E4%BF%A1%E6%81%AF%E3%80%82
本地开发时,配置可保存在.env文件中;生产环境需在服务器启动时设置。
| 环境变量 | 描述 |
|---|---|
HUBOT_NAME | 监听器的程序名称 |
HUBOT_ALIAS | 机器人的备用响应名称 |
HUBOT_LOG_LEVEL | 日志输出的最低级别 |
HUBOT_HTTPD | 是否需要监听或发起HTTP请求 |
HUBOT_ADAPTER** | 加载的平台适配器包(需设为rocketchat) |
ROCKETCHAT_URL* | Rocket.Chat实例地址(需先启动服务器) |
ROCKETCHAT_USER* | 机器人用户名(需先创建) |
ROCKETCHAT_PASSWORD* | 机器人用户密码 |
ROCKETCHAT_ROOM | 机器人监听的默认房间(可逗号分隔多个) |
LISTEN_ON_ALL_PUBLIC | 是否监听所有公共频道 |
RESPOND_TO_DM | 是否响应私聊消息 |
RESPOND_TO_EDITED | 是否响应已编辑消息 |
RESPOND_TO_LIVECHAT | 是否在实时聊天房间中响应 |
* 必需设置
** 需设为rocketchat启用适配器(或作为启动参数传递)
若需机器人监听所有公共频道及已加入的私有频道,需将ROCKETCHAT_ROOM设为空(ROCKETCHAT_ROOM='')并设置LISTEN_ON_ALL_PUBLIC=true。
Rocket.Chat适配器通过Rocket.Chat Node.js SDK调用服务器方法并选择性缓存结果。高级用户可通过SDK环境变量修改默认设置,详见https://github.com/rocketchat/rocket.chat.js.sdk#settings%E3%80%82
常用配置
常见配置需求:监听私聊、所有新公共频道及私有群组,可使用以下选项:
LISTEN_ON_ALL_PUBLIC=trueROCKETCHAT_ROOM=''RESPOND_TO_DM注意:机器人需先被添加为私有群组成员才能响应消息。
以下为适配器的其他连接方式。
基础启动命令:
bashdocker run -it -e ROCKETCHAT_URL=<你的RocketChat实例地址>:<port> \ -e ROCKETCHAT_ROOM='' \ -e LISTEN_ON_ALL_PUBLIC=true \ -e ROCKETCHAT_USER=bot \ -e ROCKETCHAT_PASSWORD=bot \ -e HUBOT_NAME=bot \ -e EXTERNAL_SCRIPTS=hubot-help,hubot-diagnostics \ rocketchat/hubot-rocketchat
自定义脚本
挂载本地脚本目录:
bashdocker run -it -e ROCKETCHAT_URL=<你的RocketChat实例地址>:<port> \ -e ROCKETCHAT_ROOM='' \ -e LISTEN_ON_ALL_PUBLIC=true \ -e ROCKETCHAT_USER=botname \ -e ROCKETCHAT_PASSWORD=botpass \ -e HUBOT_NAME=botname \ -e EXTERNAL_SCRIPTS=hubot-help,hubot-diagnostics \ -v $PWD/scripts:/home/hubot/scripts \ rocketchat/hubot-rocketchat
所有可配置选项如下:
Docker环境使用:-e VAR=Value
常规Hubot环境使用:export VAR=Value或配置到pm2等进程管理工具
| 环境变量 | 描述 |
|---|---|
| ROCKETCHAT_URL | Rocket.Chat运行地址,格式可为host:port、http://host:port或https://host:port。使用https://时,必须通过反向代理(如NGINX)配置WebSocket转发及有效证书(不支持自签名证书),不支持直接通过https://访问无反向代理的Rocket.Chat |
| ROCKETCHAT_USER | 机器人用户名,必须是Rocket.Chat服务器上的已注册用户,并通过管理员面板授予bot角色(此名称也是机器人的召唤名称) |
| ROCKETCHAT_PASSWORD | 机器人用户密码 |
| ROCKETCHAT_AUTH | 认证方式,默认password,使用LDAP账户时设为ldap |
| ROCKETCHAT_ROOM | 机器人监听的频道名称,可逗号分隔多个 |
| LISTEN_ON_ALL_PUBLIC | 设为true时,机器人将监听所有公共频道及私聊消息,默认false。使用此选项时需将ROCKETCHAT_ROOM设为空(ROCKETCHAT_ROOM='')。注意:此选项还允许机器人监听已加入的新私有群组消息 |
| RESPOND_TO_DM | 设为true时响应私聊消息,需同时设置ROCKETCHAT_ROOM或LISTEN_ON_ALL_PUBLIC,默认false |
| RESPOND_TO_EDITED | 设为true时响应已编辑消息,默认false |
| ROOM_ID_CACHE_SIZE | 房间ID缓存最大数量,机器人发送消息到大量不同房间时可增大此值,默认10 |
| DM_ROOM_ID_CACHE_SIZE | 私聊房间ID缓存最大数量,机器人发送大量私聊时可增大此值,默认100 |
| ROOM_ID_CACHE_MAX_AGE | 房间ID和私聊房间ID的缓存时间(秒),可增大以提升性能,默认300 |
| BOT_NAME** | 机器人名称(响应名称) |
| EXTERNAL_SCRIPTS ** | 需添加到hubot的npm模块 |
| HUBOT_LOG_LEVEL | 日志级别,可选`debug |
** - 仅Docker镜像支持
监听私聊、所有新公共频道及私有群组的配置
常用配置:
LISTEN_ON_ALL_PUBLIC=true 且 ROCKETCHAT_ROOM='',不设置RESPOND_TO_DM
注意:机器人需先被添加为私有群组成员才能响应消息。
测试命令:
rocketbot ping
查看帮助:
rocketbot help
示例脚本响应:
rocketbot report status
克隆源码并进入目录:
bashgit clone git@github.com:RocketChat/hubot-rocketchat.git cd hubot-rocketchat
启动开发容器:
bashdocker run -it -e ROCKETCHAT_URL=<你的RocketChat实例地址>:<port> \ -e ROCKETCHAT_ROOM='' \ -e LISTEN_ON_ALL_PUBLIC=true \ -e ROCKETCHAT_USER=bot \ -e ROCKETCHAT_PASSWORD=bot \ -e HUBOT_NAME=bot \ -e EXTERNAL_SCRIPTS=hubot-help,hubot-diagnostic \ -v $PWD:/home/hubot/node_modules/hubot-rocketchat rocketchat/hubot-rocketchat
在Hubot项目中,替换已安装的适配器为开发版本:
node_modulesrm -rf hubot-rocketchatgit clone git@github.com:RocketChat/hubot-rocketchat.gitcd hubot-rocketchatnpm install设置本地链接包便于持续开发或在多个机器人中使用同一开发版本:
npm link或yarn link设置链接源npm link hubot-rocketchat或yarn link hubot-rocketchat创建链接$PWD挂载卷,需参考Docker卷文档(页面第二个注意事项:If you are using Boot2Docker...)确定绝对路径v0.1.4适配器的docker-compose配置示例(添加到docker-compose.yml):
yaml# hubot,流行的聊天机器人(需先创建机器人用户并修改密码) hubot: image: rocketchat/hubot-rocketchat:v0.1.4 environment: - ROCKETCHAT_URL=你的RocketChat实例IP:3000(例如192.168.2.240:3000) - ROCKETCHAT_ROOM= - LISTEN_ON_ALL_PUBLIC=true - ROCKETCHAT_USER=机器人用户名 - ROCKETCHAT_PASSWORD=机器人密码 - BOT_NAME=bot - GOOGLE_API_KEY=你的Google API密钥 # 可在此添加更多脚本,需通过npm安装 - EXTERNAL_SCRIPTS=hubot-help,hubot-seen,hubot-links,hubot-diagnostics,hubot-google,hubot-reddit,hubot-bofh,hubot-bookmark,hubot-shipit,hubot-maps links: - rocketchat:rocketchat # 暴露hubot端口(3001)用于主机通知,如hubot-jenkins-notifier ports: - 3001:8080
若需机器人监听所有公共频道及已加入的私有频道,需将ROCKETCHAT_ROOM设为空并设置LISTEN_ON_ALL_PUBLIC=true。
注意:示例中的部分外部脚本(如hubot-google)需要在docker-compose中配置Google API密钥。
bash# 添加hubot用户 # su - hubot $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash $ exit # su - hubot $ nvm install v4.8.5 $ npm update -g $ npm install -g yo generator-hubot $ mkdir hubot $ cd hubot $ yo hubot(回答问题并使用"rocketchat"作为适配器) $ npm install coffee-script -save
确保~/hubot/bin/hubot可执行:chmod 755 ./bin/hubot
如需Redis数据库:apt install redis-server
设置Node版本:export NODE_VERSION=default
使用systemd启动hubot时,需使用nvm-exec:
ExecStart=/home/hubot/.nvm/nvm-exec /home/hubot/hubot/bin/hubot --adapter rocketchat
参考systemd单元的EnvironmentFile指令设置环境变量。
全新安装
可在设置过程中指定适配器。
首先安装hubot:
bashnpm install -g yo generator-hubot
然后创建机器人:
bashmkdir myhubot cd myhubot yo hubot --adapter="rocketchat@1"
根据提示回答问题,或通过一条命令指定所有参数:
bashyo hubot --owner="OWNER <owner@example.com>" --name="bot" --description="Bot" --adapter="rocketchat@0.1"
记录设置的机器人名称,这是机器人在Rocket.Chat中的响应名称。
配置适配器:
bashexport ROCKETCHAT_ROOM='' export LISTEN_ON_ALL_PUBLIC=true export ROCKETCHAT_USER=bot export ROCKETCHAT_PASSWORD=bot export ROCKETCHAT_AUTH=password
启动机器人:bin/hubot -a rocketchat
https://hubot.github.com/docs/
现有安装
已安装Hubot的情况下,通过以下命令添加
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务