安装RocketChat(阿里云/docker)
docker pull rocket.chat
- 随便新建一个目录作为rocket工作目录,
- cd进入工作目录,
- 新建一个docker-compose.yml文件,写入
version: '3.6'
services:
mongo:
image: mongo:4.0
volumes:
- ./data/db:/data/db
command: mongod --smallfiles --oplogSize 128 --replSet rs01
rocketchat:
# rocket.chat without ownner is offical stable version
# sometimes we need newest dev version use rocketchat/rocket.chat:latest
image: rocket.chat:latest
restart: unless-stopped
environment:
- ROOT_URL=http://localhost
- MONGO_URL=mongodb://mongo:27017/rocketchat?replicaSet=rs01
- MONGO_OPLOG_URL=mongodb://mongo:27017/local
depends_on:
- mongo
ports:
- "4010:3000"
保存后运行命令即可下载并启动。
docker-compose up --build -d
停止服务并删除容器用这个命令
docker-compose down
服务启动后访问http://主机ip或域名:4010 即可访问。(4010端口可在上面的配置文件中更改成你喜欢的)
想在手机客户端上使用话请继续往下看,只是在PC端的话以上就够了。
想使用手机客户端有几个条件
- 开启https服务(宝塔面板/Let's Encrypt)
- 如果你的域名没有备案但是rocketChat是部署在国内云主机比如阿里云上时还需要做一下反向代理(宝塔面板)
- 在rocketChat官网注册并添加一个自己的workspace (每月10000条消息免费推送)
宝塔面板为域名开启https
用Let's Encrypt很简单不说了。
宝塔面板开启反向代理并开启websocket代理支持
- 后台-网站-点击域名-站点修改-反向代理
填入目标地址,直接使用IP即可,而且无需开启https,比如
http://40.123.200.221:4040 (实际部署服务器) - 后台-网站-点击域名-站点修改-配置文件
找到location部分,添加(或解除注释)以下内容
#持久化连接相关配置
proxy_connect_timeout 30s;
proxy_read_timeout 86400s;
proxy_send_timeout 30s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
- 后台-nginx管理-配置修改
找到http的部分,添加以下内容
## 反向代理支持websocket
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
- 重启nginx即可
注册并添加自己的workspace
这个步骤是为了使用官方提供的每月10000条免费手机app推送服务。
如果不需要推送服务那么可以不注册。
注册rocket chat账号:https://cloud.rocket.chat/home
注册完成后新建一个workspace,会给你一个令牌。
回到自己的管理菜单的连接性服务里,填入这个令牌即可绑定这个workspace。
手机客户端
填入https域名地址比如 https://mychat.com ,由于上面做过反向代理,请求会被转发到阿里云的主机上。
没问题的话就会出现登录页面了。恭喜,你拥有了自己的聊天工具。
如果注册过workspace那么即使在熄屏时,收到消息也会有系统推送过来。配合命令行发送消息的工具作为一些监控提醒效果非常好。
命令行发消息的方法参见这篇文章
备份和还原数据(服务器迁移的时候会用到)
在元服务器做备份
进入要备份的mongodb容器执行
mongodump --db rocketchat --out /tmp/rocketchat_backup
cd /tmp
tar -cvf bak.tar rocketchat_backup
mv bak.tar /data/db
然后在宿主机的rocket工作目录下的/data/db中将bak.tar剪切出来并传输到目标服务器上。
在目标服务器进行还原(前提是已经安装好RocketChat)
将bak.tar放入/data/db,然后进入mongodb容器执行
cd /tmp
mkdir rocketchat_backup
cd rocketchat_backup
mv /data/db/bak.tar .
tar -xvf bak.tar
mongorestore -u yourAdminUser -p yourAdminpass --authenticationDatabase admin --db rocketchat /tmp/rocketchat_backup/rocketchat/ --drop
最后重启服务即可。
系列文章
- 利用RocketChat搭建自己的聊天系统-PC-MAC-手机端均可使用【当前文章】
- 命令行调用API发送消息到RocketChat,可以实现手机消息推送