updated:
Hubot + RocketChat 搭建
安装 MongoDB
这里我们选择 tgz 下载,下载完安装包,并解压 tgz(以下演示的是 64 位 Linux上的安装) 。
1 |
|
MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中:
1 |
|
1 |
|
创建数据库目录
默认情况下 MongoDB 启动后会初始化以下两个目录:
- 数据存储目录:/var/lib/mongodb
- 日志文件目录:/var/log/mongodb
我们在启动前可以先创建这两个目录并设置当前用户有读写权限:
1 |
|
接下来启动 Mongodb 服务:
1 |
|
打开 /var/log/mongodb/mongod.log 文件看到以下信息,说明启动成功。
1 |
|
MongoDB 后台管理 Shell
如果你需要进入 mongodb 后台管理,你需要先打开 mongodb 装目录的下的 bin 目录,然后执行 mongo 命令文件。
MongoDB Shell 是 MongoDB 自带的交互式 Javascript shell,用来对 MongoDB 进行操作和管理的交互式环境。
当你进入 mongoDB 后台后,它默认会链接到 test 文档(数据库):
1 |
|
由于它是一个JavaScript shell,您可以运行一些简单的算术运算:
1 |
|
现在让我们插入一些简单的数据,并对插入的数据进行检索:
1 |
|
第一个命令将数字 10 插入到 runoob 集合的 x 字段中。
如果要停止 mongodb 可以使用以下命令:
1 |
|
也可以在 mongo 的命令出口中实现:
1 |
|
更多安装方法可以参考官网:https://docs.mongodb.com/manual/administration/install-on-linux/
配置 mongod.conf
在 /etc
下创建文件 mongod.conf
:
1 |
|
以 mongod.conf
启动
1 |
|
停止
1 |
|
安装 RocketChat
Install necessary dependency packages
– 安装必须依赖的包Update package list and configure yum to install the official MongoDB packages with the following yum repository file
– 更新你的 yum 包,并且安装 MongoDB1
sudo yum -y check-update
1
2
3
4
5
6
7
8cat << EOF | sudo tee -a /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOFConfigure Node.js to be installed via package manager
– 通过 yum 的包管理器来安装 Node.js1
sudo yum install -y curl && curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -
Install build tools, MongoDB, nodejs and graphicsmagick
– 使用构建工具安装 MongoDB、nodejs 和 graphicsmagick1
sudo yum install -y gcc-c++ make mongodb-org nodejs
1
sudo yum install -y epel-release && sudo yum install -y GraphicsMagick
Using npm install inherits and n, and the node version required by Rocket.Chat
– 使用 npm来安装依赖和切换到Rocket.Chat 要求的 node 的版本1
sudo npm install -g inherits n && sudo n 12.14.0
我之前已经装了 MongoDB 和 Nodejs ,不是用这里的方法安装的。不知道 GraphicsMagick 是不是 RocketChat 的依赖
Install Rocket.Chat
– 安装 Rocket.ChatDownload the latest Rocket.Chat version
–下载最新的 Rocket.Chat 的版本1
curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
1
tar -xzf /tmp/rocket.chat.tgz -C /tmp
Install (this guide uses /opt but feel free to choose a different directory)
– 安装(可以选择不同的目录)1
cd /tmp/bundle/programs/server && npm install
1
sudo mv /tmp/bundle /opt/Rocket.Chat
Configure the Rocket.Chat service
– Rocket.Chat 的配置Add the rocketchat user, set the right permissions on the Rocket.Chat folder and create the Rocket.Chat service file
– 添加用户并创建正确的权限来创建 Rocket 的服务1
sudo useradd -M rocketchat && sudo usermod -L rocketchat
1
sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat
1
2
3
4
5
6
7
8
9
10
11
12
13
14cat << EOF |sudo tee -a /lib/systemd/system/rocketchat.service
[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=http://localhost:3000/ PORT=3000
[Install]
WantedBy=multi-user.target
EOF使用 vi 修改刚刚写的 rocketchat.service 将 ROOT_URL 配置成你自己 ip 的 url 。
Setup storage engine and replication for MongoDB (mandatory for versions > 1), and enable and start MongoDB and Rocket.Chat
– 设置 MongoDB 的存储和版本,并且启动 MongoDB 和 Rocket1
sudo sed -i "s/^# engine:/ engine: mmapv1/" /etc/mongod.conf
1
sudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.conf
1
sudo systemctl enable mongod && sudo systemctl start mongod
1
mongo --eval "printjson(rs.initiate())"
后台运行和启动 rocket
1
sudo systemctl enable rocketchat && sudo systemctl start rocketchat
查看当前 rocket 启动否成功
1
sudo systemctl status rocketchat
使用自己的 ip:3000 访问此地址进入 rocket 的配置页面完成配置登录进入聊天界面
关闭rocket
1
sudo systemctl stop rocketchat
安装 Hubot
下载 hubot-rocketchat-boilerplate
1 |
|
创建一个 .env
文件:
1 |
|
需要在 RocketChat 里给机器人创个号,上边的 ROCKETCHAT_USER
和 ROCKETCHAT_PASSWORD
就是机器人用户的账号密码
运行
1 |
|
连接成功后在 RocketChat 里就能@机器人聊天了
1 |
|